Gateways

Parent Previous Next

Gateways do not contain any customizable simulation properties.


There are currently three gateway types available in the simulation, the exclusive, parallel and inclusive gateway.



Exclusive Gateway

Merge: The exclusive gateway is simple. It fires whenever a token reaches it on any incoming sequence flow.


Fork: Every expression on the outgoing sequence flows will be verified, prior to choosing exactly one sequence flow as the successor. If there are two expressions that evaluate to true, the simulation will add an error entry to the error log and that explicit process instance will never finish. Such an error will lead to useless simulation reports.


Parallel Gateway

Merge: Once a parallel gateway with more than one incoming sequence flows is reached, it will wait until each sequence flow delivers a token.


Fork: The parallel gateway's outgoing sequence flow do not possess any expression (if so, they will be ignored), so it passes a token to each of these.


Inclusive Gateway

Merge: Once a token reaches an inclusive gateway with more than one incoming sequence flow, the gateway checks whether there are still tokens "alive", which can reach them. Have a look at the model below. Assume that the task "Stay Awake" lasts longer than "Work". In which case the token from "Work" reaches the inclusive gateway first. The inclusive gateway knows, that there is still one token at "Stay awake" which can reach it. So the gateway will have to wait. After "Stay awake" is finished, there is a decision ahead. If there is no need for a coffee, the token reaches the inclusive gateway, which now knows that there is no token alive anymore, so it fires. On the other hand, if there is a need for coffee, the inclusive gateway will be noticed and fires too.


Fork: Just like at the exclusive gateway, the expressions on all outgoing sequence flows are verified. But, contrary to the exclusive version, the inclusive gateway passes a token to every sequence flow, whose expression evaluated to true.


Event-based Gateway

Fork: Every outgoing sequence flow has to be connected to an event. The process follows the path of the event which occurs first.


Merge: Does not exist in BPMN 2.0, because this does not make any sense. Use exclusive Gateway instead.


Figure 1: Example Model containing Exclusive, Inclusive and Parallel Gateways