工作流程管理端點
本主題僅適用於 Windows Workflow Foundation 4。
工作流程管理端點可讓開發人員呼叫控制作業,使用 WorkflowServiceHost 從遠端控制裝載的工作流程執行個體。這項功能可以使用程式設計的方式執行多種控制作業,像是暫停、繼續及結束。
工作流程執行個體管理
.NET Framework 版本 4 定義了一個新合約,稱為 IWorkflowInstanceManagement。這個合約定義了一系列的控制作業,可讓您從遠端控制 WorkflowServiceHost 裝載的工作流程執行個體。WorkflowControlEndpoint 是標準的端點,提供 IWorkflowInstanceManagement 合約的實作。WorkflowControlClient 是一個類別,用來傳送控制作業至 WorkflowControlEndpoint。
工作流程執行個體可能處於下列其中一種狀態:
- 作用中
工作流程執行個體尚未達到完成狀態,而且不是在暫停狀態。處於此狀態時,工作流程執行個體將會執行及處理應用程式訊息。
- 已暫停
處於此狀態時,即使有活動尚未開始執行或已執行一部分,工作流程執行個體也不會執行。
- 已完成
工作流程執行個體的最終狀態。工作流程執行個體達到完成狀態之後,就不能再執行了。
工作流程執行個體管理
IWorkflowInstanceManagement 介面定義了一組控制作業,分為同步與非同步的版本。交易版本需要使用交易感知繫結。下表列出支援的控制作業。
控制作業 | 描述 |
---|---|
Abort |
強制停止工作流程執行個體的執行。 |
Cancel |
工作流程執行個體從作用中或已暫停狀態轉換為已完成狀態。 |
Run |
為工作流程執行個體提供執行的機會。 |
Suspend |
工作流程執行個體從作用中狀態轉換為已暫停狀態。 |
Terminate |
工作流程執行個體從作用中或已暫停狀態轉換為已完成狀態。 |
Unsuspend |
工作流程執行個體從已暫停狀態轉換為作用中狀態。 |
TransactedCancel |
執行交易 (從用戶端流動進入或在本機建立) 之下的 [取消] 作業。如果系統會維持工作流程執行個體的長期狀態,則在此項作業執行期間工作流程執行個體必須保存。 |
TransactedRun |
執行交易 (從用戶端流動進入或在本機建立) 之下的 [執行] 作業。如果系統會維持工作流程執行個體的長期狀態,則在此項作業執行期間工作流程執行個體必須保存。 |
TransactedSuspend |
執行交易 (從用戶端流動進入或在本機建立) 之下的 [暫停] 作業。如果系統會維持工作流程執行個體的長期狀態,則在此項作業執行期間工作流程執行個體必須保存。 |
TransactedTerminate |
執行交易 (從用戶端流動進入或在本機建立) 之下的 [結束] 作業。如果系統會維持工作流程執行個體的長期狀態,則在此項作業執行期間工作流程執行個體必須保存。 |
TransactedUnsuspend |
執行交易 (從用戶端流動進入或在本機建立) 之下的 [取消暫停] 作業。如果系統會維持工作流程執行個體的長期狀態,則在此項作業執行期間工作流程執行個體必須保存。 |
IWorkflowInstanceManagement 合約並未提供建立新工作流程執行個體的方法,只能管理現有的工作流程執行個體。如需詳細資訊從遠端建立新工作流程執行個體的詳細資訊,請參閱工作流程服務主機擴充性。
WorkflowControlEndpoint
WorkflowControlEndpoint 是標準端點,含有固定合約 IWorkflowInstanceManagement。將此端點加入至 WorkflowServiceHost 執行個體之後,可以使用此端點傳送命令作業給主機執行個體所裝載的任何工作流程執行個體。如需詳細資訊標準端點的詳細資訊,請參閱Standard Endpoints。
WorkflowControlClient
WorkflowControlClient 類別可讓您傳送控制訊息至 WorkflowServiceHost 上的 WorkflowControlEndpoint。其中包含方法,而該方法會提供給 IWorkflowInstanceManagement 合約所支援的各項作業 (交易的作業除外)。WorkflowControlClient 會使用環境交易來判斷是否應該使用交易的作業。