// /Demo/TestWorkFlow public ActionResult TestWorkFlow() { const string DEMO_WORKFLOWID = "test-dayoff"; const string DEMO_OPERATOR = "panda"; //----------创建实例 var instance = _workFlowService.CreateInstance(DEMO_WORKFLOWID); var instanceId = instance.Instance.WorkFlowInstanceID; //检测完成状态 var isFinished = _workFlowService.IsFinished(instance); //查看下一步的任务 var nextStepInfo = instance.NextStepInfo(); //移动到下一状态(B) var resultB = _workFlowService.MoveNext(instance, new { WriteFormOK = 1 }, DEMO_OPERATOR); //---------查找实例 instance = _workFlowService.FindInstance(instanceId); isFinished = _workFlowService.IsFinished(instance); var nextStepInfoB = instance.NextStepInfo(); //移动到下一状态(C) var resultC = _workFlowService.MoveNext(instance, new { Day = 4, TeacherChecked = 1 }, DEMO_OPERATOR); //---------查找实例 instance = _workFlowService.FindInstance(instanceId); isFinished = _workFlowService.IsFinished(instance); var nextStepInfoC = instance.NextStepInfo(); //--强制移动,忽略条件 var forceNodeId = nextStepInfoC.FirstOrDefault().ToNodeId; //移动到下一状态(D) var resultD = _workFlowService.MoveNext(instance, forceNodeId, DEMO_OPERATOR); //var resultD = _workFlowService.MoveNext(instance, new { DepartmentChecked = 1 }, DEMO_OPERATOR); //---------查找实例 instance = _workFlowService.FindInstance(instanceId); isFinished = _workFlowService.IsFinished(instance); var nextStepInfoD = instance.NextStepInfo(); return(Alert("测试成功!")); }
public ActionResult TeacherCheck(demo_dayoff model, string uid, string TeacherChecked) { //查找实例 var old = _workFlowService.FindInstance(model.demo_dayoff_id); //移动节点(推荐使用try) try { var msg = _workFlowService.MoveNext(old, new { TeacherChecked = TeacherChecked, Day = model.day }, uid, model.teacher_comment); //移动结果 if (msg.Successful) { model.demo_dayoff_id = old.Instance.WorkFlowInstanceID; if (_dayoff.Update(model)) { return(Json(State.Success, "审批成功")); } } } catch (MismatchConditionException e) { } return(Json(State.Fail, "审批失败,请重试")); }
// 移动节点 GET: /WorkFlow/MoveNext?uid=1325112033&wfid=TEST-DAYOFF&reason=同意 public ActionResult MoveNext(string uid, string wfid, string reason) { var old = _workFlowService.FindInstance(wfid); return(Json(State.Success, _workFlowService.MoveNext(old, new {}, uid, reason))); }
// 获取下一步的路径信息 GET: /WorkFlow/GetNextInfo?id= public ActionResult GetNextInfo(string id) { return(Json(State.Success, _workFlowService.FindInstance(id).NextStepInfo(), false)); }