Skip to main content

Inclusive Gateway

Introduction

Inclusive Gateway

info

A diverging Inclusive Gateway (Inclusive Decision) can be used to create alternative but also parallel paths within a Process flow. Unlike the Exclusive Gateway, all condition Expressions are evaluated. The true evaluation of one condition Expression does not exclude the evaluation of other condition Expressions. All Sequence Flows with a true evaluation will be traversed by a token. Since each path is considered to be independent, all combinations of the paths MAY be taken, from zero to all. However, it should be designed so that at least one path is taken.

— BPMN 2.0.2 Standard, 10.6.3, Inclusive Gateway

Inclusive gateways are used to model decisions where one or more paths can be taken.

To decide which route(s) the process follows, the conditions on the outgoing Sequence Flows are checked. The condition is modeled as an expression and must always evaluate to a boolean value of true or false. It is important to understand that the conditions of an inclusive gateway are not modeled on the gateway itself but rather on the outgoing sequence flows.

Every time a condition evaluates to true or if a Sequence Flow has no condition, the process branches at that position. If no condition evaluates to true or if there is no Sequence Flow without a condition, the process is stuck.

To join inclusive branches, use another inclusive gateway. The execution only continues once all paths have been completed.

Example

The following example shows how an Inclusive gateway is used to model a simple decision where more than one path can be true.

Inclusive gateway

Properties

General

AttributeTypeDescriptionCategory
Model Id Text

Model Id identifies the element within the process model.

The model id, name and documentation properties can be found on any element. They are used respectively to uniquely identity the gateway, to give the gateway a user-friendly name and to add a free-form description.

Name Expression usage possibleText

The name of the element. This is the name displayed in the diagram.

Documentation Multiline Text

A free-form text that can be used to explain details about the particular element.

Flow order FlowOrder

The order in which the outgoing flows will be evaluated and stored in the XML representation of the process.

For some use cases, the order in which the sequence flow are taken is important.

The order of the sequence flows can be configured here, from top (first) to bottom (last).

Advanced

AttributeTypeDescriptionCategory
Include in history Boolean

When the history level is set to "instance" or "task" level with this property it can be configured if this activity instance should be included in the historic activity data.

The Include in history flag can be used to store the historical entry of this gateway when running with a history level that normally would not store the execution of the gateway.

Note that this flag has no effect when running with history level 'none'.

Asynchronous Boolean

When enabled, the activity will be started as an asynchronous job. The process state is persisted before this element is executed. Then, the process execution will be resumed asynchroneously. This can be used when the execution an activity takes a long time to return the UI to the user quicker in case the user does not need to see the next step immediately. However, if an error occurs before the following wait state, there will be no direct user feedback. Please refer to the documentation for more details.

When making an inclusive gateway asynchronous, all outgoing sequence flow will be taken asynchronously in the background.

Choose exclusive to avoid other asynchronous steps of this process instance to run at the same time.

Exclusive Boolean

Determines whether the activity or process is run as an exclusive job. An exclusive job makes sure that no other asynchronous exclusive activities within the same process are performed at the same time. This helps to prevent failing jobs in concurrent scenarios.

Leave asynchronously Boolean

When enabled, the activity will be left as an asynchronous job. This means that the activity is ended asynchronously, including end execution listeners. Please refer to the documentation for more details.

Leave exclusive Boolean

Determines whether the activity should leave as an exclusive job. An exclusive job makes sure that no other asynchronous exclusive activities within the same process are performed at the same time. This helps to prevent failing jobs in concurrent scenarios.

Job Category Expression usage possibleText

When set, the underlying generated job will have a Job Category, which will be executed only by Application Servers, where the Process Engine has enabledJobCategories set to this category.

Visual

AttributeTypeDescriptionCategory
Font size Selection:
  • 8
  • 9
  • 10
  • 11
  • 12
  • 14
  • 18
  • 20
  • 24
  • 36
  • 48
  • 72

Font size.

Visual properties that determine how the gateway is shown in the diagram.

This has no impact on the runtime execution.

Border color RequiredColor

The border color of the element in the diagram.

Font weight Selection:
  • Normal
  • Bold

Select the style between bold and normal.

Font style Selection:
  • Normal
  • Italic

Select the style between italic and normal.

Font color Color

Select a font color.

Background color RequiredColor

The background color of the element in the diagram.