ルール・タスクの実行プロパティー

ルール・タスク実行プロパティーを定義して、ルールの実行に使用されるルール・エンジン・アルゴリズムを選択し、ルール・エンジンが実行するルールの数と順序を調整できます。

「プロパティー」ビューの「ルール・タスク」タブでルール・タスク実行のプロパティーを指定して、各実行モードでのルール実行を制御します。 ルール・エンジン・アルゴリズムを選択して、特定のルール・タスクでルールを実行し、実行制御プロパティーを使用して、ルール・エンジンが実行するルールの数と順序をさらに詳細化することができます。

一般に、選択されたルールのリスト内のルール成果物の順序は保証されません。選択されたルールのリストは、実行対象ルールのプールと見なされます。 しかし、「順序付け」「リテラル」に設定すると、 選択したルール成果物の順序が重視されます。

表 1. ルール・タスクの制御設定
アクション 場所 説明
ルール選択 ルール・タスクの「プロパティー」ビューの「ルールの選択」タブ。 「ルールの選択」ダイアログを使用して、ルールおよびルール・パッケージの順序を追加および変更する場合は、「編集」をクリックします。
ランタイム・ルールの選択 ルール・タスクの「プロパティー」ビューの「ルールの選択」タブにある、 「動的な BAL」「静的な BAL」、および「IRL」 ルール・タスクで評価されるルールを制御します。
実行モード ルール・タスクの「プロパティー」ビューの「ルール・タスク」タブ。 ルール・タスクに対して実行モードを指定します。
ルール・タスクの順序 ルール・タスクの「プロパティー」ビューの「ルールの選択」タブ。
ルール・タスクのデフォルトの順序付けは、次のとおりです。
  • 「デフォルト」では、ルールの順序付けは、実行モードによって異なります。

  • 「リテラル」は、ルール・タスクの順序付けに従います。

  • 「優先度」は、動作中実行モードに従ってルールをソートします。

ルール・タスクの終了基準 ルール・タスクの「プロパティー」ビューの「ルール・タスク」タブ。 終了基準の選択 は、タスクが終了する前にルールを実行する方法を指定します。 詳しくは、 出口基準プロパティー を参照してください。

実行モードにおけるルール・タスクの制御プロパティー

ルール・タスクを順序付けする特定のプロパティーを設定することができます。 これらの設定は、RetePlus、Sequential、Fastpath の各実行モードで異なります。

次の表は、ルール・フロー制御プロパティーが RetePlus 実行モードでどのように動作するのかを概説しています。

表 2. RetePlus でのタスク順序付けプロパティー
「順序付け」プロパティー 「終了基準」プロパティー 詳細プロパティーのみ

デフォルト

完全なアジェンダ管理を備えた RetePlus ネットワークが作成されます。

なし

タスク本体のすべてのルールがアクティブになります。 ルール・インスタンスはアジェンダが空になるまで実行されます。

以下と同等です。

firing=allrules, firinglimit=0

firinglimit > 0: インスタンスは、指定された数に達するか、アジェンダが空になるまで実行されます。

RuleInstance

タスク本体の優先度の最も高いルールのみがアクティブになります。 ルールの最初のインスタンスのみが実行されます。アジェンダが空の場合は何も実行されません。

以下と同等です。

firing=rule, firinglimit=1

リテラル

RetePlus ネットワークは作成されますが、アジェンダはありません。 ルールは、本文によって提供される順序に従って 1 つずつアクティブにされ、インスタンスは再評価なしで実行されます。

または:

priority

RetePlus ネットワークは作成されますが、アジェンダはありません。 ルールは最初、優先度の高い順から低い順にソートされます。 その後、それらは 1 つずつアクティブになり、インスタンスは再評価なしで実行されます。

なし

タスク本体で提供される各ルールについてループが作成され、そのインスタンスが計算され、実行されます。 インスタンスは、ループの終わりまで実行されます。

以下と同等です。

firing=allrules, firinglimit=0

firinglimit > 0: ルール・インスタンスは、指定された番号またはループの終わりに達するまで実行されます。

規則

タスク本体で提供された各ルールでループが実行されます。 ルールをインスタンス化できるようになるとすぐに (つまり、少なくとも 1 つのルール・インスタンスが作成されるとすぐに)、それらのインスタンスがすべて実行され、ループは終了します。

以下と同等です。

firing=rule, firinglimit=0

 

RuleInstance

タスク本体で提供された各ルールでループが実行されます。 ルールをインスタンス化するとすぐに (つまり、少なくとも 1 つのルール・インスタンスが作成されるとすぐに)、そのインスタンスが実行され、ループが終了します。

以下と同等です。

firing=rule, firinglimit=1

 

次の表は、ルール・フロー・プロパティーが Sequential 実行モードでどのように動作するのかを概説しています。

表 3. Sequential でのタスク順序付けプロパティー
「順序付け」プロパティー 「終了基準」プロパティー 詳細プロパティーのみ

デフォルト

順次モードでは、「デフォルト」プロパティーは、「優先度」プロパティーと同じように機能します。 意思決定テーブルの場合、ルール実行順序はトップ・ダウンです。

リテラル

タスク本体 によって提供される順序に従ってルールがコンパイルされます。 ルールは、着信タプル・オブジェクトに対して評価され実行されます。

または:

priority

ルールは、その優先度に従ってソートされます。 さらに、そのソート順に従ってコンパイルされます。 ルールは、着信タプル・オブジェクトに対して順次評価され、実行されます。

なし

タスク本体で提供されるすべてのルールが評価されます。 true と評価されるすべての規則が、選択する規則がなくなるまで実行されます。 その順序は、 順序付けプロパティーで決定された順序です。

以下と同等です。

firing=allrules, firinglimit=0

firinglimit > 0: true として評価されたルールは、指定された数のルールに達するまで、または選択するルールがなくなるまで実行されます。

規則

タスク本体で提供されるルールが逐次評価されます。 1 つのルールが trueに評価されるとすぐに、そのルールが実行され、ループが終了します。

以下と同等です。

firing=rule

このプロパティーは、firinglimit を強制的に 1 にします。

firinglimit

該当なし。

RuleInstance

タスク本体で提供されるルールが評価されます。 1 つのルールがインスタンス化されるとすぐに (つまり、1 つのルール・インスタンスが作成されるとすぐに)、そのインスタンスが実行され、ループが終了します。

以下と同等です。

firing=rule, firinglimit=1

次の表は、ルール・フロー・プロパティーが Fastpath 実行モードでどのように動作するのかを概説しています。

表 4。 Fastpath でのタスク順序付けプロパティー
「順序付け」プロパティー 「終了基準」プロパティー 詳細プロパティーのみ

デフォルト

Fastpath モードでは、「デフォルト」プロパティーは、「優先度」プロパティーと同じように機能します。

リテラル

タスク本体 によって提供される順序に従ってルールがコンパイルされます。 ルールは、着信タプル・オブジェクトに対して評価され実行されます。

または:

priority

ルールは、その優先度に従ってソートされます。 さらに、そのソート順に従ってコンパイルされます。 ルールは、着信タプル・オブジェクトに対して順次評価され、実行されます。

なし

タスク本体で提供されるすべてのルールが評価されます。 true と評価されるすべての規則が、選択する規則がなくなるまで実行されます。 その順序は、ordering プロパティーによって決定されます。

以下と同等です。

firing=allrules, firinglimit=0

firinglimit > 0: true として評価されたルールは、指定された数のルールに達するまで、または選択するルールがなくなるまで実行されます。

規則

タスク本体で提供されるルールが評価されます。 1 つのルールがインスタンス化されるとすぐに (つまり、1 つのルール・インスタンスが作成されるとすぐに)、それらのインスタンスが実行され、ループが終了します。

以下と同等です。

firing=rule, firinglimit=0

RuleInstance

タスク本体で提供されるルールが評価されます。 1 つのルールがインスタンス化されるとすぐに (つまり、1 つのルール・インスタンスが作成されるとすぐに)、そのインスタンスが実行され、ループが終了します。

以下と同等です。

firing=rule, firinglimit=1

ルールの実行順序

ルール・タスクのルール成果物をコンパイル時または実行時に選択すると、選択したルールのリスト内のパッケージが展開されます。 この展開は、リストの先頭から開始されます。 ビジネス・ルールがそのパッケージの上に単独でリストされている場合は、リスト内でその実行位置が保持されます。

例えば、ルール R1、R2、および R3 を含むパッケージがあるとします。
  • R2 を追加し、その後パッケージを追加した場合、展開されたリストは R2、R1、および R3 です。
  • パッケージを追加してから R2を追加すると、展開されたリストは R1、 R3 、および R2になります。

「終了基準」プロパティー

Exit Criteria プロパティーは、すべてのルールを実行するか、最初のルールの最初のインスタンスのみを実行するかを指定します。 このプロパティーは、以下のいずれかの値に設定できます。
  • None: 次のタプルに移動する前に、該当するすべてのルールのすべてのインスタンスがタプルに対して実行されます。
  • Rule: 次のタプルに移動する前に、タプルに対して適用可能な最初のルールのすべてのルール・インスタンスが実行されます。
  • Rule Instance: 次のタプルに移動する前に、タプルに対して適用可能な最初のルールの最初のルール・インスタンスのみが実行されます。