This content is dedicated to our next version. It is work in progress: its content will evolve until the new version is released.

Before that time, it cannot be considered as official.

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 state is 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[...]State and a work is register to execute this state.

  • Call activity waits for its target process to complete