Элементы языка FEEL

Этот раздел перенесён из документации Camunda 7 и в дальнейшем будет доработан с учётом особенностей OpenBPM Engine

Эта страница содержит информацию об устаревшем движке FEEL, который использовался до того, как текущий движок FEEL на основе Scala был интегрирован в Camunda 7.

Движок DMN OpenBPM поддерживает FEEL для входных записей. Термином FEEL для выражения во входных записях являются простые унарные тесты. Эти простые унарные тесты проверяют входное значение относительно выражения и возвращают либо true, если тест удовлетворён, либо false в противном случае. Выражение может содержать различные элементы, которые описаны в этих разделах.

Сравнение

Простые унарные тесты FEEL поддерживают следующие операторы сравнения. Обратите внимание, что оператор равенства является пустым, а не =. Кроме того, оператора неравенства, такого как !=, не существует. Чтобы выразить это, необходимо использовать отрицание.

Название Оператор Пример Описание

Равно

(пусто)

"Steak"

Проверяет, что входное значение равно заданному значению.

Меньше

<

< 10

Проверяет, что входное значение меньше заданного значения.

Меньше или равно

<=

<= 10

Проверяет, что входное значение меньше или равно заданному значению.

Больше

>

> 10

Проверяет, что входное значение больше заданного значения.

Больше или равно

>=

>= 10

Проверяет, что входное значение больше или равно заданному значению.

Диапазон

Некоторые типы данных FEEL, такие как числовые типы и типы даты, можно проверять относительно диапазона значений. Эти диапазоны состоят из начального значения и конечного значения. Диапазон определяет, включаются ли начальное и конечное значения в диапазон.

Начало Конец Пример Описание

включено

включено

[1..10]

Проверяет, что входное значение больше или равно начальному значению и меньше или равно конечному значению.

исключено

включено

]1..10] или (1..10]

Проверяет, что входное значение больше начального значения и меньше или равно конечному значению.

включено

исключено

[1..10[ или [1..10)

Проверяет, что входное значение больше или равно начальному значению и меньше конечного значения.

исключено

исключено

]1..10[ или (1..10)

Проверяет, что входное значение больше начального значения и меньше конечного значения.

Дизъюнкция

Простой унарный тест FEEL может быть задан как дизъюнкция выражений. Эти выражения должны содержать либо сравнения, либо диапазоны. Тест равен true, если хотя бы одно из выражений дизъюнкции равно true.

Примеры:

  • 3,5,7: проверяет, является ли входное значение 3, 5 или 7

  • <2,>10: проверяет, является ли входное значение либо меньше 2, либо больше 10

  • 10,[20..30]: проверяет, является ли входное значение либо 10, либо находится между 20 и 30

  • "Spareribs","Steak","Stew": проверяет, является ли входное значение строкой Spareribs, Steak или Stew

  • date and time("2015-11-30T12:00:00"),date and time("2015-12-01T12:00:00"): проверяет, является ли входное значение датой 30 ноября 2015 года в 12:00:00 или 1 декабря 2015 года в 12:00:00

  • >customer.age,>21: проверяет, является ли входное значение либо больше свойства age переменной customer, либо больше 21

Отрицание

Простой унарный тест FEEL можно отрицать с помощью функции not. Это означает, что если содержащееся выражение возвращает true, тест вернёт false. Обратите внимание, что допускается только одно отрицание в качестве первого оператора, но оно может содержать дизъюнкцию.

Примеры:

  • not("Steak"): проверяет, что входное значение не является строкой Steak

  • not(>10): проверяет, что входное значение не больше 10, что означает, что оно меньше или равно 10

  • not(3,5,7): проверяет, что входное значение не равно ни 3, ни 5, ни 7

  • not([20..30]): проверяет, что входное значение не находится между 20 и 30

Квалифицированные имена

Простые унарные тесты FEEL могут обращаться к переменным и свойствам объектов по квалифицированным именам.

Примеры:

  • x: проверяет, равно ли входное значение переменной x

  • >= x: проверяет, больше ли входное значение или равно переменной x

  • < customer.age: проверяет, меньше ли входное значение свойства age переменной customer

Функции даты

Простые унарные тесты FEEL предоставляют функции для создания типов даты. Движок DMN OpenBPM поддерживает следующие функции даты:

  • date and time("…​"): создаёт значение даты и времени из строки в формате yyyy-MM-dd’T’HH:mm:ss

Примеры:

  • date and time("2015-11-30T12:00:00"): проверяет, является ли входное значение датой 30 ноября 2015 года в 12:00:00

  • [date and time("2015-11-30T12:00:00")..date and time("2015-12-01T12:00:00")]: проверяет, находится ли входное значение между датой 30 ноября 2015 года в 12:00:00 и 1 декабря 2015 года в 12:00:00

Лицензия и атрибуция

Эта документация была создана на базе материала "Camunda 7 Docs" от Camunda, находится под лицензией Creative Commons Attribution-ShareAlike 3.0 Unported License .

Оригинал документации: https://docs.camunda.org