Split-Join rule usage
Description
Split-Join Rule is used to separate each single record (or document) from Input Data into a few records to let them pass through different steps of the Business Process (either Bot or Manual Tasks) in parallel, and then combine the processed records back into a single record (or a document) to process the consolidated results from the previous steps further.
When a record in Business Process is split into multiple, the new records are routed to different steps, so some of them are processed faster, while the others require more time to get processed.
It happens due to different types of steps, as some of them are Bot Tasks and the others are Manual.
In case of Manual Tasks availability of work forces to perform assignments is a key point to how fast the records are processed.
Thus, the records which are processed faster reach the Join rule quicker, they should wait for the rest of records to get joined for processing at the step behind the rule. The original record is immediately promoted to the next step after the Rule, when all the split records from this original record arrive; and gets processed in the step.
The sample Business Process below explains how the Split-Join works in opening an account:

Image flow description:
At this step passport details of a client are used as Input data.
Using the Split Rule the details are sent to different steps to acquire and validate the information.
Processing of split records:
- Checking the client debts to find out the current client's financial situation (Bot Task)
- Collecting information about active client's accounts to learn how many active accounts the client has (Bot Task)
- Validation of client's address to make sure, that the address provided is valid (Manual Task)
- Validation of client's passport authenticity to confirm, that the passport provided is real (Manual Task)
note
Both Manual Steps are executed slower as the Bot Steps depending on availability of the workforce and how fast the Workers perform their tasks.
The Join Rule is intended to manage processing of the split records. It sends processed split records to the next step immediately as they arrive to the Rule and triggers the Bot step execution after the last split record has passed through it.\
At the next step after the Join Rule, the algorithm waits till all split records of the original one arrive and starts the Bot step execution, in our case the Bot creates the account or rejects the creation depending on the information containing in the joined record.\
important
If the record R1 from Input Data started earlier than the record R2, but all split records of the record R2 pass sooner through the Join Rule, the Bot step will execute the record R2 and then wait for the all split records from the record R1.
Visualization of Split and Join
