ルールを拡張モードで構成し、ルールが適用されたときにルールがどのように実行されるかを最適化します。通常、ルール条件に階層属性およびコレクションを持つビジネス・オブジェクトが含まれる場合は、拡張モードを使用します。コレクションは、トランザクション・データのグループです。たとえば、経費精算書は、経費項目などの子属性を持つビジネス・オブジェクトです。各項目は異なるコスト・センターを持つことができるため、経費項目はコスト・センター間でルールが評価する必要があるデータのコレクションです。そのため、拡張ルールには、すべての経費項目を参照するが、特定のコスト・センターにのみ一致する条件を設定できます。
拡張モードで新規ルールを作成する一般的な方法を次に示します。
-
ルール名の後にある「プロパティ」リンクをクリックし、「拡張モード」チェック・ボックスを選択します。
-
Ifセクションの「パターンの挿入」リンクをクリックして、is演算子を含むパターンを取得します。パターンは、Ifセクションで行のセットまたはテストを整理する方法です。
- 演算子の前にあるフィールドに、ビジネス・オブジェクトを表す任意の用語を入力します。この用語は、後でルールで使用される変数です。
- 演算子の後に、ビジネス・オブジェクト(経費精算書など)の属性を選択します。
-
パターンの後のツールバーの「拡張」→「オプションの追加または変更」アイコンをクリックし、簡易テストを選択します。
-
ビジネス・オブジェクトに対してルールが照合する条件を定義します。前に入力した変数にちなんだ名前を持つフォルダの下の属性を選択します。
-
必要に応じて条件を追加します。
-
ビジネス・オブジェクト・パターンのツールバーで、「パターンの追加」アイコンをクリックします。
- 演算子の前にあるフィールドに、Lists_collectionと入力します。
- 演算子の後に、「リスト」を選択します。
ルールにコレクションが含まれるため、このパターンが必要です。
-
リスト・パターンのツールバーで、「パターンの追加」アイコンをクリックします。
- 演算子の前にあるフィールドに、変数を入力します。
- 演算子の後に、コレクションが基づく属性(経費項目など)を選択します。
このパターンは、コレクションに含まれる内容を定義します。
-
コレクション・パターンのツールバーで、「選択したテストを括弧で囲む」アイコンをクリックし、「囲み」を選択します。
「囲み」オプションによって、追加したパターンと、後でカッコ内に定義する他の条件が配置され、それらがすべてグループ化されます。カッコ内の条件は、この場合はコレクションに対して全体的に評価されます。
-
コレクション・パターンの前にあるドロップダウン・リストで、ルールをコレクションと照合する方法を選択します。
- 各別: コレクション内で条件を満たすものがあるたびに一致が発生します。一致ごとに通知が送信されます。
- 少なくとも1つ: コレクション内で最初の一致が見つかるとすぐに通知が送信され、残りのコレクションは評価されません。
- なし: コレクション全体が評価され、一致するものがない場合は通知が送信されます。
- 集計: コレクション内の属性の合計や平均などの操作が必要な場合は、このオプションを使用します。
-
コレクション・パターンの後のツールバーで、「拡張」→「オプションの追加または変更」アイコンをクリックし、簡易テストを選択します。
-
コレクション内でルールが照合する条件を定義し、変数にちなんだ名前を持つフォルダの下にある属性を選択します。
-
必要に応じて条件を追加します。
-
ルールと同様にThenセクションを構成します。
拡張モードのルールのIfセクションの例を次に示します。ルールでは、合計1000以上の経費精算書を検索しています(少なくとも1つの経費項目が「出張」に分類されているもの)。ERおよびitemは、入力された2つの変数で、パスER.Expense Report Totalおよびitem.Expense Sourceは、変数にちなんだ名前を持つフォルダから属性が選択されたことを示します。