Учебники

Слюни — Синтаксис правила

Как вы увидели, что .drl (файл правил) имеет свой собственный синтаксис, давайте рассмотрим некоторую часть синтаксиса правил в этой главе.

Условия в Правилах

Правило может содержать много условий и шаблонов, таких как —

  • Аккаунт (баланс == 200)
  • Заказчик (имя == «Вивек»)

Приведенные выше условия проверяют, равен ли остаток на Счете 200 или имя Клиента «Vivek».

Переменные в правилах

Имя переменной в Drools начинается с символа доллара ($).

  • $ account — Account ()
  • $ account — переменная для класса Account ()

Drools может работать со всеми нативными типами Java и даже с Enum.

Комментарии в правилах

Специальные символы, # или //, могут использоваться для пометки однострочных комментариев.

Для многострочных комментариев используйте следующий формат:

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

Глобальные переменные

Глобальные переменные — это переменные, назначенные сеансу. Они могут быть использованы по разным причинам следующим образом —

  • Для входных параметров (например, постоянных значений, которые можно настраивать от сеанса к сеансу).

  • Для выходных параметров (например, отчетность — правило может записать какое-то сообщение в глобальную переменную отчета).

  • Точки входа для таких сервисов, как логирование, которые можно использовать в рамках правил.

Для входных параметров (например, постоянных значений, которые можно настраивать от сеанса к сеансу).

Для выходных параметров (например, отчетность — правило может записать какое-то сообщение в глобальную переменную отчета).

Точки входа для таких сервисов, как логирование, которые можно использовать в рамках правил.

Функции в правилах

Функции являются удобной функцией. Их можно использовать в условиях и последствиях. Функции представляют альтернативу классам утилит / помощников. Например,

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

говор

Диалект определяет синтаксис, используемый в любом выражении кода, которое находится в условии или в последствии. Он включает в себя возвращаемые значения, уклонения, встроенные уклонения, предикаты, выражения значимости, последствия и т. Д. Значением по умолчанию является Java . В настоящее время Drools поддерживает еще один диалект под названием MVEL . Диалект по умолчанию может быть указан на уровне пакета следующим образом:

package org.mycompany.somePackage
dialect "mvel"

MVEL Диалект

MVEL — это язык выражений для приложений на основе Java. Он поддерживает доступ к полям и методам / получателям. Он основан на синтаксисе Java.

выпуклость

Важность — очень важная особенность синтаксиса правил. Значимость используется стратегией разрешения конфликтов, чтобы решить, какое правило применять в первую очередь. По умолчанию это основной критерий.

Мы можем использовать особенности, чтобы определить порядок правил стрельбы. У Salience есть один атрибут, который принимает любое выражение, которое возвращает число типа int (допустимы как положительные, так и отрицательные числа). Чем выше значение, тем больше вероятность того, что стратегия разрешения конфликтов будет применена к правилу.

salience ($account.balance * 5)

Значением по умолчанию является 0. Мы должны помнить об этом при назначении значений значимости только для некоторых правил.

В синтаксисе правил есть много других функций / параметров, но мы рассмотрели только важные из них.

Ключевые слова следствия правила

Ключевые слова следствия правила — это ключевые слова, используемые в части правила « then ».

  • Изменить — Атрибуты факта могут быть изменены в тогдашней части правила.

  • Вставить — на основании некоторого условия, если оно истинно, можно вставить новый факт в текущий сеанс механизма правил.

  • Убрать — если определенное условие является истинным в правиле, и вы не хотите действовать в отношении этого факта, вы можете убрать конкретный факт из механизма правил.

Изменить — Атрибуты факта могут быть изменены в тогдашней части правила.

Вставить — на основании некоторого условия, если оно истинно, можно вставить новый факт в текущий сеанс механизма правил.

Убрать — если определенное условие является истинным в правиле, и вы не хотите действовать в отношении этого факта, вы можете убрать конкретный факт из механизма правил.

Примечание. Считается очень плохой практикой иметь условную логику (если операторы) в рамках следствия правила. В большинстве случаев новое правило должно быть создано.