How Incomplete Transitions Affect Join Steps and Gateways
A typical business process model merges parallel processing paths with the process into a gateway or join step. On occasion, one or more of the incoming transitions may be unable to complete because of certain processing conditions, such as the failure of a previous step. These incomplete transitions are referred to as
dead paths. For more information, see
About Dead Path Notification and Join
Steps.
When an AND or an OR step has an incomplete transition as an input, the logical behavior of the join is directly affected. For example, an AND join step with two incoming transitions can never be satisfied if one of the two transitions is incomplete.
The Process Engine analyzes each process instance for occurrences of these incomplete transitions, ensuring that all inbound transitions arrive at a gateway or join step, where they are determined to be complete or incomplete. An incomplete transition is considered to be a Boolean false and a complete transition is considered to be a Boolean true for purposes of join evaluation. These result in the following behavior:
Inbound Transition A | Inbound Transition B | AND Behavior | OR Behavior |
Incomplete | Incomplete | Unsatisfied | Unsatisfied |
Incomplete | Complete | Unsatisfied | Satisfied |
Complete | Incomplete | Unsatisfied | Satisfied |
Complete | Complete | Satisfied | Satisfied |
If you have process models from an earlier version, be aware of these points:
In
Process Engine version 7.x, incomplete transitions were not evaluated, resulting in the possibility that a join step could wait indefinitely for inputs that would never arrive, effectively stopping the process. As a result, 7.x versions of
Process Engine require a join timeout for all join steps in order to overcome this issue.
Note: The process debugger does not support unsatisfied AND joins.