The mapping engine allows you to map one or more source fields onto each destination field. Each destination field has its’ name and data type visible. Data types can be set on appropriate data layout when adding/editing a field. Mapping engine does not allow you to modify the data layout in any way.
Data types play an important role when mapping source field values onto destination. DSYNC allows you to map different data types but what goes out to a destination system is ultimately formatted based on the destination data layout and its’ fields. This means that you can map a number to a text field however a textual value (string) will be outputted and sent to the destination system.
Text: any textual value (string)
Number: any numeric value, allows user to perform calculations (int, double, float, ...)
URL: any URL (must have correct format; ie. http://mydomain.com)
Email: an email address (must have correct format; ie. firstname.lastname@example.org)
Date: date value in specific format (user specified format)
Time: time value in specific format (user specified format)
Datetime: date-time value in specific format (user specified format)
Boolean: logical value - true or false (user can specify mode: standard true/false, numeric 1/0, custom)
Object: special data type - container for data fields, used to model parent-child relationship
When you first open the mapping page you are presented with all the destination fields as per your destination data layout. All fields are unmapped by default and show ‘Click to add field’ link.
To map a field, click the ‘Click to add field’ link. A modal window opens where you can see your entire source data layout and all your source fields.
By clicking on source fields, you start to add/map fields onto the destination field you have selected. From the example above, clicking on ‘attribute_1’ field maps that field to ‘TrackQtyOnHand’ destination field.
What this means is that when the job runs, the value from ‘attribute_1’ is mapped to the ‘TrackQtyOnHand’ field. When DSYNC sends data to the destination system, there will be a ‘TrackQtyOnHand’ field and the value of this field will be the same as the value of ‘attribute_1’ field which came into DSYNC from the source system.
As mentioned previously, you can map more source fields onto one destination field. If for example your destination system requires Full Name and all you get from source is First and Last names, you can add both source fields and concatenate these by space like so…
The space between the first name and last name is a static value which you can add using the ‘Add custom field’ option. Just select the ‘Add custom field’, type space in the ‘String constant’ field, and click the ‘ADD’ button.
Using the ‘Add custom field’, not only you can add static values but also perform numeric calculations. Imagine for example that you run an online shop and your supplier is sending you a daily products feed with their own prices. Your product mark-up is 45% and you want to import that feed straight into your web shop. You can take the field which holds the supplier’s product price and add 45% on top of it easily by performing a numeric calculation on the field like so…
The value of price is multiplied by 1.45 and the result gets put into the ‘UnitPrice’ destination field (sent to your online store).
Setting Default Values
Sometimes you will not get data from your system which can be mapped to a destination field however some systems may require you to send a value anyways. You can either use the ‘Add custom field’ however that will prevent you from mapping any dynamic source field onto your destination.
Each destination field can be set a default value which is put into the output data when there is no source value present. To access the Default value settings, click on the fx icon next to the destination field name. Alternatively, you can also select the pencil icon at the end of destination field.
A modal window opens where you can set a Default value.
Not all fields from the destination data layout must be mapped. Required fields are easily identifiable by red asterisk * next to the destination field name. These should be always mapped. Other fields are optional which means the destination system does not expect a value to be sent in that field or does not need the field to be sent at all.
You can easily disable/enable a field by clicking the ‘disable’ icon at the end of the destination field.
Disabled fields are ignored by DSYNC and will not be sent to the target system at all. This is especially useful when dealing with strict systems. Some systems may not require a field which holds a date but sending that field with no value causes the system to return ‘Invalid Date’ error. Disabling the field all together fixes this issue.