Esempio n. 1
0
        protected override void AfterCreateProcessInstance(SysTaskProcess sysTaskProcess)
        {
            sysTaskProcess.Name = string.Format("作废ID为{0}的流程", this.ProcessID);

            int index = 0;

            sysTaskProcess.OwnerActivityID = this.OwnerSysActivityID;

            IWfProcess process = WfRuntime.GetProcessByProcessID(this.ProcessID);

            WfProcessCurrentInfoCollection branchProcessesStatus = WfRuntime.GetProcessStatusByOwnerActivityID(process.CurrentActivity.ID, string.Empty, false);

            if (branchProcessesStatus.Count > 0 && this.CancelAllBranchProcesses)
            {
                //作废子流程
                sysTaskProcess.Activities.Add(sysTaskProcess.CreateDispatchCancelBranchesProcessActivity(process.CurrentActivity.ID, this.CancelAllBranchProcesses, index++));
            }

            if (this.CancelSelf)
            {
                sysTaskProcess.Activities.Add(sysTaskProcess.CreateCancelProcessActivity(this.ProcessID, index++));
            }

            sysTaskProcess.Activities.Add(sysTaskProcess.CreateExitMaintainingActivity(this.ProcessID, index++));
        }
		protected override void AfterCreateProcessInstance(SysTaskProcess sysTaskProcess)
		{
			sysTaskProcess.Name = string.Format("创建活动{0}的分支流程", this.OwnerActivityID);

			//这一步可能是很长时间的操作
			OguDataCollection<IUser> users = this.Template.Resources.ToUsers();

			int index = 0;

			if (this.Template.ExecuteSequence == WfBranchProcessExecuteSequence.SerialInSameProcess)
			{
				sysTaskProcess.Activities.Add(CreateUserActivity(sysTaskProcess, index++, users));

				SysTaskProcessRuntime.Persist();
			}
			else
			{
				foreach (IUser user in users)
				{
					sysTaskProcess.Activities.Add(CreateUserActivity(sysTaskProcess, index++, new IUser[] { user }));

					SysTaskProcessRuntime.Persist();
				}
			}

			if (this.AutoAddExitMaintainingStatusTask)
			{
				IWfProcess process = WfRuntime.GetProcessByActivityID(this.OwnerActivityID);

				sysTaskProcess.Activities.Add(sysTaskProcess.CreateExitMaintainingActivity(process.ID, index++));

				SysTaskProcessRuntime.Persist();
			}
		}
Esempio n. 3
0
        protected override void AfterCreateProcessInstance(SysTaskProcess sysTaskProcess)
        {
            sysTaskProcess.Name = string.Format("创建活动{0}的分支流程", this.OwnerActivityID);

            //这一步可能是很长时间的操作
            OguDataCollection <IUser> users = this.Template.Resources.ToUsers();

            int index = 0;

            if (this.Template.ExecuteSequence == WfBranchProcessExecuteSequence.SerialInSameProcess)
            {
                sysTaskProcess.Activities.Add(CreateUserActivity(sysTaskProcess, index++, users));

                SysTaskProcessRuntime.Persist();
            }
            else
            {
                foreach (IUser user in users)
                {
                    sysTaskProcess.Activities.Add(CreateUserActivity(sysTaskProcess, index++, new IUser[] { user }));

                    SysTaskProcessRuntime.Persist();
                }
            }

            if (this.AutoAddExitMaintainingStatusTask)
            {
                IWfProcess process = WfRuntime.GetProcessByActivityID(this.OwnerActivityID);

                sysTaskProcess.Activities.Add(sysTaskProcess.CreateExitMaintainingActivity(process.ID, index++));

                SysTaskProcessRuntime.Persist();
            }
        }
		protected override void AfterCreateProcessInstance(SysTaskProcess sysTaskProcess)
		{
			sysTaskProcess.Name = string.Format("撤回ID为{0}的流程", this.ProcessID);

			int index = 0;

			IWfProcess process = WfRuntime.GetProcessByProcessID(this.ProcessID);

			sysTaskProcess.OwnerActivityID = this.OwnerSysActivityID;

			WfProcessCurrentInfoCollection branchProcessesStatus = WfRuntime.GetProcessStatusByOwnerActivityID(process.CurrentActivity.ID, string.Empty, false);

			if (branchProcessesStatus.Count > 0 && this.CancelAllBranchProcesses)
			{
				sysTaskProcess.Activities.Add(sysTaskProcess.CreateDispatchCancelBranchesProcessActivity(process.CurrentActivity.ID, true, index++));
			}

			sysTaskProcess.Activities.Add(sysTaskProcess.CreateWithdrawProcessActivity(this.ProcessID, index++));
			sysTaskProcess.Activities.Add(sysTaskProcess.CreateExitMaintainingActivity(this.ProcessID, index++));
		}