If/Elseルールは、ネストされたルールの特別なタイプであり、条件を満たす最初の子ルールのみが適用され、残りの子ルールはいずれも評価されません。
ルールのリスト内のいずれかのルールのみを適用する必要がある場合は、If/Elseネストされたルールを使用します。 すべてのルールが評価される通常のビジネス・ルールとは異なり、If/Elseルールの子ルールは適用されるまで順番に評価され、未評価の子ルールはスキップされます。 つまり、ルールが評価される必要がない場合は評価されません。
たとえば、ワーカー・カテゴリが「処理待ちワーカー」の場合に適用する必要があるルールと、カテゴリが「新規採用」の場合にのみ適用する必要があるルールがあります。 ネストされたIf/Elseルールを使用する場合、1つのルールのみを適用する必要があるこのタイプの状況の処理は非常に簡単です。 これを行う方法を見てみましょう。
- ビジネス・ルール・エディタで、
をクリックして「ビジネス・ルールの作成」ダイアログ・ボックスを開きます。フォームおよび収集ルールに対してIf/Elseルールを作成できます。
- ダイアログ・ボックスでIf/Elseを選択します。
- ルールのラベル、IDおよび摘要を入力します。 「作成」をクリックします。
デフォルトでは、2つの子ルールを含むIf/Elseルールが作成されます。 2つの子ルールのデフォルト名は「新規ルール」と「それ以外」ですが、より意味のある名前に変更できます。 子ルールは必要な数だけ追加できますが、そのうちの1つのみが適用されることに注意してください。
- 「新規ルール」を選択します。
最初の子ルールは、「If/Else」ネストされたルールの最初の「If」部分です。 If/Elseネストされたルールでは、ルールが上から下まで評価されます。 新規ルールはリスト内の最初のルールであるため、最初に評価されます。
- 「編集」をクリックし、ルールの条件を定義して、ルールにわかりやすい名前を付けます。
このルールを定義して、ワーカー・カテゴリが「処理待ちワーカー」の場合に適用されるようにします。
- 条件が満たされたときに適用するプロパティの上書きを設定します。
- それ以外の場合はルールを選択します。
それ以外の場合、子ルールは「If/Else」の「Else」部分であり、前述のいずれかのルールが適用されなかった場合にのみ評価されます。
- 「編集」をクリックし、必要に応じてルールの条件を定義して、ルールにわかりやすい名前を付けます。
条件を設定しない場合、ルールが評価されると、常に適用されます。 ルールに条件がない場合は、リスト内の最後のルールであることを確認する必要があります。
このルールを定義して、ワーカー・カテゴリが「新規採用」の場合に適用されるようにします。
- ルールを適用するプロパティの上書きを設定します。
- 追加の子ルールを追加および構成します。
子ルールを必要な数だけ追加し、リストされている順序を並べることができます。
他のすべてのワーカー・カテゴリに適用される子ルールを追加し、そのルールを「新規採用」ルールの下に移動します。
「編集」をクリックして条件を定義し、ルールを適用するプロパティ・オーバーライドを設定します。
実行時には、最初のルールから開始して、ルールが適用されるまで、ルールが順番に評価されます。 このネストされたルールのセットでは、ワーカー・カテゴリが「処理待ちワーカー」または「新規採用」でない場合にのみ、最後のルールが適用されます。