Gateway
The notation for a gateway control flow is BPMN only. This control flow is equivalent to a BPEL Empty activity.
A gateway represents a control point in a process. It plays two roles: join sequence flows together and split them apart. A gateway can play either role or both roles at the same time. The joins and splits are accomplished by incoming and outgoing links.
About Gateway Types
There are four types of gateways, discussed below. When you select a type, in the Properties view of a gateway, the join conditions of the incoming and outgoing links are automatically generated for that type. For a complex gateway, you can add the join condition manually. The default gateway type is Exclusive.
Based on the join conditions of the incoming or outgoing links, a gateway can be classified as one of the following:
- •Inclusive (diamond with O)
The activity waits for at least one of the incoming links to evaluate to true and for the rest of the incoming links to be set with transition conditions. Any of the outbound links can have transition conditions, and any number of them can evaluate to true.
- •Exclusive
The default type. The activity waits for at least one of the incoming links to evaluate to true and for the rest of the incoming links to be set with transition conditions. At most, one of the outbound links must evaluate to true. If, at run-time, more than one outbound link evaluates to true, the first link executes.
- •Parallel (diamond with +)
The activity waits for all incoming links to evaluate to true. All outbound links are true (no transition condition is allowed out of a parallel gateway).
- •Complex (diamond with asterisk)
The activity waits for all incoming links to be set (either true or false) and for the join condition specified within the complex gateway to evaluate to true. Any of the outbound links can have transition conditions, and any number of them can evaluate to true.
- •Event-based. See Pick.
The BPEL structured activities, such as if, while, repeat until or for each easy-to-use alternatives to building decision-making with a gateway.
An exclusive gateway is a good choice as the source or target of a loop-back links. For details, see Mutually Exclusive Transitions.
Required Properties | Optional Properties |
---|
Gateway Type | Name. |
| Join Condition. |
Suppress Join Failure. |
Comment. |
Documentation. |
Setting Visual Properties and Using Your Own Library of Images |
Execution State. |
Extension Attributes and Extension Elements. |
Mutually Exclusive Transitions |
Building a Gateway
Use the following procedure to build a gateway:
- 1. From the Gateway palette, drag a gateway to the Process Editor canvas.
- 2. Drag an activity, such as invoke, either below or above the gateway to automatically link it into a sequence.
- 3. If desired, add another activity to the canvas and link the two activities.
- 4. For tips on designing with links, see Adding a Link with a Transition Condition.
- 5. As desired, add transitions conditions to links, and then select the corresponding Gateway Type from the Properties view.
Mutually Exclusive Transitions
"Mutually Exclusive Transitions" is a property of all activities, but we recommend that you do not set this property directly. The exclusive gateway automatically sets this property to Yes.
This property, when set to Yes, declares that outbound links are mutually exclusive. This allows you to create loop-back links and create links that break out of a structured activity. Since there is no way to validate that two or more link conditions will not cause simultaneous execution of a target activity, you must set this property. For details, see Process Developer Extension for Links.
The Mutually Exclusive Transitions property is set to No as a default on all activities except the exclusive gateway, where it is set to Yes.