Creating Join

Select a Sink step. Drag it to the process step in front of which you want to join the sink branch.

 

CreateUncoupledJoin2

 

The Sink step will change into a Go to join step pointing to a Join step that was automatically inserted in front of the destination step. Notice that this Go to join step has a small Join icon on top to distinguish it from the non parallel Go to.

 

This Go to join step behaves differently than the Go to step (see Creating Go To). In particular, it can be a destination of a Go to. When it is deleted it is converted back to a Sink step and the referred Join is also deleted (if it does not have any other references). The Join step cannot be moved. It can only be deleted which results also in conversion of the Go to join step back to a Sink step. You can also redirect this Go to join. It will result in deletion of the Join step in the old place and creation of another Join step in the new place.

 

If you drop a Sink or Go to join onto and existing Join no new Join step is created. Instead, an additional connection to this Join step is added. The number of incoming arrows to a Join step represents the number of parallel threads that have to join there. So, you cannot redirect a normal Go to to the Join step.

 

No parallel thread can stop before it reaches the Join or Sink step. So, if you insert a Choice in a parallel branch between a Parallel and Join steps then this choice's branch cannot finish with a Stop, neither can it point to the Join. So, initially a Choice inserted in the parallel branch between Parallel and Join points to itself. Later you can redirect it to the proper destination within this branch.

 

CreateUncoupledJoin3

 

You cannot drop a Sink step in a place that will result in an cause-effect loop in the process. Engage Process Modeler will show you the corresponding message. In the following example, there is an attempt to join the sink branch with its own Parallel. This is not possible because this means that you want to enter Parallel step only after its parallel branch is finished. So, actually you want the effect to precede the cause and this is not allowed.

 

CreateUncoupledJoin1

 

You can only join a process step that is always executed in the other parallel thread, thus independently of the decisions made in the preceding choices. In the following example

CreateUncoupledJoin4

you can join the Sink step with any of the Choice steps but you cannot join it with any of the Manual steps because they are executed conditionally and this means that the joint thread could be finished without reaching the Manual step.

For the similar reasons a Choice inserted into a parallel branch (see step 8) will have its lower branch automatically connected to the corresponding Sink. So, you cannot convert the Go to 10 step into Stop in the example above because this would mean that the parallel thread can break before reaching its end.