Call activity execution
Lean how the engine executes and aborts call activities.
Completion
The execution flow to complete a call activity consist of two successive steps:
- 
Target process instance completion. Sequence flow:
- 
the target process instance is completed
 - 
it registers a work to execute the parent call activity
 - 
the target process stays in Completed state
 
 - 
 - 
Call activity execution:
- 
Input data are mapped from the target process outputs (data mapping)
 - 
Target process is archived and deleted
 - 
Call activity completes
 
 - 
 
Abortion (~ same as Cancellation)
The execution flow to abort a call activity is as follows. The cancellation of a call activity is identical, except for the state and method names (CANCELLING instead of ABORTING,CancelledState[...]State instead of AbortedState[...]State, etc.:
- 
Call activity is interrupted
- 
State category is put to
ABORTING - 
A work is registered to execute the call activity
 
 - 
 
If a work was already queued to execute the call activity, this work should fail (causing a PreconditionException) because the call activity changed in the meantime (stateCategory field of FlownodeInstance changed from NORMAL->ABORTING)
- 
Call activity abortion:
- 
The method
should execute stateis called - 
If the target process is still present, it interrupts the target process and put the call activity in state
Aborting[...]State - 
If there is no target process, the activity is put in
AbortedState[...]Stateand a work is register to execute this state. 
 - 
 - 
Call activity waits for its target process to complete
- 
Same as Completion without the data mapping
 
 -