Beispiel #1
0
        /// <summary>
        ///  用途:撤回流程实例
        ///  范围:大管理员|流程模型管理员
        /// </summary>
        /// <param name="workflowInstanceGuid"></param>
        /// <returns></returns>
        public ResultMessage RecallWorkflowInstance(string workflowInstanceGuid)
        {
            WorkflowInstance wfi = this.GetWorkflowInstance(workflowInstanceGuid);

            ///加入权限控制大管理员|流程模型管理员
            if (!(this.Context.CurUser.IsAdministrator() || wfi.GetWorkflow().Administrators.Contains(this.Context.CurUser, _uc)))
            {
                return new ResultMessage()
                       {
                           State = false, Message = "不在许可操作范围内!"
                       }
            }
            ;
            ///不允许回收尚不在运行的流程实例
            if (wfi.WorkflowState.Equals(eWorkflowState.Running))
            {
                return new ResultMessage()
                       {
                           State = false, Message = "该流程实例无需回收!"
                       }
            }
            ;
            wfi.Restart();
            bool b = this.SetWorkflowInstance(wfi, eStoreType.Update);

            if (b)
            {
                return new ResultMessage()
                       {
                           State = true, Message = "撤回流程实例成功!"
                       }
            }
            ;
            else
            {
                return new ResultMessage()
                       {
                           State = false, Message = "撤回流程实例失败!"
                       }
            };
        }