Пример #1
0
        public void WithdrawProcessAndCancelBranchProcessRunning()
        {
            IWfProcess process = GetProcessInstance(false);

            string fromActivityId = process.CurrentActivity.ID;

            process.Withdraw(process.Activities[0], true);
            WfRuntime.PersistWorkflows();

            CheckOperationAndStatusAfterWithdrawProcess(process.ID, fromActivityId, process.Activities[0].ID);
        }
Пример #2
0
        public void WithdrawProcessWithBranchProcess()
        {
            IWfProcess process = GetProcessInstance(true);

            string fromActivityID = process.CurrentActivity.ID;

            process.Withdraw(process.Activities[0], false);
            WfRuntime.PersistWorkflows();

            //撤销两步后查阅状态
            CheckOperationAndStatusAfterWithdrawProcess(process.ID, fromActivityID, process.Activities[0].ID);
        }
Пример #3
0
        public void WithdrawProcessAndCancelBranchProcessCompleted()
        {
            IWfProcess process = GetProcessInstance(true);

            string fromActivityId = process.CurrentActivity.ID;

            process.Withdraw(process.Activities[0], true);
            WfRuntime.PersistWorkflows();

            CheckOperationAndStatusAfterWithdrawProcess(process.ID, fromActivityId, process.Activities[0].ID);

            process = WfRuntime.GetProcessByProcessID(process.ID);
            CheckOperationAndStatusAfterCancelProcess(process.Activities[1].BranchProcessGroups[0].Branches[0]);
            CheckOperationAndStatusAfterCancelProcess(process.Activities[1].BranchProcessGroups[0].Branches[1]);
        }
Пример #4
0
        public void WithdrawAndReplayRunProcessActivityWithBranchProcess()
        {
            IWfProcess process = GetProcessInstance(false);

            string fromActivityId = process.CurrentActivity.ID;

            process.Withdraw(process.Activities[0], true);            //撤回
            WfRuntime.PersistWorkflows();

            CheckOperationAndStatusAfterWithdrawProcess(process.ID, fromActivityId, process.Activities[0].ID);

            process = WfRuntime.GetProcessByProcessID(process.ID);
            WfTransferParams pa = ProcessTestHelper.GetInstanceOfWfTransferParams(process, WfBranchProcessExecuteSequence.Parallel, WfBranchProcessBlockingType.WaitAllBranchProcessesComplete);

            process.MoveTo(pa);

            Assert.AreEqual(4, process.CurrentActivity.BranchProcessGroups[0].Branches.Count, "当前节点的分支流程应为撤回前与当前的,即4");
        }
Пример #5
0
        public void WithdrawDelegationTestReplay()
        {
            WfDelegation delegation = PrepareDelegation();

            WfDelegationAdapter.Instance.Update(delegation);

            try
            {
                IWfProcess process = WfProcessTestCommon.StartupProcessWithAssignee();

                IWfActivityDescriptor nextActivityDesp = process.CurrentActivity.Descriptor.ToTransitions[0].ToActivity;
                WfTransferParams      tp = ProcessTestHelper.GetInstanceOfWfTransferParams(nextActivityDesp, OguObject.approver2);
                process.MoveTo(tp);
                WfRuntime.PersistWorkflows();

                process          = WfRuntime.GetProcessByProcessID(process.ID);
                nextActivityDesp = process.CurrentActivity.Descriptor.ToTransitions[0].ToActivity;
                tp = ProcessTestHelper.GetInstanceOfWfTransferParams(nextActivityDesp, OguObject.approver1);
                process.MoveTo(tp);
                WfRuntime.PersistWorkflows();

                process          = WfRuntime.GetProcessByProcessID(process.ID);
                nextActivityDesp = process.CurrentActivity.Descriptor.ToTransitions[0].ToActivity;
                tp = ProcessTestHelper.GetInstanceOfWfTransferParams(nextActivityDesp, OguObject.approver2);
                process.MoveTo(tp);
                WfRuntime.PersistWorkflows();

                process = WfRuntime.GetProcessByProcessID(process.ID);
                process.Withdraw(process.Activities[2], false);                 //撤回
                WfRuntime.PersistWorkflows();

                process = WfRuntime.GetProcessByProcessID(process.ID);
                Assert.AreEqual(2, ProcessTestHelper.GetActivityUserTasks(process.Activities[2].ID, TaskStatus.Ban).Count, "应该产生两条待办");
            }
            finally
            {
                WfDelegationAdapter.Instance.Delete(delegation);
            }
        }
Пример #6
0
        public void WithdrawAndReplayRunProcessActivity()
        {
            IWfProcess process        = GetProcessInstance(false);
            string     fromActivityId = process.CurrentActivity.ID;

            string branchProcessID1 = process.CurrentActivity.BranchProcessGroups[0].Branches[0].ID;
            string branchProcessID2 = process.CurrentActivity.BranchProcessGroups[0].Branches[1].ID;

            process.Withdraw(process.Activities[0], true);
            WfRuntime.PersistWorkflows();

            CheckOperationAndStatusAfterWithdrawProcess(process.ID, fromActivityId, process.Activities[0].ID);

            IWfProcess proc = WfRuntime.GetProcessByProcessID(process.ID);

            WfTransferParams pa = new WfTransferParams(proc.Activities[1].Descriptor);

            proc.MoveTo(pa);

            Assert.AreEqual(2, proc.CurrentActivity.BranchProcessGroups[0].Branches.Count, "当前节点的分支流程应为在撤回前的个数,即2");
            Assert.AreEqual(branchProcessID1, proc.CurrentActivity.BranchProcessGroups[0].Branches[0].ID);
            Assert.AreEqual(branchProcessID2, proc.CurrentActivity.BranchProcessGroups[0].Branches[1].ID);
        }