ワークフローを読み込むためのイベントの発生のサンプル
承認の必要なドキュメントを送信するために、このサンプルのワークフローでは、DocumentApprovalInterface の RequestDocumentApproval メソッドにバインドされる CallExternalMethodActivity アクティビティを使用します。ワークフロー内の次のアクティビティは、DocumentApproved イベントを処理する HandleExternalEventActivity アクティビティです。
ランタイムは、ワークフローがアイドル状態のとき、つまりワークフロー インスタンスに関して行う作業がないときにワークフロー インスタンスをアンロードするように構成されています。HandleExternalEventActivity アクティビティは、ドキュメントの承認を長期間 (数日、あるいは数週間) 待つ場合があるため、この機能は重要です。
DocumentApprovalInterface は、ドキュメントの承認を送受信するためのメソッドとイベントを定義します。DocumentApprovalService クラスは DocumentApprovalInterface を実装して、ワークフローとホスト アプリケーションの間でデータをフローさせるメソッド呼び出しとイベント処理を代行します。
ワークフローは、承認の必要なドキュメントを RequestDocumentApproval メソッドを使用して送信することによってドキュメント承認プロセスを開始します。このメソッドは、ドキュメントをターゲット (実装されていない) に配信します。ワークフローがアイドル状態になると、ホストの OnWorkflowIdled イベント ハンドラが呼び出されます。同時に、ランタイムは FilePersistenceService を介してワークフロー インスタンスをアンロードします。WorkflowIdled ハンドラで、ワークフローに対して DocumentApproved イベントを発生させます。DocumentApproved イベントは、HandleExternalEventActivity documentApprovedInvoked ハンドラに配信されます。
さらに、このサンプルではカスタム永続性サービス (FilePersistenceService) を使用します。これは、ワークフローの状態をファイルにシリアル化するサービスです。
アプリケーションをビルドおよび実行すると、次のような出力が表示されます。
サンプルをビルドするには
[サンプルのダウンロード] をクリックしてサンプルをダウンロードします。
サンプル プロジェクトがローカル コンピュータのハード ディスクにダウンロードされます。
[スタート] ボタンをクリックし、[すべてのプログラム] をポイントします。次に、[Microsoft Windows SDK] をポイントし、[CMD シェル] をクリックします。
サンプルのソース ディレクトリに移動します。
コマンド プロンプトで「 MSBUILD RaiseEventToLoadWorkflow.sln」と入力します。
サンプルを実行するには
- SDK コマンド プロンプト ウィンドウで、DocumentApprovalWorkflow\bin\debug フォルダ (このサンプルの VB バージョンでは DocumentApprovalWorkflow\bin フォルダ) にある .exe ファイルを実行します (このサンプルでは、メイン フォルダの下にあります)。
関連項目
その他の技術情報
Copyright © 2007 by Microsoft Corporation.All rights reserved.