GetActivityInstanceCmd |
Creates an activity instance tree according to the following strategy:
Event scope executions are not considered at all
For every leaf execution, generate an activity/transition instance;
the activity instance id is set in the leaf execution and the parent instance id is set in the parent execution
For every non-leaf scope execution, generate an activity instance;
the activity instance id is always set in the parent execution and the parent activity
instance id is always set in the parent's parent (because of tree compactation, we ensure
that an activity instance id for a scope activity is always stored in the corresponding scope execution's parent,
unless the execution is a leaf)
Compensation is an exception to the above procedure: A compensation throw event is not a scope, however the compensating executions
are added as child executions of the (probably non-scope) execution executing the throw event.
|