# Transform JSON with Data Transformation Definition

Transform JSON string using provided data transformation definition.

Endpoint: POST /datatransformationdefinitions/transform
Version: 1
Security: apiKey

## Request fields (application/json):

  - `inputJson` (array)
    List of JSON objects to transform.

  - `reverse` (boolean)
    Set to 'true' if you want to apply the reverse mapping
    Example: "true"

  - `validationSchemaId` (string)
    ID of Json validation schema
    Example: "66432427ba96dd27add2ea34"

  - `dataTransformationDefinition` (object)
    Create data transformation definition.

  - `dataTransformationDefinition.imports` (array)
    List of imported data transformation definitions.

  - `dataTransformationDefinition.imports.id` (string)
    Unique identifier for a data transformation definition.
    Example: "c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4"

  - `dataTransformationDefinition.name` (string)
    Name of the Data Transformation Definition.
    Example: "My DTD"

  - `dataTransformationDefinition.direction` (string)
    Direction of the Data Transformation Definition. Does not prevent usage of reverse transformation.
This field is used by Transformation-aware endpoints to determine whether to use normal or reversed definition.
    Enum: "INBOUND", "OUTBOUND"

  - `dataTransformationDefinition.type` (object)
    Type of the Data Transformation Definition

  - `dataTransformationDefinition.type.name` (string)
    Name of the Data Transformation Definition Type
    Example: "BUSINESS_PARTNER"

  - `dataTransformationDefinition.type.technicalKey` (string)
    Technical key of the Data Transformation Definition Type
    Enum: "BUSINESS_PARTNER", "UPDATED_BUSINESS_PARTNER", "MESSAGE_DETAILS", "BANK_ACCOUNT", "REPORT"

  - `dataTransformationDefinition.mappings` (array)
    List of attribute mappings.

  - `dataTransformationDefinition.mappings.sourceAttributes` (array)
    List of source attributes.
    Example: ["businessPartner.record"]

  - `dataTransformationDefinition.mappings.sourceSelections` (array)
    List of source selections.

  - `dataTransformationDefinition.mappings.sourceSelections.selectionType` (string, required)
    Selection type.
    Enum: "CONCATENATION", "XOR"

  - `dataTransformationDefinition.mappings.sourceSelections.value` (string)
    String which is used as a delimiter when joining multiple source values in CONCATENATION selection type.
    Example: ","

  - `dataTransformationDefinition.mappings.targetAttributes` (array)
    List of target attributes.
    Example: ["businessPartner.externalId"]

  - `dataTransformationDefinition.mappings.targetTransformations` (array)
    List of target transformations.

  - `dataTransformationDefinition.mappings.targetTransformations.constantValue` (string)
    Constant value.
    Example: "constant"

  - `dataTransformationDefinition.mappings.targetTransformations.targetAttributes` (array)
    List of target attributes.
    Example: ["businessPartner.externalId"]

  - `dataTransformationDefinition.mappings.targetTransformations.transformationName` (string)
    Name of the transformation.
    Example: "CAPITALIZE"

  - `dataTransformationDefinition.mappings.targetTransformations.defaultValue` (string)
    Default value.
    Example: "default"

  - `dataTransformationDefinition.mappings.targetTransformations.transformationType` (string, required)
    Transformation type.
    Enum: "ACCENT", "CAPITALIZE", "CONDITIONAL_CONSTANT_MAPPING", "CONSTANT_MAPPING", "DEFAULT_IF_EMPTY", "LOWER_CASE", "MULTIPLE_SOURCE_AND_TARGET_ATTRIBUTE_SUPPORT", "SPECIAL_CHARACTER_REMOVAL", "SPECIAL_CHARACTER_TO_SPACE", "SPLIT", "TO_UPPERCASE", "WORD_LENGTH_SPLIT"

  - `dataTransformationDefinition.mappings.ignoredValues` (array)
    Values to be ignored during transformation.
    Example: ["ignored value"]

  - `dataTransformationDefinition.reverseMappings` (array)
    List of reverse attribute mappings.

  - `dataTransformationDefinition.reverseMappings.sourceAttributes` (array)
    List of source attributes.
    Example: ["businessPartner.record"]

  - `dataTransformationDefinition.reverseMappings.sourceSelections` (array)
    List of source selections.

  - `dataTransformationDefinition.reverseMappings.sourceSelections.selectionType` (string, required)
    Selection type.
    Enum: "CONCATENATION", "XOR"

  - `dataTransformationDefinition.reverseMappings.sourceSelections.value` (string)
    String which is used as a delimiter when joining multiple source values in CONCATENATION selection type.
    Example: ","

  - `dataTransformationDefinition.reverseMappings.targetAttributes` (array)
    List of target attributes.
    Example: ["businessPartner.externalId"]

  - `dataTransformationDefinition.reverseMappings.targetTransformations` (array)
    List of target transformations.

  - `dataTransformationDefinition.reverseMappings.targetTransformations.constantValue` (string)
    Constant value.
    Example: "constant"

  - `dataTransformationDefinition.reverseMappings.targetTransformations.targetAttributes` (array)
    List of target attributes.
    Example: ["businessPartner.externalId"]

  - `dataTransformationDefinition.reverseMappings.targetTransformations.transformationName` (string)
    Name of the transformation.
    Example: "CAPITALIZE"

  - `dataTransformationDefinition.reverseMappings.targetTransformations.defaultValue` (string)
    Default value.
    Example: "default"

  - `dataTransformationDefinition.reverseMappings.targetTransformations.transformationType` (string, required)
    Transformation type.
    Enum: "ACCENT", "CAPITALIZE", "CONDITIONAL_CONSTANT_MAPPING", "CONSTANT_MAPPING", "DEFAULT_IF_EMPTY", "LOWER_CASE", "MULTIPLE_SOURCE_AND_TARGET_ATTRIBUTE_SUPPORT", "SPECIAL_CHARACTER_REMOVAL", "SPECIAL_CHARACTER_TO_SPACE", "SPLIT", "TO_UPPERCASE", "WORD_LENGTH_SPLIT"

  - `dataTransformationDefinition.reverseMappings.ignoredValues` (array)
    Values to be ignored during transformation.
    Example: ["ignored value"]

  - `dataTransformationDefinition.valueMappings` (array)
    List of value mappings.

  - `dataTransformationDefinition.valueMappings.sourceConditions` (array)
    List of source conditions.

  - `dataTransformationDefinition.valueMappings.sourceConditions.sourceValue` (string)
    Value that source attribute must be equal to meet condition.
    Example: "AU"

  - `dataTransformationDefinition.valueMappings.sourceConditions.sourceAttribute` (string)
    Attribute that holds the source value eventually.
    Example: "$.identifications[*].country.code"

  - `dataTransformationDefinition.valueMappings.sourceConditions.sourceRegex` (string)
    Regex that source attribute must match to meet condition.
    Example: "^GR\\..{1,}"

  - `dataTransformationDefinition.valueMappings.sourceValue` (string)
    The source value for a value mapping.
    Example: "AE1"

  - `dataTransformationDefinition.valueMappings.targetValue` (string)
    The target value for a value mapping.
    Example: "AE"

  - `dataTransformationDefinition.valueMappings.targetAttribute` (string)
    The target attribute (business partner or address for a value mapping).
    Example: "$.identifications[*].country.code"

  - `dataTransformationDefinition.valueMappings.sourceAttribute` (string)
    The source attribute (business partner or address for a value mapping).
    Example: "$.identifications[*].country.code"

  - `dataTransformationDefinition.valueMappings.matcherTypes` (array)
    Matchers to be applied when comparing source value with the value from the source attribute. If not provided, the default is exact match is applied.
    Enum: "ACCENT", "LOWER_CASE", "SPECIAL_CHARACTER_ALTERNATIVES"

  - `dataTransformationDefinition.valueMappings.disabled` (boolean)
    Toggles if an element of a transformation definition is disabled or not.
    Example: "false"

  - `dataTransformationDefinition.values` (array)
    List of values.

  - `dataTransformationDefinition.values.sourceValue` (string)
    The source value for a value mapping
    Example: "AE1"

  - `dataTransformationDefinition.values.sourceAttribute` (string)
    The source value for a value mapping
    Example: "identifications[*].indentificationType.code"

## Response 200 fields (application/json):

  - `resultJson` (array)
    List of transformed JSON objects.


