Share via


PolicyActivity アクティビティの使用

PolicyActivity アクティビティを使用すれば、ルールのコレクションを表すことができます。ルールは、条件とその結果としてのアクションから構成されます。ルールは、IF-THEN-ELSE 文として捉えることができます。すなわち、IF に対応する部分が条件、THEN および ELSE 句の動作を定義する部分がアクションです。

アクションでは次の操作を実行できます。

  • ワークフローにフィールドまたはプロパティを設定する。

  • ワークフローを操作するメソッドやワークフロー内のオブジェクトを呼び出す。

  • 参照されたアセンブリ内の型に対して静的メソッドを呼び出す。

  • Halt 文または Update 文を実行する。

ルール セットの条件とアクション

ルール セットの条件式、および Then アクションと Else アクションの式を作成する必要があります。条件の詳細については、「ワークフロー内での条件の使用」を参照してください。

条件では、"=" 演算子が等値ではなく代入に使用されることを除き、アクションと同じ正規表現演算子がサポートされます。

Halt と Update

アクションの式の中で、Halt 関数および Update 関数を使用することもできます。Halt アクションを実行すると、ルール セットの実行が直ちに停止して、呼び出し元コードに制御が戻ります。フォワード チェーンの Update 関数を使用します。フォワード チェーンを使った Update の使用方法に関する詳細については、このトピックの「明示的なフォワード チェーン」のセクションを参照してください。

PolicyActivity クラスと RuleSet クラス

ワークフロー内で PolicyActivity アクティビティを使用するには、PolicyActivity クラスをワークフロー コードに追加します。次に、PolicyActivity における RuleSetReference プロパティが、RuleSetCollection 内の RuleSet の名前を指定するように構成します。PolicyActivity アクティビティは RuleSet クラスのインスタンスを 1 つ作成します (これは、ルールを実行する RuleSet クラスです)。PolicyActivity アクティビティには、ルールで処理されるプロパティが含まれています。ルールの条件が true と評価される場合、Then アクションが実行されます。条件が false と評価される場合、Else アクションが実行されます。

各ルールには、ルールの評価順序とアクションの実行順序を制御する Priority プロパティがあります。Windows Workflow Foundation のルール エバリュエータは各ルールを個別に評価し、ルール条件の評価結果に基づいてルールのアクションを実行します。より優先順位の高いルールは、優先順位の低いルールよりも前に実行されます。同じ優先順位のルールは、ルール名のアルファベット順に実行されます。優先順位は正、または負にすることができます。ルールの既定の優先順位は 0 です。RuleSet 内のルールの優先順位の詳細については、「RuleSet 内のルール評価」および「優先度に基づくルール セットの実行」を参照してください。

各ルールには、ルールを評価すべきかどうかを決定する Rule Active プロパティがあります。

関連項目

参照

PolicyActivity
Rule
RuleSet
RuleSetCollection
RuleAttributeTarget
RuleReadAttribute
RuleWriteAttribute
RuleInvokeAttribute

概念

方法 : ワークフローでルール条件を使用する
優先度に基づくルール セットの実行
ルールと条件の概要

その他の技術情報

Simple Policy Sample
Advanced Policy Sample
チュートリアル : ルールと条件の使用
Windows Workflow Foundation アクティビティ

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.