Синтаксис формул
Поддерживаемые литералы
строки - одинарные и двойные кавычки (например
'hello'
)числа - целое число (e.g.
103
), десятичная дробь (e.g.9.95
), десятичные дроби без ведущих нулей (например.99
, эквивалентно0.99
); все числа поддерживают дополнительные подчеркивания в качестве разделителей для улучшения читаемости (например1_000_000
,3.14159_26535
)массивы - используя нотацию типа JSON (e.g.
[1, 2]
)именованные массивы - используя нотацию типа JSON (e.g.
{ foo: 'bar' }
)логические значения -
true
иfalse
нулевой -
null
экспоненциальный - также известный как научный (например
1.99E+3
или1e-2
)
Null-Coalescing Operator
Он возвращает левую часть, если она существует и не равна null
; иначе возвращает правую часть. Выражения могут объединять несколько операторов объединения:
foo ?? 'no'
foo.baz ?? 'no'
foo[3] ?? 'no'
foo.baz ?? foo['baz'] ?? 'no'
Поддерживаемые операторы
Арифметические операторы
+
(сложение)-
(вычитание)*
(умножение)/
(деление)%
(модуль)**
(возведение в степень)
Побитовые операторы
&
(и)|
(или)^
(исключающее или)
Comparison Operators
==
(равно)===
(идентично)!=
(не равно)!==
(не идентично)<
(меньше чем)>
(больше чем)<=
(меньше или равно)>=
(больше или равно)matches
(совпадение с регулярным выражением)contains
(содержит)starts with
(начинается с)ends with
(заканчивается на)
Чтобы проверить, что строка не соответствует регулярному выражению, используйте логический оператор not
в комбинации с оператором matches
:
Вы должны использовать круглые скобки, поскольку унарный оператор not
имеет приоритет над бинарным оператором matches
.
Логические операторы
not
или!
and
или&&
or
или||
String Operators
~
(конкатенация)
Пример использования:
Операторы массивов
in
(содержит)not in
(не содержит)
Например:
Переменные
Вы можете использовать в выражениях переменные. Есть два варианта определения и использования переменных.
Переменные это текст с завершающим символом ":", после которого следует некоторое выражение. Например:
По шагам:
В первой строке, определяется переменная
one
со значением 1.Во второй строке, определяется переменная
two
, значение которой это выражение.Третья строка, это результирующее выражение, которое и будет результатом вычисления.
Данные
В Idea Hub доступны следующие данные:
process (процессы)
license (лицензии)
robot (роботы)
machine (машины)
queue (очереди)
project (проекты)
areas (департаменты)
process_type (типы процессов)
tenant (тенанты)
systems (системы)
environment (окружения)
license_type (типы лицензий)
process_complexity (уровни сложности процессов)
folder (папки)
С помощью этих ключевых слов, можно получить доступ к списку соответствующих данных.
Примеры использования данных
Результатом вычисления будет именованный массив всех процессов в системе.
Доступ к полям
Чтобы посмотреть список доступных полей сущности, вам нужно в редакторе формул написать выражение:
Это выражение может быть размещено в конце любого другого выражения на отдельной последней строке. В таком случае, подсказку по списку полей вы увидите в одной части панели с результатами расчётов, а результат вычисления в другой части.
Следующее выражение будет корректным:
Результатом выполнения первой строки выражения будет число 6.
Результатом выполнения второй строки выражения, будет следующее:
Справа на панели, появится текст со списком доступных полей для процессов. Чтобы найти среди полей нужное, вы можете продолжить ввод. Весь дальнейший текст ввода будет использоваться в качестве шаблона для поиска полей. Поиск ведётся по названию поля и описанию.
Пример:
Покажет вам список полей, в описании или названии которых встречается слово "разраб":
Выражение process#14541
используется для доступа к конкретному процессу. Например:
Вернёт вычисленное значение поля field_fte
(FTE) на текущую дату.
А следующее выражение:
Вернёт значение поля field_fte
на 12 мая 2024 года.
Функции
count(array)
Количество элементов массива.
Аргументы: array - массив.
Пример:
count([1, 2, 3])
вернёт 3.
sum(array)
Сумма элементов массива.
Аргументы: array - массив, значения которого будут просуммированы.
Пример:
sum([1, 2, 3])
вернёт 6.
avg(array)
Среднее всех элементов массива.
Аргументы: array - массив, значения которого будут использованы для вычисления среднего значения.
Пример:
avg([1, 2, 3])
вернёт 2.
Если в массиве присутствуют пустые значения, они будут исключены из вычисления.
Например:
Также вернёт 2, потому что элемент со значением null
не будет учитываться во время вычисления.
Last updated