/// <summary> /// Cancels an execution which is both concurrent and scope. This can only happen if /// (a) the process instance has been migrated from a previous version to a new version of the process engine /// See: javadoc of this class for note about concurrent scopes. /// </summary> /// <param name="execution"> the concurrent scope execution to destroy </param> /// <param name="cancellingActivity"> /// the activity that cancels the execution; it must hold that /// cancellingActivity's event scope is the scope the execution is responsible for /// </param> public static void CancelConcurrentScope(IActivityExecution execution, IPvmActivity cancelledScopeActivity) { EnsureConcurrentScope(execution); Log.DebugCancelConcurrentScopeExecution(execution); execution.Interrupt("Scope " + cancelledScopeActivity + " cancelled."); // <!> HACK set to event scope activity and leave activity instance execution.Activity = (ActivityImpl)(cancelledScopeActivity); execution.LeaveActivityInstance(); execution.Interrupt("Scope " + cancelledScopeActivity + " cancelled."); execution.Destroy(); }
/// <summary> /// Destroys a concurrent scope Execution. This can only happen if /// (a) the process instance has been migrated from a previous version to a 7.3+ version of the process engine /// See: javadoc of this class for note about concurrent scopes. /// </summary> /// <param name="execution"> the execution to destroy </param> public static void DestroyConcurrentScope(IActivityExecution execution) { EnsureConcurrentScope(execution); Log.DestroyConcurrentScopeExecution(execution); execution.Destroy(); }