次の方法で共有


ワークフローのキャンセルのサンプル

Download sample

このサンプルは、発生することのない外部イベントを待機しているワークフローを終了する方法を示します。ワークフローは、経費報告書を送信して承認を待機する経費報告書のサンプルです。ただし、サンプルは承認イベントが発行されないように作成されています。

ホスト コンソール アプリケーションには、終了しないワークフローを終了させるワークフローのキャンセル機能が実装されています。このキャンセル機能は、Terminate メソッドを呼び出してワークフローを終了することとは異なります。Terminate による終了とは、例外ハンドラや補正ハンドラを実行しない、強制的な異常終了です。このサンプルで使用されているメソッドでは、例外ハンドラと補正ハンドラが、ワークフローをアンワインドし、最終的に終了させることができます。

これを行うために、ホスト アプリケーションは、ワークフローをブロックしているアクティビティを検出するためにランタイムを照会します。ワークフローのキュー名が GetWorkflowQueueData メソッドで返されます。ワークフローで処理されない例外は、EnqueueItem メソッドを介してこのキューに配信されます。

Noteメモ :

この例では、ワークフローがイベントを待機して一時停止しているかどうかを判別するためにアイドル状態のイベントを使用していますが、より信頼性の高いアプリケーションの場合は、ワークフローがその他の理由でアイドル状態になっていないことを確認する必要があります。

サンプルからの出力は次のようになります。

ワークフローのキャンセルのサンプル出力

サンプルをビルドするには

  1. [サンプルのダウンロード] をクリックしてサンプルをダウンロードします。

    これにより、サンプル プロジェクトがローカルのハード ディスクに抽出されます。

  2. [スタート] をクリックし、[すべてのプログラム] をポイントします。次に、[Microsoft Windows SDK] をポイントし、[CMD シェル] をクリックします。

  3. サンプルのソース ディレクトリに移動します。

  4. コマンド プロンプトで、「MSBUILD <ソリューション ファイル名>」と入力します。

サンプルを実行するには

  • [SDK コマンド プロンプト] ウィンドウで、CancelWorkflow\bin\debug フォルダ (このサンプルの VB のバージョンでは、CancelWorkflow\bin フォルダ) にある .exe ファイルを実行します (このサンプルでは、メイン フォルダの下にあります)。

データベースの構成

Windows Workflow Foundation によってインストールされた SQL サービスは、Microsoft SQL Server を使用して情報を保存します。これらの作業には、SQL Server 2005 Express、SQL Server 2000 以降のバージョン、または SQL Server 2000 Desktop Engine (MSDE) を使用できます。

Windows Workflow Foundation のセットアップでは、これらのサービスに必要なデータベースはインストールされませんが、これらのサービスで使用するデータベースを作成および構成するための SQL スクリプトはインストールされます。

次の手順では、このサンプルの各サービスで使用されるデータベースを作成および構成する方法を説明します。

SQL Server データベースを作成および構成するには

  1. Microsoft SQL Server 2005 Express、SQL Server 2000 以降、または SQL Server 2000 Desktop Engine (MSDE) を使用して、SQL クエリ ステートメント

    CREATE DATABASE SqlPersistenceService

    で新規データベース SqlPersistenceService を作成します。メモ   ワークフロー アプリケーションで SqlTrackingServiceSqlWorkflowPersistenceService の両方を使用する場合は、永続性と追跡に対して単一のデータベースを使用することをお勧めします。

  2. SQL Query Analyzer 作業領域で、使用可能なデータベースのリストから手順 1. で作成したデータベースを選択します。

  3. [ファイル] メニューの [開く] をクリックして、SQL スクリプト %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<言語>SqlPersistenceService_Schema を開きます。

  4. [実行] をクリックするか、F5 をクリックしてクエリを実行し、SQL 永続性サービス テーブルを作成します。

  5. [ファイル] メニューの [開く] をクリックして、SQL スクリプト %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<言語>\SqlPersistenceService_Logic を開きます。

  6. [実行] をクリックするか、F5 をクリックしてクエリを実行し、SQL 永続性サービス ストアド プロシージャを作成します。

関連項目

参照

GetWorkflowQueueData
EnqueueItem
WorkflowQueueInfo
TerminateActivity
Terminate

その他の技術情報

ホスティング サンプル
Hosting the Windows Workflow Foundation Runtime

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.