Drools-rule-syntax

提供:Dev Guides
移動先:案内検索

Drools-ルールの構文

ルールの条件

drl(ルールファイル)には独自の構文があるのを見たように、この章でルールの構文の一部をカバーしましょう。.

ルールには、次のような多くの条件とパターンを含めることができます-

  • アカウント(残高== 200)
  • 顧客(名前==“ Vivek”)

上記の条件は、口座残高が200であるか、顧客名が「Vivek」であるかどうかを確認します。

ルールの変数

Droolsの変数名は、ドル($)記号で始まります。

  • $ account −アカウント()
  • $ accountはAccount()クラスの変数です

Droolsは、すべてのネイティブJava型、さらにはEnumでも機能します。

ルールのコメント

特殊文字#または//を使用して、単一行のコメントをマークできます。

複数行コメントの場合、次の形式を使用します。

/*
   Another line
   .........
   .........
*/

グローバル変数

グローバル変数は、セッションに割り当てられた変数です。 彼らは次のようにさまざまな理由で使用することができます-

  • 入力パラメータの場合(たとえば、セッションごとにカスタマイズできる定数値)。
  • 出力パラメーターの場合(たとえば、レポート-ルールはメッセージをグローバルレポート変数に書き込むことができます)。 *ルール内で使用できるロギングなどのサービスのエントリポイント。

ルール内の関数

関数は便利な機能です。 それらは条件と結果に使用できます。 関数は、ユーティリティ/ヘルパークラスの代替を表します。 例えば、

function double calculateSquare (double value) {
   return value* value;
}

方言

方言は、条件または結果にあるコード式で使用される構文を指定します。 戻り値、評価、インライン評価、述語、顕著性表現、結果などが含まれます。 デフォルト値は Java です。 Droolsは現在、 MVEL と呼ばれるもう1つの方言をサポートしています。 デフォルトの方言は、次のようにパッケージレベルで指定できます-

package org.mycompany.somePackage
dialect "mvel"

MVEL方言

MVELは、Javaベースのアプリケーション用の式言語です。 フィールドおよびメソッド/ゲッターアクセスをサポートします。 Java構文に基づいています。

サリエンス

Salienceは、ルール構文の非常に重要な機能です。 Salienceは、どのルールを最初に実行するかを決定するために、競合解決戦略で使用されます。 デフォルトでは、これが主要な基準です。

salienceを使用して、起動ルールの順序を定義できます。 Salienceには1つの属性があり、int型の数を返す式を受け取ります(正の数と負の数が有効です)。 値が高いほど、競合解決戦略によってルールが選択されて実行される可能性が高くなります。

salience ($account.balance * 5)

デフォルトのsalience値は0です。 顕著性の値をいくつかのルールのみに割り当てる場合は、このことに留意する必要があります。

ルール構文には他にも多くの機能/パラメーターがありますが、ここでは重要なもののみを取り上げました。

ルール結果キーワード

ルール結果キーワードは、ルールの「 then 」部分で使用されるキーワードです。

  • 変更-ファクトの属性は、ルールの*その後*の部分で変更できます。
  • 挿入-何らかの条件に基づいて、trueの場合、ルールエンジンの現在のセッションに新しいファクトを挿入できます。
  • Retract -ルール内の特定の条件が真であり、そのファクトに対して他のアクションを実行したくない場合は、ルールエンジンから特定のファクトをリトラクトできます。

-ルールの結果内に条件付きロジック(ifステートメント)を含めることは非常に悪い習慣と見なされます。 ほとんどの場合、新しいルールを作成する必要があります。