ワークフロー管理エンドポイント
このトピックの内容は、Windows Workflow Foundation 4 に該当します。
ワークフロー管理エンドポイントは、開発者が管理操作を呼び出して、WorkflowServiceHost を使用してホストされているワークフロー インスタンスをリモート制御できるようにします。この機能を使用すると、一時停止、再開、終了などの管理操作をプログラムで実行することができます。
ワークフロー インスタンスの管理
.NET Framework Version 4 は、IWorkflowInstanceManagement と呼ばれる新しいコントラクトを定義します。このコントラクトは、WorkflowServiceHost でホストされるワークフロー インスタンスをリモート制御できるようにする一連の管理操作を定義します。WorkflowControlEndpoint は、IWorkflowInstanceManagement コントラクトの実装を提供する、標準のエンドポイントです。WorkflowControlClient は、管理操作を WorkflowControlEndpoint に送信するために使用するクラスです。
ワークフロー インスタンスには、次の状態があります。
- Active
完了した状態に達する前の、一時停止の状態でないときのワークフロー インスタンスの状態です。この状態にあるときのワークフロー インスタンスは、アプリケーション メッセージを実行し、処理します。
- Suspended
この状態にある間は、まだ実行が開始されていないアクティビティや、部分的に実行されているアクティビティがある場合でも、ワークフロー インスタンスは実行されません。
- Completed
ワークフロー インスタンスの最終的な状態です。この状態に達した後は、ワークフロー インスタンスは実行できません。
IWorkflowInstanceManagement
IWorkflowInstanceManagement インターフェイスでは、同期バージョンおよび非同期バージョンで、一連の管理操作が定義されます。トランザクション処理されたバージョンでは、トランザクションに対応するバインディングを使用する必要があります。次の表は、サポートされる管理操作の一覧を示します。
管理操作 | 説明 |
---|---|
Abort |
ワークフロー インスタンスの実行を強制的に停止します。 |
Cancel |
ワークフロー インスタンスをアクティブ状態または一時停止状態から完了状態に移行します。 |
Run |
ワークフロー インスタンスに実行する機会を提供します。 |
Suspend |
ワークフロー インスタンスをアクティブ状態から一時停止状態に移行します。 |
Terminate |
ワークフロー インスタンスをアクティブ状態または一時停止状態から完了状態に移行します。 |
Unsuspend |
ワークフロー インスタンスを一時停止状態からアクティブ状態に移行します。 |
TransactedCancel |
クライアントからフローされた、またはローカルに作成されたトランザクションの下で Cancel 操作を実行します。システムでワークフロー インスタンスの永続状態が維持される場合は、ワークフロー インスタンスが、この操作の実行中に持続している必要があります。 |
TransactedRun |
クライアントからフローされた、またはローカルに作成されたトランザクションの下で Run 操作を実行します。システムでワークフロー インスタンスの永続状態が維持される場合は、ワークフロー インスタンスが、この操作の実行中に持続している必要があります。 |
TransactedSuspend |
クライアントからフローされた、またはローカルに作成されたトランザクションの下で Suspend 操作を実行します。システムでワークフロー インスタンスの永続状態が維持される場合は、ワークフロー インスタンスが、この操作の実行中に持続している必要があります。 |
TransactedTerminate |
クライアントからフローされた、またはローカルに作成されたトランザクションの下で Terminate 操作を実行します。システムでワークフロー インスタンスの永続状態が維持される場合は、ワークフロー インスタンスが、この操作の実行中に持続している必要があります。 |
TransactedUnsuspend |
クライアントからフローされた、またはローカルに作成されたトランザクションの下で Unsuspend 操作を実行します。システムでワークフロー インスタンスの永続状態が維持される場合は、ワークフロー インスタンスが、この操作の実行中に持続している必要があります。 |
IWorkflowInstanceManagement コントラクトは、新しいワークフロー インスタンスを作成する手段を提供せず、既存のワークフロー インスタンスを管理する手段のみを提供します。新しいワークフロー インスタンスをリモートから作成する方法詳細情報、「ワークフロー サービス ホストの拡張機能」を参照してください。
WorkflowControlEndpoint
WorkflowControlEndpoint は、固定コントラクト IWorkflowInstanceManagement を持つ標準のエンドポイントです。WorkflowServiceHost インスタンスにこのエンドポイントが追加されると、このエンドポイントを使用して、ホスト インスタンスによってホストされる任意のワークフロー インスタンスにコマンド操作を送信できます。標準のエンドポイント詳細情報、「Standard Endpoints」を参照してください。
WorkflowControlClient
WorkflowControlClient は、WorkflowServiceHost の WorkflowControlEndpoint に制御メッセージを送信できるようにするクラスです。このクラスには、トランザクション処理された操作を除き、IWorkflowInstanceManagement コントラクトでサポートされる各操作用のメソッドが格納されています。WorkflowControlClient では、アンビエント トランザクションを使用して、トランザクション処理された操作を使用する必要があるかどうかが判断されます。