Gateways

Gateways do not contain any customizable simulation properties.

There are currently two gateway types available in the simulation that require conditions: the exclusive and inclusive gateway.

  • Exclusive and inclusive gateways need conditions on their outgoing sequence flows.

  • These conditions are not set at the gateway itself but on the outgoing sequence flows.

  • You have to set the property Expression of every outgoing sequence flow to obtain a simulation-ready model.

    • These expressions have to describe conditions, which depend on process variables, e.g. x>10 or var1==100.

    • See the following section Process Variables for more information on how to define variables and conditions.

Example for Inclusive Gateway
Figure 1. Example Model containing Exclusive, Inclusive and Parallel Gateways

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

Merge

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

Fork

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

Virtual Activity Gateway

This gateway is only indirectly a gateway, as it is not explicitly modeled. In terms of BPMN 2.0 rules, it corresponds to a split-only inclusive gateway and is only represented by conditional sequence flows.