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 shapeBPMN description

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 representationUML description

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.

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 shapeBPMN description

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

UML representationUML description

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

Event-Based Gateway

BPMN shapeBPMN description

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

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.

On this Page:
  • No labels