機械翻訳について

ネストされたルールの使用

ネストされたルールは、複雑な条件を記述する必要がなくなり、特にルールが多数ある場合に、ルール編成を改善するのに役立ちます。

ネストされたルールは、UIでインデントによって示される1つ以上の子ルールを持つ親ルールです。 ネストされたルールを使用すると、ルールの子は、その親によって設定されたプロパティをオーバーライドできます。

通常のネストされたルールに加えて、2つの特殊なタイプのネストされたルール(If/ElseとSwitch)の動作が若干異なります。 これらの特殊な型については後述しますが、最初に一般的なネストされたルールを見てみましょう。

次に、ネストされたルールの簡単な例を示します:



この例は、ネストされたルールの2つのセットを示しています:

  • 「国はUSA」「国はカナダ」は同じレベルです
  • 「フル・タイム従業員」は、「国はUSA」の下にネストされています
  • 「2023年以前の入社日」「2023年以降の入社日」は、どちらも「フル・タイム従業員」の子です。

赤い数字は、実行時にこれらのルールが評価される順序を示します。 それが何を意味するかを詳しく見てみましょう:

  1. 評価は下部の「国はカナダ」で始まります。 このルールの条件が満たされると、ルールのプロパティ・オーバーライドが適用されます。 次:
  2. 「国はUSA」が評価されます。
    • ルールの条件が満たされていない場合、ルールはプロパティをオーバーライドしません。 また、その子ルール(「フル・タイム従業員」)は評価されません。
    • 「国はUSA」の条件が満たされた場合、ルールで定義されたプロパティ・オーバーライドが適用され、「フル・タイム従業員」が評価されます。
  3. 「フル・タイム従業員」の条件が満たされていない場合、ルールはプロパティを適用せず、その子(「2023年以降の入社日」および「2023年以前の入社日」)は評価されません。
  4. 「フル・タイム従業員」 AREの条件が満たされた場合、ルールで定義されたプロパティ・オーバーライドが適用され、その子が評価されます。
    • 「2023年以降の入社日」が最初に評価されます。「2023年以前の入社日」が最下位であるためです。

同じ結果を得るために、より複雑な一連の条件を記述することもできますが、ネストされたルールを使用すると、実行時に複数のプロパティ・オーバーライドを適用することがはるかに簡単になります。

子ルールの追加

子ルールを任意の拡張ルールに追加できます:

  1. 親ルールにするルールの横にあるルールの作成をクリックします。

  2. 子ルールのラベルを入力します。 (「ID」フィールドはラベルに基づいて自動的に移入されますが、必要に応じて別のIDを入力できます。) 「作成」をクリックします。
  3. 子ルールを右クリックし、オプション・メニューの「上に移動」および「下に移動」を使用して、必要な位置にルールを移動します。

    ピアである子ルールはボトムアップから評価されるため、順序は重要です。



ルールを複製すると、そのルールの子も複製されます。 前述の例で、「フル・タイム従業員」を複製すると、新しいルール(「フル・タイム従業員のコピー」)が親(「国はUSA」)の下に表示され、その子ルール「入社日が設定されていません」「2023年以前の入社日」および「2023年以降の入社日」とともに表示されます。

If/Elseルールの追加

If/Elseルールは、ネストされたルールの特別なタイプであり、条件を満たす最初の子ルールのみが適用され、残りの子ルールはいずれも評価されません。

ルールのリスト内のいずれかのルールのみを適用する必要がある場合は、If/Elseネストされたルールを使用します。 すべてのルールが評価される通常のビジネス・ルールとは異なり、If/Elseルールの子ルールは適用されるまで順番に評価され、未評価の子ルールはスキップされます。 つまり、ルールが評価される必要がない場合は評価されません。

たとえば、ユーザーのロールがセールス・マネージャである場合に適用するルールや、ユーザーが英国またはカナダのセールス・マネージャである場合にのみ適用するルールがあるとします。 ネストされたIf/Elseルールを使用する場合、1つのルールのみを適用する必要があるこのタイプの状況の処理は非常に簡単です。 これを行う方法を見てみましょう。

  1. ビジネス・ルール・エディタで、ルールの作成をクリックして「ビジネス・ルールの作成」ダイアログ・ボックスを開きます。
    フォームおよび収集ルールに対してIf/Elseルールを作成できます。
  2. ダイアログ・ボックスでIf/Elseを選択します。
  3. ルールのラベル、IDおよび摘要を入力します。 「作成」をクリックします。

    デフォルトでは、2つの子ルールを含むIf/Elseルールが作成されます。 2つの子ルールのデフォルト名は「新規ルール」と「それ以外」ですが、より意味のある名前に変更できます。 子ルールは必要な数だけ追加できますが、そのうちの1つのみが適用されることに注意してください。



  4. 「新規ルール」を選択します。

    最初の子ルールは、「If/Else」ネストされたルールの最初の「If」部分です。 If/Elseネストされたルールでは、ルールが上から下まで評価されます。 新規ルールはリスト内の最初のルールであるため、最初に評価されます。

    1. 「編集」をクリックし、ルールの条件を定義して、ルールにわかりやすい名前を付けます。

      このルールを定義して、Sales Managerロールを持つ英国のユーザーに適用されるようにします。

    2. 条件が満たされたときに適用するプロパティの上書きを設定します。
  5. それ以外の場合はルールを選択します。

    それ以外の場合、子ルールは「If/Else」の「Else」部分であり、前述のいずれかのルールが適用されなかった場合にのみ評価されます。

    1. 「編集」をクリックし、必要に応じてルールの条件を定義して、ルールにわかりやすい名前を付けます。

      条件を設定しない場合、ルールが評価されると、常に適用されます。 ルールに条件がない場合は、リスト内の最後のルールであることを確認する必要があります。

      このルールを定義して、営業マネージャ・ロールを持つすべてのユーザーに適用されるようにします。

    2. ルールを適用するプロパティの上書きを設定します。
  6. 追加の子ルールを追加および構成します。

    子ルールを必要な数だけ追加し、リストされている順序を並べることができます。

    「営業マネージャ」ロールを持つカナダのユーザーに適用される子ルールを追加し、ルールを「UKの営業マネージャ」ルールの下に移動します。



    「編集」をクリックして条件を定義し、ルールを適用するプロパティ・オーバーライドを設定します。

実行時には、最初のルールから開始して、ルールが適用されるまで、ルールが順番に評価されます。 このネストされたルールのセットでは、最後のルールが適用されるのは、ユーザーのロールが営業マネージャで、英国またはカナダにない場合のみです。

Switchルールの追加

スイッチ・ルールは、ルールのリストを評価するかわりに、スイッチ・パラメータ(switchOn)が評価され、パラメータの値によって適用されるケースが決定される、ネストされたルールの特別なタイプです。

たとえば、現在のユーザーのロールに基づいてルールを適用し、複数のケースがあるとします。 たとえば、ユーザーのロールが営業マネージャの場合は、営業マネージャ・ルールを適用し、管理者の場合は管理者ルールを適用します。 ネストされたルールの切替えを使用すると、実行時に長いルール・リストを評価するのではなく、ユーザー・ロール・フィールドの値に基づいて適切なルールを適用できます。

ログイン・ユーザーのロールを評価するスイッチ・ルールを作成します。 次に、異なるケースを作成します。たとえば、ユーザー・ロールがセールス・マネージャの場合は1つのケース、ロールが管理者の場合は別のケースを作成します。 実行時にユーザー・ロールが評価され、ユーザー・ロール値に基づいて適切なケースが適用されます。

  1. 「ビジネス・ルール」タブで、ルールの作成をクリックして「ビジネス・ルールの作成」ダイアログ・ボックスを開きます。
    フォームおよび収集ルールの切替えルールを作成できます。
  2. ダイアログ・ボックスで「切替え」を選択します。
  3. ルールのラベル、IDおよび摘要を入力します。 「作成」をクリックします。
  4. Switchパラメータを選択します。
    1. 「切替え」親ルールを選択
    2. ルールの「パラメータ」パネルで、「パラメータの変更」をクリックし、ドロップダウン・リストでパラメータを選択します。 「変更」をクリックします。

    「パラメータ」パネルには、パラメータ(この例では[] User / Rolesフィールド)が表示されます。



  5. ケースを作成します。

    ユーザー・ロールが営業マネージャである場合に適用されるケースを作成します。

    1. 「切替え」の横にあるケースの作成をクリックして、「大文字、小文字の切替えの作成」ダイアログ・ボックスを開きます。
    2. ケースのラベル、IDおよび説明を入力します。 「作成」をクリックします。
    3. ケースを選択し、「ケースの切替え」テキスト・フィールドにパラメータ値を入力します。

      「大文字、小文字の切替え」フィールドに複数のパラメータを入力できます。 この場合、「営業マネージャ」と入力して、ユーザー・ロールが「営業マネージャ」のときにケースが適用されるようにします。



    4. ケースを適用するオーバーライドを設定します。
  6. 追加のケースを作成します。

    たとえば、Administratorというケースを作成し、ケースのパラメータ値をAdministratorに設定します。 次に、ユーザー・ロールが「管理者」の場合に適用するオーバーライドを設定します。

  7. ネストされたルールのリストで最後のルールを選択し(デフォルト名はそれ以外)、ルールを適用するプロパティの上書きを設定します。
    どのケースも適用されていない場合、最後のルールが適用されます。 それ以外の場合はルールに条件を作成できません。