Breadcrumbs

Gateways

Gateways are decision points used to constrain the sequence flow. They fork the process into several flows or merge several flows into one. In BPMN, a gateway is represented by a diamond -  the kind of gateway is specified by a marker.
Supported are Exclusive Data-Based and Parallel Gateways, Event Based Gateways are indirectly supported by a workaround.

Implicit, Inclusive, and Complex Gateways are not supported.

Exclusive Data-Based Gateway

BPMN shape

BPMN description

xorGateways.png

An exclusive gateway can be used:

  • As a decision point where several outgoing sequence flows are possible, yet they are all constrained by a condition and only one of them will be used.

  • As a way to merge several sequence flows into one.

    Sequence flows are either of condition type 'None', 'Expression' or 'Default'. For each exclusive gateway, one of the sequence flows must be the default sequence flow.
    The xorMerger has just one outgoing flow and must not have a condition.


UML representation

UML description

xorGatewaysState.png

The gateways are mapped to choices, the sequence flows to transitions. The guards of the transitions are derived by the expression or the name of the sequence flow.
If there is more than one outgoing flow from an exclusive gateway, the evaluation of the expressions is ordered by their flow names and manifested by the order tagged value.
I.e., if the modeler wants to influence this order by use a syntax such as "1: valid", "2: invalid", etc. in the BPMN model.

xorGatewaysClass.png

Overridable <<BPMNOnSequenceFlowCondition>> operations are created for each guard. In this operation the modeler has to evaluate the expression and set the boolean return.

Parallel Gateway

BPMN shape

BPMN description

parallelGateways.png

Parallel Gateways provide a mechanism to fork and synchronize flows.
Only standard sequence flows of condition type None are allowed.


UML representation

UML description

parallelGatewaysState.png

The parallel gateways are mapped to forks and joins in the state machine.

Event-Based Gateway

BPMN shape

BPMN description

eventBasedGateway.png

As already mentioned, Event Based Gateways are not directly supported.

eventBasedGatewayWorkaround.png

But there is a workaround: Replace the event based gateway by a task having the intermediate event as a boundary event.


UML representation

Using the workaround, the mapping to UML follows the rules described in

Chatch Intermediate Boundary Events

.