for-each
The for-each Instruction executes a list of Instructions on nested records in an array in the input Record. This is used to iterate over multiple values in JSON input data.
action |
"for-each" |
source |
The property in the input Record containing an array of nested records. |
wrapValues |
(optional) If true, each element of the array is wrapped in an Object with the element as the value property. This is needed to iterate over arrays with simple values. |
instructions |
An array of Instructions to be executed for each element in the input array. |
When setting values within a for-each loop, remember to either add "multivalue": true to the Instruction or have a new/load instruction for the destination before setting a value on it so that values will not be overwritten as the array of instructions is executed multiple times.
Example
With an input record structured like:
{
"username": "jbloggs",
"supervisors": [
{
"supervisor": "jsmith",
"role": "FIRST"
},
{
"supervisor": "aturing",
"role": "EXTERNAL"
}
]
}
the supervisor could be applied to a multi-value property like:
{
"action": "for-each",
"source": "supervisors",
"instructions": [
{
"source": "role",
"destination": "project-supervisors",
"name": "supervisorRole",
"multivalue": true
},
// ...
]
}