For-Each Block
By using this block, you can perform a set of operations (tasks) on each repetition of a record in a data structure entity. You can think of it as if the XML data in the context store are sliced and sub-workflow (block) is executed for each slice.
Attributes
IteratorXPath |
Enter an XPath expression, which will define the XML slice for the for-each iteration. Example iterator XPaths:
|
---|---|
SourceContextStore | Specifies the context store, on which the for-each operation will be based. As mentioned earlier, for each iteration the context store of this block will be filled only by the sliced data. |
Example
You have the following XML data in your context:
<ROOT>
<Invoice
Id="1"
Number="123456"
...
<InvoiceDetail
LineNumber="1"
Text="ORIGAM"
Price="399"
/>
/>
<Invoice
Id="2"
...
/>
/>
</ROOT>
In this case we have 2 invoices, each with some invoice details. Let’s say we need to send an e-mail notification for each invoice. For this we will set up a for-each block, in which we will slice the Invoice context by Invoice element. In this case the block will be executed twice. The context on which we perform for-each will contain only the data slice inside the block. E.g. on every iteration the context will contain different invoice. The steps in the block can then repeat the same operation (e.g. compose and send an e-mail message), always with different data in each iteration.
All other context stores will be visible inside the for-each block and will contain all their data.