Forum Discussion
Are you expecting to process $shoppingHistoryList.shoppingHistory
on its own or are you merging it with $input1_shoppingHistoryList.shoppingHistory
where each element in $shoppingHistoryList
corresponds to an element in $input1_shoppingHistoryList
?
Thank you @tstack for the reply, I need to merge with $input1_shoppingHistoryList.shoppingHistory
where each element in $shoppingHistoryList
corresponds to an element in $input1_shoppingHistoryList
but, the remaining fields in ‘$shoppingHistoryList.shoppingHistory’ should not be changed.
- tstack7 years agoFormer Employee
You can do this with the expression language inside of a Mapper. For merging the arrays, you can use the
sl.zip()
function, like so:sl.zip($shoppingHistoryList.shoppingHistory, $input1_shoppingHistoryList.shoppingHistory)
The result of that expression will be an array of pairs containing the element from the first array and the corresponding element from the second array. Once they are grouped together, you can use a
map()
method on the array to iterate over the pairs and then useextend()
method to update the properties in the element from the first array with properties from the element in the second:sl.zip($shoppingHistoryList.shoppingHistory, $input1_shoppingHistoryList.shoppingHistory).map(x => x[0].extend(x[1]))
Here’s an example pipeline that does this mapping:
ReplaceFields_2018_12_16.slp (5.7 KB)