Complex synchronization pattern
The complex gateway can also be used for complex synchronization. Complex gateway gets activated when the conditional expression is evaluated as true
. Once the complex gateway gets activated, it would create a token on the output sequence flow.
If Abort pending flows is checked on the complex gateway properties, then complex gateway will abort all the pending flows and the remaining tokens will be suppressed. They will not be able to trigger any subsequent branch, as shown in the following screenshot:
The suppression of tokens is translated to various patterns, which are shown as follows:
- Canceling discriminator pattern
- Canceling partial join pattern
Canceling discriminator pattern
The following table shows the details of the canceling discriminator pattern:
Signature |
Canceling Discriminator Pattern |
Classification |
Advance Flow Control Pattern |
Intent |
A convergence point in the business process that awaits one of the incoming branches to complete before activating the subsequent activity. It can also cancel the execution of all other remaining branches |
Motivation |
When the first branch gets completed, the subsequent branch will trigger. However, the remaining incoming branches will not be triggered as they would be cancelled. |
Applicability |
1-out-of-M joins with a flag being set, is to set to abort the remaining flow pattern. |
Implementation |
Widely adopted in most of the modeling languages using the complex join. On the complex gateway, Abort Pending Flows must be checked, and the completion condition testing for the number of active instances should be equal to |
Known issues |
NA |
Known solution |
NA |
Canceling partial join pattern
The following table shows the details of the Canceling partial join pattern:
Signature |
Partial Join Pattern |
Classification |
Advance Flow Control Pattern |
Intent |
A convergence point, in the business process of "m" branches into one subsequent branch only when "n" incoming branches are enabled, where "n" will be less than "m". However, once the join is triggered, it would also lead to cancelling the execution of all the remaining incoming paths and reset the convergence point. |
Motivation |
The convergence point will trigger synchronization and produce a single token for the outgoing edge, only when a defined threshold is reached. In case of N out of M join, N is defined as the trigger for the convergence point (the complex join gateway). Once the trigger is fired and a single token is produced for the outgoing edge, then the remaining incoming paths will be cancelled. The convergence point will reset only when all the active incoming branches will be enabled. |
Applicability |
N-out-of-M joins and a flag being set to Abort Remaining Flows. |
Implementation |
Widely adopted in most of the modeling languages using the complex join. On the complex gateway, Abort Pending Flows must be checked. |
Known issues |
Determination of cancel region. |
Known solution |
Structured processes. |