- Распечатать
Технические детали редактора выражений
Эта статья поможет вам понять, как писать функции и использовать типы данных в редакторе выражений.
Вы можете использовать выражения в двух местах: в редакторе приложений и в редакторе аналитики. Оба варианта имеют различные методы и сценарии использования выражений, поэтому обязательно ознакомьтесь с их соответствующими форматами.
Типы
Каждое поле, значение и подвыражение имеет тип данных, который позволяет системе Tulip проверить, является ли ваше выражение действительным. Это позволяет предотвратить такие операции с выражениями, как добавление 3 к дню недели. Если ваше выражение имеет логический смысл, вы не столкнетесь с ошибками типа; однако если вы столкнетесь, редактор выведет ошибку с правилом, которое вы нарушили. Редактор выражений использует следующие типы:
- Текст: Последовательность символов, например "foo" или "abc123".
- Целое число: Целое число (число без дробной части), например -3, 0 или 5.
- Число: Любое действительное число, например -3,2, 0, 3 или 4,2345.
- Интервал: Количество времени, измеряемое в секундах.
- Булево: истина или ложь.
- День недели: День недели, например понедельник или суббота.
- Дата: Дата, например среда, 29 ноября 2017 года.
- Дата-время: Время и дата, например, среда, 29 ноября 2017 года в 1:05 PM EST.
- Неделя: Неделя, например неделя, начинающаяся в понедельник, 27 ноября 2017 года.
- Месяц: Месяц, например ноябрь 2017 года.
- Пользователь: любой пользователь в системе Tulip, как описано здесь.
- Станция: Любая станция в цехе, как описано здесь.
- Приложение: Любое приложение Tulip.
- Версия приложения: Версия приложения, как описано здесь.
Операторы
В Tulip вы можете использовать основные арифметические операторы для выполнения действий с данными. Операторы с одним операндом (значением) выполняют действие с одним операндом.Например: -X, отрицает значение операнда X.
Бинарные операторы выполняют действия с двумя операндами.Например: X+Y, складывает значения двух операндов X и Y.
В сложных выражениях (с двумя и более операндами) порядок вычисления зависит от ряда следующих правил:
- круглые скобки
- экспоненты
- умножение и деление
- сложение и вычитание
Например: X * A + Y * B - умножаются значения X и A, а также Y и B. Затем эти значения складываются.
Выражения оцениваются слева направо. Сложные выражения, в которых используется несколько операторов и функций одного типа, оцениваются в порядке следования используемых операторов.
!
Логическое НЕ. Возвращает true тогда и только тогда, когда его аргумент false.
Например: @variable.work_order_number != 123456
=
Проверяет, равны или нет значения двух операндов, если да, то условие становится истинным.
Ex: (A = B)
>
Проверяет, больше ли значение левого операнда, чем значение правого операнда, если да, то условие становится истинным.
Ex: (A > B) не является истинным.
<
Проверяет, меньше ли значение левого операнда, чем значение правого операнда, если да, то условие становится истинным.
Ex: (A < B) истинно.
>=
Проверяет, больше или равно ли значение левого операнда значению правого операнда, если да, то условие становится истинным.
Ex: (A >= B) не является истинным.
<=
Проверяет, меньше или равно ли значение левого операнда значению правого операнда, если да, то условие становится истинным.
Ex: (A <= B) истинно.
&
Логическое И. Если оба операнда ненулевые, то условие становится истинным.
Например: (A & B) истинно.
|
Если любой из двух операндов ненулевой, то условие становится истинным.
Например: (A | B) истинно.
+
Добавляет два операнда
Например: A + B даст 30
-
Вычитает второй операнд из первого
Ex: A - B даст -10
*
Умножение обоих операндов
Ex: A * B даст 200
/
Разделите числитель на знаменатель
Например: B / A даст 2
%
Выводит остаток от целочисленного деления
Например: B % A даст 0
Функции
Список доступных функций различается в редакторе приложений и редакторе аналитики. Изучите соответствующие списки, чтобы точно знать, какие выражения можно использовать и когда.
Вы нашли то, что искали?
Вы также можете зайти на community.tulip.co, чтобы задать свой вопрос или узнать, сталкивались ли другие с подобным вопросом!