Array Mapping Strategies

Specific array handling strategies can be selected for mappings to multi-instance target data.

Overwrite, append, and merge are the three mapping strategies that are applicable for array types. By default, the target list is overwritten with the source list.

Each mapping strategy affects the target list differently:
Overwrite

When mapping directly between arrays, clears the target array and copies the elements from the source array.

When mapping between children of arrays, clears the target array and creates a new target element for each element in the source array. The assignments implied by the child mappings are then applied to parent elements in the same location in the source and target array.

Append

When mapping directly between arrays, copies elements in the source array to the end of the target array.

When mapping between children of arrays, creates a new element for each element in the source array and appends to the target array. The assignments implied by the child mappings are then applied to new target elements from the source elements.

Merge

When mapping directly between arrays, overwrites each element in the target array for which there is an element at the same location in the source array by a copy of the source element. If there are further elements in the source array then they are appended to the target array.

When mapping between children of arrays, each element in the target array for which there is an element at the same location in the source array will have the assignments implied by the child mappings applied from that source element.

If there are further elements in the source array then new target elements are created and appended to the target array, and the assignments will be applied to the children of these new elements.

Nested Array Handling

In the case where it is desired to map to an array nested within another array, either directly or mapping into the child content, then you must do it from equivalently nested source arrays.

For example, if your target content is an Orders array, with a child array of OrderLines then in order to map into Orders[]->OrderLines[]->LineId then the mapping must be from an element within a second level nesting source array (MyConfirmations[]->ConfirmationLine[]->LineConfirmId).


How overwrite, append, and merge work at runtime