示例#1
0
        /// <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();
        }
示例#2
0
 /// <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();
 }