Синтаксис формул
Поддерживаемые литералы
Строки — одинарные и двойные кавычки. Пример,
'hello'
.Числа:
целое число (например,
103
);десятичная дробь (например,
9.95
);десятичные дроби без ведущих нулей (например,
.99
, эквивалентно0.99
);все числа поддерживают дополнительные подчеркивания в качестве разделителей для улучшения читаемости — например,
1_000_000
,3.14159_26535
.
Массивы — с использованием нотации типа JSON. Пример:
[1, 2]
.Именованные массивы — с использованием нотации типа JSON. Пример:
{ foo: 'bar' }
.Логические значения —
true
иfalse
.Нулевой —
null
.Экспоненциальный — также известный как научный. Пример:
1.99E+3
или1e-2
.
Поддерживаемые операторы
Арифметические операторы
+
(сложение)-
(вычитание)*
(умножение)/
(деление)%
(модуль)**
(возведение в степень)
Операторы сравнения
==
(равно)===
(идентично)!=
(не равно)!==
(не идентично)<
(меньше чем)>
(больше чем)<=
(меньше или равно)>=
(больше или равно)matches
(совпадение с регулярным выражением)contains
(содержит)starts with
(начинается с)ends with
(заканчивается на)
Чтобы проверить, что строка не соответствует регулярному выражению, используйте логический оператор not
в комбинации с оператором matches
:
Вы должны использовать круглые скобки, поскольку унарный оператор not
имеет приоритет над бинарным оператором matches
.
Логические операторы
not
или!
and
или&&
or
или||
Побитовые операторы
&
(и)|
(или)^
(исключающее или)
Оператор объединения с null
Оператор возвращает левую часть, если она существует и не равна null
; иначе возвращает правую часть. Выражения могут объединять несколько операторов объединения:
foo ?? 'no'
foo.baz ?? 'no'
foo[3] ?? 'no'
foo.baz ?? foo['baz'] ?? 'no'
Строковые операторы
~
(конкатенация)
Пример использования:
Операторы массивов
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