/// <summary> /// 恢复工作流应用程序 /// </summary> /// <param name="activity">活动</param> /// <param name="workflowInstanceId">工作流实例Id</param> /// <param name="bookmarkName">书签名称</param> /// <param name="parameters">参数字典</param> /// <param name="definitionIdentity">工作流定义标识</param> /// <returns>工作流应用程序代理</returns> public static WorkflowApplicationProxy ResumeWorkflowApplicationFromBookmark(Activity activity, Guid workflowInstanceId, string bookmarkName, IDictionary <string, object> parameters, WorkflowIdentity definitionIdentity = null) { try { WorkflowApplicationProxy proxy = new WorkflowApplicationProxy(activity, null, definitionIdentity); proxy.Load(workflowInstanceId); proxy.ResumeFromBookmark(bookmarkName, parameters); return(proxy); } catch (InstanceLockedException exception) { Thread.Sleep(200); _InstanceLockedRetriesCount++; if (_InstanceLockedRetriesCount >= _MaxInstanceLockedRetriesCount) { _InstanceLockedRetriesCount = 0; throw new InstanceLockedException($"工作流实例\"{workflowInstanceId}\"已锁定,无法恢复!", exception); } return(ResumeWorkflowApplicationFromBookmark(activity, workflowInstanceId, bookmarkName, parameters, definitionIdentity)); } catch (InstancePersistenceCommandException exception) { throw new InstancePersistenceCommandException($"工作流实例\"{workflowInstanceId}\"存在异常!", exception); } }
//Public #region 创建工作流应用程序 —— static WorkflowApplicationProxy CreateWorkflowApplication(... /// <summary> /// 创建工作流应用程序 /// </summary> /// <param name="activity">活动</param> /// <param name="parameters">参数字典</param> /// <param name="definitionIdentity">工作流定义标识</param> /// <returns>工作流应用程序代理</returns> public static WorkflowApplicationProxy CreateWorkflowApplication(Activity activity, IDictionary <string, object> parameters, WorkflowIdentity definitionIdentity = null) { WorkflowApplicationProxy proxy = new WorkflowApplicationProxy(activity, parameters, definitionIdentity); proxy.Run(); return(proxy); }