Элементы языка 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