次の方法で共有


高度なポリシー

このトピックの内容は、Windows Workflow Foundation 4 に該当します。

このサンプルは、単純なポリシーのサンプルを拡張するものです。単純なポリシーのサンプルに含まれる個人向け割引ルールとビジネス割引ルールの他に、新しいルールがいくつか追加されています。

高額な注文に対する割引額を大きく設定する、高額ルールが追加されています。このルールの優先順位の値は前の 2 つのルールより小さいので、割引フィールドを上書きし、個人向けおよびビジネス向けの割引ルールより優先されます。

割引レベルに基づいて合計額を計算する、合計の計算ルールも追加されています。ワークフロー アクティビティに定義されたメソッドの参照方法と、他のアクションの使用方法を示します。また、このルールは、割引フィールドが変更されるたびに評価されるため、チェーン動作についても示します。さらに、メソッドに対する属性の適用についても、CalculateTotal メソッドに RuleWriteAttribute 属性を適用する例で示します。これにより、メソッドが実行されるたびに、影響を受けるルール (ErrorTotalRule) が再評価されます。

追加されている最後のルールは、エラー検出です (ここでは、合計が 0 未満)。エラーが検出されると、ポリシーの実行は停止されます。

最後に、Console.Writeline 呼び出しがアクションとして各ルールに追加されています。これは、ルール実行についての詳細を表示できるようにするため、また、参照型の静的メソッドにアクセスできることを示すためのものです。実行されるルールについての詳細を表示するには、追跡を使用することもできます。例については、RuleActionTrackingEvent サンプルを参照してください。

このサンプルで使用されているルールを次に示します。

ResidentialDiscountRule:

IF OrderValue > 500 AND CustomerType OrderValue = Residential

THEN Discount = 5%

BusinessDiscountRule:

IF OrderValue > 10000 AND CustomerType OrderValue = Business

THEN Discount = 10%

HighValueDiscountRule:

IF OrderValue 20000 >

THEN Discount = 15%

TotalRule:

IF Discount > 0

THEN CalculateTotal(OrderValue, Discount)

ELSE Total = OrderValue

ErrorTotalRule:

IF Total < 0

THEN Error = "Fired ErrorTotalRule"; Halt

ルールの評価と実行は、トレースと追跡で確認することもできます。詳細については、「RuleActionTrackingEvent Sample」を参照してください。

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

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

    これにより、サンプル プロジェクトがローカル コンピュータのハード ディスクにダウンロードされます。

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

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

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

サンプルを実行するには

  1. [SDK コマンド プロンプト] ウィンドウで、AdvancedPolicy\bin\debug フォルダー (Visual Basic バージョンのサンプルの場合は AdvancedPolicy\bin フォルダー) にある .exe ファイルを実行します。このフォルダーは、サンプルのメイン フォルダーの下に作成されます。
Ee960219.Important(ja-jp,VS.100).gif 注 :
サンプルは、既にコンピューターにインストールされている場合があります。続行する前に、次の (既定の) ディレクトリを確認してください。

<InstallDrive>:\WF_WCF_Samples

このディレクトリが存在しない場合は、「.NET Framework 4 向けの Windows Communication Foundation (WCF) および Windows Workflow Foundation (WF) のサンプル」にアクセスして、Windows Communication Foundation (WCF) および WF のサンプルをすべてダウンロードしてください。このサンプルは、次のディレクトリに格納されます。

<InstallDrive>:\WF_WCF_Samples\WF\Basic\Rules\Policy\AdvancedPolicy

参照

リファレンス

RuleSet
PolicyActivity

その他のリソース

Simple Policy Sample
Tutorial: Use Rules and Conditions
Using the PolicyActivity Activity
Activities Samples
Windows Workflow Foundation Samples