Выражения и синтаксис узла Logic
Основы выражений
Узел Logic использует Navixy IoT Logic Expression Language, который основан на Java Expression Language (JEXL). Все выражения должны возвращать логическое значение (true/false) для корректной работы узла.
Оценка выражений: Выражения оцениваются слева направо, и вы можете использовать скобки для управления порядком операций.
Пример базового синтаксиса:
condition1 && (condition2 || condition3 > condition4)Доступные операторы
Операторы сравнения
==
Проверяет, равны ли два операнда. Если операнды разных типов, JEXL при возможности приводит их к одному типу
!=
Проверяет неравенство двух операндов. Возвращает true, если операнды не равны
<
Проверяет, что левый операнд меньше правого операнда
<=
'Проверяет, что левый операнд меньше или равен правому операнду
>
Проверяет, что левый операнд больше правого операнда
>=
Проверяет, что левый операнд больше или равен правому операнду
Логические операторы
&& или и
Логическое AND — проверяет, истинны ли оба условия. Возвращает true, если оба условия истинны
| или или
Логическое OR — проверка истинности хотя бы одного из двух условий
! или не
Логическое NOT — преобразует результат условия в противоположное значение
Операторы сопоставления с шаблоном
=~
Проверяет, находится ли значение левого операнда в наборе правого операнда. Для строк проверяет соответствие регулярному выражению
!~
Проверяет, что значение левого операнда не находится в наборе правого операнда. Для строк проверяет несоответствие регулярному выражению
=^
Проверяет, что левая строка начинается с правой строки
!^
Проверяет, что левая строка не начинается с правой строки
=$
Проверяет, что левая строка заканчивается правой строкой
!$
Проверяет, что левая строка не заканчивается правой строкой
Примеры выражений
Сценарии обработки ошибок
Выражение оценивается как true
Успех
THEN соединение
true
Выражение оценивается как false
Успех
ELSE соединение
false
Ссылка на атрибут является null
Обрабатывается как false
ELSE соединение
false
Синтаксическая ошибка в выражении
Обрабатывается как false
ELSE соединение
null
Ссылка на атрибут не существует
Обрабатывается как false
ELSE соединение
null
Практические примеры реализации
Последнее обновление
Это было полезно?