ルールレゾリューション
ルールレゾリューションとは、システムがあらゆる状況で実行すべきルールの最も適切なインスタンスを見つけるために使用する検索アルゴリズムです。 ルールレゾリューションは、ケース処理を行うためにルールが必要な場合に発生します。 例えば、デベロッパーがサービスレベルアグリーメント(SLA)ルールを更新した場合、ルールレゾリューションはSLAルールの正しいインスタンスを特定し、ケースが最新のビジネスポリシーに従って処理されるようにします。
ルールレゾリューションは、抽象Rule-ベースクラスから派生したクラスのインスタンスであるほとんどのルールに適用されます。 以下は、抽象Rule-ベースクラスから派生したルールのインスタンスの例です。
- ケースタイプ(Rule-Obj-CaseType )
- プロパティ(Rule-Obj-Property )
- セクション(Rule-HTML-Section)やハーネス(Rule-HTML-Harness)などのUIルール
- デクレアエクスプレッション(Rule-Declare-Expression)
- データページ(Rule-Declare-Pages)
ルールレゾリューションは、Data-、System-、Work-などの抽象ベースクラスから派生したクラスのインスタンスであるレコードには適用されません。 以下は、これらの抽象ベースクラスから派生したルールのインスタンスの例です。
- オペレーターID(Data-Admin-Operator-ID)
- メールリスナー(Data-Admin-Connect-EmailListener)
- オペレーターのお気に入り (System-User-MyRules)
- ルールのチェックインプロセス(Work-RuleCheckIn)
ルールレゾリューションアルゴリズムへの入力
ルールレゾリューションアルゴリズムは、ルールの主要部分からの入力を用いて、最も適切なルールインスタンスを特定します。
ルールレゾリューションアルゴリズムへの入力には以下が含まれます。
- Apply to:クラス、ルール名、ルールタイプなどのユニークIDとして使用される、事前に定義されたルールキー
- ユーザーのルールセットリスト
- 対象となるルールのクラス階層
- プロパティの値や日時の制約などの状況
- ルールの可用性
- ユーザーのアクセスロールと権限
レゾリューションプロセスの出力は、入力されたすべての基準にマッチする最初のルールです。 アプリケーション作成時に行うルールの主要部分を定義する際の選択は、ルールレゾリューションがどのようにルールを見つけることを希望するかに基づいています。
ルールレゾリューションプロセスおよびルールの可用性
ルールの可用性など、ルールインスタンスの主要部分を更新することができます。 ルールレゾリューションプロセスの対象となるルールには、「Availability」の設定があります。 ルールの現在のAvailabilityは、Rule画面のルール名または説明の横に表示されます。
Availabilityの設定は、ルールレゾリューション時にルールが使用可能かどうかを判断するために使用されます。 ルールの可用性は、Dev Studioでルールを表示、コピー、または編集できるかどうかの判断にも使用されます。
ルールの可用性をAvailable、Not Available、Blocked、Final、Withdrawnの5つの値のいずれかに設定できます。
次の問題に答えて、理解度をチェックしましょう。
ルールキャッシュの追加
Pega Platform™は、ルールレゾリューションが効率的に行われるよう、Rules Cacheと呼ばれるキャッシングメカニズムを使用しています。
アプリケーションがルールを参照すると、Pega Platformは参照されたルールのルールキャッシュをチェックします。 参照されたルールがルールキャッシュに存在しない場合、Pega Platformは複数のステップを経てルールキャッシュを追加します。
次の画像で+のアイコンをクリックすると、ルールキャッシュを追加するプロセスの詳細が表示されます。
次の問題に答えて、理解度をチェックしましょう。
このトピックは、下記のモジュールにも含まれています。
- ルールレゾリューション v3