This article is also available in:
Many business processes require parallelism. Sometimes you just need to assign tasks to different people simultaneously rather than sequentially. This usually occurs when tasks are independent from each other. To enable this, you need to parallelize the flow and assign different tasks (as many as you want) to different users.

To parallelize the flow must use an inclusive gateway in the Process Workflow.



Set up the inclusive gateway following these steps:



How does the Inclusive Gateway work?

How it works depends on its configuration. If the inclusive gate divides the flow in different directions, it is called “forking”. If it’s used to join multiple paths, it is called “joining”.

Forking

It represents a division into two or more parallel flow paths. The outgoing transitions (arrows) may or may not have conditions. If there are no conditions, all tasks will be executed. If there are conditions, all true evaluations will be executed (this is what enables parallelism).

For example:



In this example the parallelism is activated after the purchase order is entered. As there are no conditions, both tasks will be assigned. One user will complete the task ‘Receive payment’ while the other will complete ‘Ship order’.

You can also set conditions to determine which tasks should be executed:



In this case multiple scenarios can happen, depending on which conditions are met: both tasks will be executed in parallel or only one of them. For example, if the customer has already paid the product, only the task ‘Ship order’ will be assigned.

The conditions are set by clicking the output transitions (arrows) of the inclusive gateway. Always make sure that at least one condition is met.

Joining

The inclusive gatway can also be used to join different paths and continue the process down a single flow. It will wait until all triggered tasks are completed before proceeding to the next stage.

For example:


Avoid these issues

Avoid modeling cycles when using inclusive gateways. Otherwise you end up with a never-ending flow.
Do not draw flows like this one:



Or these ones:





In the last two cases the task ‘Archive order” would be assigned twice.

Parallelism & Timers

When combining timers with an inclusive gateway, special care must be taken.



In this case if task B is completed before the timer elapses, the flow will continue. That is because there is no direct transition between task C and the inclusive gateway, so it does not wait for that task.

The solution is to include an explicit transition in addition to the one that exits from the timer, so that the gateway recognizes an explicit path and then wait for task C. If it is a task that should only be completed by a timer, then you can simply delete all decisions in that task so that no user can proactively complete it. See picture below:

Was this article helpful?
Thank you!