ネストされたルールの使用
ネストされたルールは、複雑な条件を記述する必要がなくなり、特にルールが多数ある場合に、ルール編成を改善するのに役立ちます。
ネストされたルールは、UIでインデントによって示される1つ以上の子ルールを持つ親ルールです。 ネストされたルールを使用すると、ルールの子は、その親によって設定されたプロパティをオーバーライドできます。
通常のネストされたルールに加えて、2つの特殊なタイプのネストされたルール(If/ElseとSwitch)の動作が若干異なります。 これらの特殊な型については後述しますが、最初に一般的なネストされたルールを見てみましょう。
次に、ネストされたルールの簡単な例を示します:
この例は、ネストされたルールの2つのセットを示しています:
- 「国はUSA」と「国はカナダ」は同じレベルです
- 「フル・タイム従業員」は、「国はUSA」の下にネストされています
- 「2023年以前の入社日」と「2023年以降の入社日」は、どちらも「フル・タイム従業員」の子です。
赤い数字は、実行時にこれらのルールが評価される順序を示します。 それが何を意味するかを詳しく見てみましょう:
- 評価は下部の「国はカナダ」で始まります。 このルールの条件が満たされると、ルールのプロパティ・オーバーライドが適用されます。 次:
- 「国はUSA」が評価されます。
- ルールの条件が満たされていない場合、ルールはプロパティをオーバーライドしません。 また、その子ルール(「フル・タイム従業員」)は評価されません。
- 「国はUSA」の条件が満たされた場合、ルールで定義されたプロパティ・オーバーライドが適用され、「フル・タイム従業員」が評価されます。
- 「フル・タイム従業員」の条件が満たされていない場合、ルールはプロパティを適用せず、その子(「2023年以降の入社日」および「2023年以前の入社日」)は評価されません。
- 「フル・タイム従業員」 AREの条件が満たされた場合、ルールで定義されたプロパティ・オーバーライドが適用され、その子が評価されます。
- 「2023年以降の入社日」が最初に評価されます。「2023年以前の入社日」が最下位であるためです。
同じ結果を得るために、より複雑な一連の条件を記述することもできますが、ネストされたルールを使用すると、実行時に複数のプロパティ・オーバーライドを適用することがはるかに簡単になります。
子ルールの追加
子ルールを任意の拡張ルールに追加できます:
- 親ルールにするルールの横にある
をクリックします。 - 子ルールのラベルを入力します。 (「ID」フィールドはラベルに基づいて自動的に移入されますが、必要に応じて別のIDを入力できます。) 「作成」をクリックします。
- 子ルールを右クリックし、オプション・メニューの「上に移動」および「下に移動」を使用して、必要な位置にルールを移動します。
ピアである子ルールはボトムアップから評価されるため、順序は重要です。
ルールを複製すると、そのルールの子も複製されます。 前述の例で、「フル・タイム従業員」を複製すると、新しいルール(「フル・タイム従業員のコピー」)が親(「国はUSA」)の下に表示され、その子ルール「入社日が設定されていません」、「2023年以前の入社日」および「2023年以降の入社日」とともに表示されます。
If/Elseルールの追加
If/Elseルールは、ネストされたルールの特別なタイプであり、条件を満たす最初の子ルールのみが適用され、残りの子ルールはいずれも評価されません。
ルールのリスト内のいずれかのルールのみを適用する必要がある場合は、If/Elseネストされたルールを使用します。 すべてのルールが評価される通常のビジネス・ルールとは異なり、If/Elseルールの子ルールは適用されるまで順番に評価され、未評価の子ルールはスキップされます。 つまり、ルールが評価される必要がない場合は評価されません。
たとえば、ユーザーのロールがセールス・マネージャである場合に適用するルールや、ユーザーが英国またはカナダのセールス・マネージャである場合にのみ適用するルールがあるとします。 ネストされたIf/Elseルールを使用する場合、1つのルールのみを適用する必要があるこのタイプの状況の処理は非常に簡単です。 これを行う方法を見てみましょう。
Switchルールの追加
スイッチ・ルールは、ルールのリストを評価するかわりに、スイッチ・パラメータ(switchOn)が評価され、パラメータの値によって適用されるケースが決定される、ネストされたルールの特別なタイプです。
たとえば、現在のユーザーのロールに基づいてルールを適用し、複数のケースがあるとします。 たとえば、ユーザーのロールが営業マネージャの場合は、営業マネージャ・ルールを適用し、管理者の場合は管理者ルールを適用します。 ネストされたルールの切替えを使用すると、実行時に長いルール・リストを評価するのではなく、ユーザー・ロール・フィールドの値に基づいて適切なルールを適用できます。
ログイン・ユーザーのロールを評価するスイッチ・ルールを作成します。 次に、異なるケースを作成します。たとえば、ユーザー・ロールがセールス・マネージャの場合は1つのケース、ロールが管理者の場合は別のケースを作成します。 実行時にユーザー・ロールが評価され、ユーザー・ロール値に基づいて適切なケースが適用されます。









