Architecture
Introduction
The Data Map is based in the following objects:
Data Map
,Data Map Item
,Data Map Attribute
Custom Metadata Types: are used to store the Data Map configuration.DataMapEngine
Apex Class: Is in charge of the DataMap logic and is the core of the functionality.
The Objects
--- title: Process Temmplate ER --- erDiagram "Data Map" ||--}| "Data Map Item" : "" "Data Map Item" ||--}| "Data Map Item" : "" "Data Map Item" ||--}| "Data Map Attribute": ""
Data Map
Is the main object, and is the one that represents and holds a specific Data Map configuration.
Field | Type | Required | Example | Description |
---|---|---|---|---|
Name | String | Y | Order to Asset | An unique name that will be used to reference the specific configuration |
Source Type | Picklist | Y | SObject | The type of source structure: Map or SObject |
Target Type | Picklist | Y | Map | The type of target structure: Map or SObject |
External Id | String | Y | Order to Asset | An unique string that will be used for Data Map migration between environments |
Data Map Item
Here is where the child objects will be specified along its relationships with the parent.
Field | Type | Required | Example | Description |
---|---|---|---|---|
Name | String | Y | Order to Asset | A name for the item only used for User Interface reference |
Parent Data Map Item | Lookup(Data Map Item) | Y | The Parent Item for the current one. | |
Order | Integer | Y | 1 | The position this item will be processed comparing to its sibling nodes. |
Source Object | String | Y | SObject | The SObject api Name in case the source is SObject. In case of a Map source, it doesn’t matter. |
Source Relationship | String | Y | Map | The SObject relationship api name on the parent SObject if the Source Object is a SObject. In case of a Map source, it should be the ‘key’ of the relationship in the map. |
Target Object | String | Y | SObject | The SObject api Name in case the Target is SObject. In case of a Map Target, it doesn’t matter. |
Target Relationship | String | Y | Map | The SObject relationship api name on the parent SObject if the Target Object is a SObject. In case of a Map Target, it should be the ‘key’ of the relationship in the map. |
External Id | String | Y | Order to Asset | An unique string that will be used for Data Map migration between environments |
Data Map Attribute
It represent a Field map between the source and target structures.
Field | Type | Required | Example | Description |
---|---|---|---|---|
Name | String | Y | Name | A name for the item only used for User Interface reference |
Source Field | String | Y | Name | The field or property name in the source structure |
Target Field | String | Y | Name | The field or property name in the target structure |
Variable Name | String | N | true | Name for the variable. It’s used in case you want to store the value of the Source Field in a variable for later use in any other Data Map Attribute. |
Do not map | Boolean | N | false | If you check this option, the Field will not be set in the target structure. It’s useful when used in combination with the Varible Name, as you can store a variable without mapping the field in the target structure. |
External Id | String | Y | Order to Asset | An unique string that will be used for Data Map migration between environments |