/// <summary> /// 执行子流程节点 /// </summary> internal override void ExecuteWorkItem() { try { if (base.Linker.FromActivity.ActivityType == ActivityTypeEnum.SubProcessNode) { //检查子流程是否结束 var pim = new ProcessInstanceManager(); bool isCompleted = pim.CheckSubProcessInstanceCompleted(Session.Connection, base.Linker.FromActivityInstance.ID, base.Linker.FromActivityInstance.ActivityGUID, Session.Transaction); if (isCompleted == false) { throw new WfRuntimeException(LocalizeHelper.GetEngineMessage("nodemediatorsubprocess.ExecuteWorkItem.notcompleted.warn", string.Format("Activity:{0}", base.Linker.FromActivity.ActivityName))); } } //完成当前的任务节点 bool canContinueForwardCurrentNode = CompleteWorkItem(ActivityForwardContext.TaskID, ActivityForwardContext.ActivityResource, this.Session); //获取下一步节点列表:并继续执行 if (canContinueForwardCurrentNode) { ContinueForwardCurrentNode(ActivityForwardContext.IsNotParsedByTransition, this.Session); } } catch (System.Exception ex) { throw; } }
/// <summary> /// 执行子流程节点 /// </summary> internal override void ExecuteWorkItem() { try { if (base.Linker.FromActivity.ActivityType == ActivityTypeEnum.SubProcessNode) { //检查子流程是否结束 var pim = new ProcessInstanceManager(); bool isCompleted = pim.CheckSubProcessInstanceCompleted(Session.Connection, base.Linker.FromActivityInstance.ID, base.Linker.FromActivityInstance.ActivityGUID, Session.Transaction); if (isCompleted == false) { throw new WfRuntimeException(string.Format("当前子流程:[{0}]并没有到达结束状态,主流程无法向下执行。", base.Linker.FromActivity.ActivityName)); } } //完成当前的任务节点 bool canContinueForwardCurrentNode = CompleteWorkItem(ActivityForwardContext.TaskView.TaskID, ActivityForwardContext.ActivityResource, this.Session); if (canContinueForwardCurrentNode) { //获取下一步节点列表:并继续执行 ContinueForwardCurrentNode(false); } } catch (System.Exception ex) { throw; } }
/// <summary> /// 执行子流程节点 /// </summary> internal override void ExecuteWorkItem() { try { if (base.Linker.FromActivity.ActivityType == ActivityTypeEnum.SubProcessNode) { //检查子流程是否结束 var pim = new ProcessInstanceManager(_serviceProvider); bool isCompleted = pim.CheckSubProcessInstanceCompleted( base.Linker.FromActivityInstance.Fid, base.Linker.FromActivityInstance.NodeId); if (isCompleted == false) { throw new WfRuntimeException(string.Format("当前子流程:[{0}]并没有到达结束状态,主流程无法向下执行。", base.Linker.FromActivity.ActivityName)); } } //完成当前的任务节点 bool canContinueForwardCurrentNode = CompleteWorkItem(ActivityForwardContext.TaskView.Fid); if (canContinueForwardCurrentNode) { //获取下一步节点列表:并继续执行 ContinueForwardCurrentNode(false); } } catch { throw; } }