Call Bulk Flows
As part of the standard IPF DSL it is possible to call other flows using the 'Call Flow' action. With the debulker floclient, we now introduce the 'Call Bulk Flow' capability.
Action Behaviour
When using 'Call Bulk Flow' it is necessary to provide two arguments:
-
Target Flow: The specific flow to be instantiated for each record.
-
Marker: The identifier used to filter the debulked data.
When invoked, the action performs the following steps:
-
Query: It queries the debulker for all records matching the current bulkId and the specified Marker.
-
Iterate: It iterates through the retrieved records.
-
Instantiate: For every record found, it instantiates the Target Flow, passing the record’s data from the component store into the new child flow instance.
Marker Types
You can configure the Marker parameter in one of two ways:
-
List of Literal Markers: Provide a hardcoded list of marker strings. The framework will iterate through this list, invoking the debulker for each marker to retrieve associated records.
Use Case: Ideal for content-agnostic flows, such as generic transaction processing that handles multiple defined message types.
-
Single Business Data Marker: Reference a single, existing business data element instead of a fixed list.
If using Business Data Marker the business data element specified must be populated using an Aggregate Function.
Data Transfer
The call bulk flow capability expects the 'Debulk Identifier' data element to be available to it. It uses this in order to determine the bulk Id that should be processed at runtime.
When a child flow is called, it will be sent two key data fields:
-
The Debulk Identifier
-
The Debulk Component Data
| To link child flows to their parents in the dashboard, you must add the Related Unit Of Work business data element to the child flow’s On Received Data section. The Debulker flo-client will automatically populate this value. |
Acknowledgement
When a flow is called via the bulk process, the immediate response is a 'Bulk Acknowledgement'. This tells the caller that the component store has successfully accepted the message and begun to trigger the child flows.
Usage
Literal Markers
An example usage of Call Bulk Flow using a list of literal markers is provided below, firstly we invoke the call:
Business Data Marker
An example usage of Call Bulk Flow using a business data marker is provided below, firstly we must define a Mapping Function that will populate the specified business data element:
Then we must call the mapping function definition as an aggregate function (or alternatively using Generate Aggregate Data on initiation as per below), prior to the bulk flow call and specify the same business data element as the business data marker parameter in the Call Bulk Flow invocation: