top
Вход

Поддержка24

Вычисление значений выражений в параметрах действий

В системе можно вычислять значения выражений в параметрах действий. Например, складывать, умножать, вычислять проценты и многое другое.

Для выполнения вычислений нужно поставить знак = в поле перед операциями.

Пример: =6^2 + {{Сумма}}/2 или =if({{ID}}=5, "текст1", "текст2").

В каждом поле можно использовать сразу несколько разных вычислений. Если Вы хотите не только произвести вычисление, но и вывести дополнительные данные (значение переменных, текст), то доступно два варианта написания:

  • Вычисляемые значения можно просто размещать в тексте, поместив вычисление в конструкцию {{=...}}.

    Пример : Вам необходимо оформить документы до {{=DateAdd({{Дата создания элемента}}, '5d')}}.

  • Либо можно использовать оператор конкатенации (&), а текст писать в кавычках (").

    Пример: ="Ответ:" & (1+3) или ="Автор: " & {{Кем создан}} & ", " & "Конечный срок: " & Dateadd({{Дата создания элемента}}, "1d")

Синтаксис символьных операторов аналогичен синтаксису соответствующих php-функций.

Операторы

При вычислении значений выражений в параметрах действий вы можете использовать различные операторы и функции.

Список доступных операторов

Оператор Описание
+ Сложение.
- Вычитание.
* Умножение.
/ Деление.
= Равно.
<> Не равно.
< Меньше.
> Больше.
<= Меньше или равно
>= Больше или равно.
() Порядок действий.
& Оператор конкатенации, который возвращает строку, представляющую собой соединение левого и правого аргумента.
^ Возведение в степень.
% Вычисление процентов.
true Правда.
false Ложь.
and логический оператор И
or логический оператор ИЛИ.
Пример: =if(or({=Variable:aaa}>2, {=Variable:bbb}<10), "yes", "no")
not Отрицание.

Функции для вычислений

В действиях при проектировании бизнес-процесса можно использовать функции. Их можно выбрать из списка. Для этого напишите в поле знак = и откроется список.

Список функций с примерами

Функция Описание
abs Вычисление модуля числа.
dateadd

Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к указанной дате.

Синтаксис: =dateadd([начальная_дата], [что_добавлять])

Варианты написания и примеры

y, year, years, m, month, months, d, day, days, h, hour, hours, min, minute, minutes, s, second, seconds.

При написании можно использовать верхний или нижний регистр.

Примеры: {{=DateAdd({{Дата создания элемента}}, '-2d')}}, {{=DateAdd({{Дата создания элемента}}, '2 days 3 minutes')}}.

В случае, если необходимое для добавления количество единиц времени содержится в поле, переменной и т.п., то необходимо использовать оператор конкатенации &.

Например: {{=DateAdd({{Дата создания элемента}}, {=Variable:WHAT2ADD} & "y 10h")

datediff

Позволяет вычислить разницу между двумя датами.

Синтаксис: =datediff([первая дата], [вторая дата], [как выводить разницу])

Разницу можно выводить в разных единицах, в зависимости от решаемых вами задач.

Примеры: =datediff({=Variable:Variable1}, {=Variable:Variable2},'%m month, %d days')
date

Функция выдает дату в указанном формате и работает аналогично функции Date в PHP.

Синтаксис - =date ('формат вывода', {нужная дата})

WorkDateAdd

Добавляет заданное количество рабочих дней, часов и минут к указанной дате.

Синтаксис: =WorkDateAdd([начальная_дата], [что_добавлять]).

Варианты написания и примеры

d, day, days, h, hour, hours, i, min, minute, minutes. Допустимо написание как в верхнем, так и в нижнем регистре.

Пример: =WorkDateAdd({=Template:Parameter1}, "2d") - в параметре содержится дата 28.04.2016.

Результат - 02.05.2016 09:00:00, т.к. 30.04 и 1.05 - это выходные дни, то они будут пропущены. 09:00:00 - начало рабочего дня.

Настроить список выходных дней и начало рабочего дня можно в Настройках портала.

AddWorkDays Функция добавляет N рабочих дней к указанной дате.

Синтаксис: =addworkdays([дата, к которой будут добавляться дни], [количество добавляемых рабочих дней]).

Примеры: {{=addworkdays('07.03.2016', 1)}} - результат: 09.03.2016 00:00:00, т.к. в настройках сайта 8 марта - выходной.

{{=addworkdays('05.02.2016 16:14:00', 1)}} - результат: т.к. 05.02.2016 - пятница, то результат: 08.02.2016 16:14:00 - понедельник.

isWorkDay Проверяет, является ли дата рабочим днем (по Календарю).

Синтаксис: =if(isWorkDay([проверяемая дата]), [сообщение, если дата является рабочим днем], [сообщение, если не является]).

Пример: {{=if(isWorkDay({=Template:Parameter1}), 'Да', 'Нет')}} - в параметре содержится дата 28.04.2016. Результат - Да, т.к. это рабочий день.
isWorkTime Аналогична функции isWorkDay, но для типов данных Дата/Время.

Синтаксис: =if(isWorkDay([проверяемая дата со временем]), [сообщение, если дата со временем являются рабочими], [сообщение, если не являются]).

Пример:{{=if(isWorkTime({=Template:Parameter1}), 'Да', 'Нет')}} - в параметре содержится дата со временем 27.04.2016 15:00:00.

Результат - Да, т.к. это рабочее время.

toUserDate Функция приводит любое время к времени сотрудника (с учетом его часового пояса).

toUserDate(user,date=now)

Параметры:
  • user - пользователь, к чьему времени необходимо привести время бизнес-процесса.
  • date - начальная дата, по умолчанию - текущее время.

GetUserDateOffset Функция возвращает значение смещения часовой зоны пользователя в секундах (относительно серверного времени).

GetUserDateOffset(user)

Параметр:
  • user - пользователь, относительно чьего времени нужно значение.
if Условный оператор.

Синтаксис: =if([условие],[результат_в_случае_выполнения_условия],[результат_в_случае_не_выполнения_условия])

Пример: =if ({=Variable:Variable1_printable}>0, "да", "нет")

При сравнении значений переменных также возможно сравнивать переменные с разным типом данных. Однако сравниваемые переменные должны соответствовать таблице преобразования типов (она есть в этой статье).

intval Возвращает целое значение переменной.
Пример:=intval("234j4hv5jhv43v53jk4vt5hj4") вернет 234
floatval Возвращает число (с плавающей точкой).
numberformat Форматирует число с разделением групп.
min Возвращает наименьшее значение.
max Возвращает наибольшее число.
rand Возвращает случайное число.

Синтаксис: =rand([минимальное значение],[максимальное значение]).

Обязательным является только указание минимального значения. Если вы не хотите ограничивать верхнюю границу, то можете не указывать второй параметр, например =rand(17).

Пример: =rand(0,10) - выбор числа от 0 до 10.

round Округляет число.

Синтаксис: =round([что округляем],[количество знаков после запятой])

Примеры:

  • =round(10/3,2) - получаем 3.33.
  • =round(5/2) - получаем 3.

ceil Округляет дробь в большую сторону.
Пример: =ceil(5.5) получаем 6.
floor Округляет дробь в меньшую сторону.
Пример: =floor(5.5) получаем 5.
substr Возвращает подстроку определенной длины, начиная с указанного символа. Данная функция аналогична существующей в php, более подробно о ее возможностях вы можете прочитать здесь.

Синтаксис: substr([входная строка], [с какого символа исходной строки начнется возвращаемая статья], [какой длины будет строка])

Имейте в виду, что строка начинает с символа под номером 0. Например, в строке 'abcdef', в позиции 0 находится символ 'a', в позиции 2 - символ 'c', и т.д.

Пример: {{=substr("0123456789", 3, 4)}} вернет 3456.

Внимание! Если синтаксис выражения будет неправильным, то оно будет отображено как текст.

strpos Возвращает позицию первого вхождения подстроки.
strlen Возвращает длину строки.
implode Объединяет множественные значения в строку. Полезна, когда нужно вывести в текст значения множественных переменных нестандартным разделителем (стандартный - просто запятая). Аналог implode в PHP. Возвращает строку, содержащую строковое представление всех элементов массива в указанном порядке, со значением glue между каждым элементом.
implode(glue,pieces) 

Параметры:

  • glue - по умолчанию равен пустой строке
  • pieces - массив объединяемых строк.
explode Функция разбивает строку с помощью разделителя. Полезна, когда нужно разбить строку и присвоить части как значение множественной переменной. Аналог explode в PHP. Возвращает массив строк, полученных разбиением строки str с использованием delimiter в качестве разделителя.
explode(delimiter, str)

Параметры:

  • delimiter - разделитель
  • str - строка для разделения.
randstring Возвращает случайную строку.
merge Позволяет объединять массивы.

Синтаксис: = merge({=массив_1}, {=массив_2});

Пример: = merge({{Другие файлы}}, {=Variable:file}).
urlencode URL-кодирование строки.
strtolower Преобразует строку в нижний регистр.
strtoupper Преобразует строку в верхний регистр.
ucwords Преобразует в верхний регистр первый символ каждого нового слова в строке.
firstvalue Возвращает первое значение множественного поля.
swirl Перемещает первое значение множественного поля в конец. На вход подается множественное поле, на выходе получаем значения сдвинутые на один шаг влево, т.е. первое значение встало в конец. Сдвиг всегда происходит на один шаг.
shuffle Перемешивает значение множественного поля. Аналог shuffle в PHP. На вход подается множественное поле, на выходе получаем перемешанные значения этого множественного поля.
Пример

Рассмотрим работу функций: shuffle, firstvalue и swirl на примере бизнес-процесса. С помощью этого бизнес-процесса можно поставить задачу для произвольного сотрудника из списка и добавить в соисполнители другого пользователя.

В бизнес-процессе используется множественная переменная Пользователи, в которой хранится список сотрудников.

Сначала перемешаем список пользователей с помощью shuffle и возьмем первого с помощью firstvalue, это будет наш ответственный.

Затем сдвинем этот список с помощью swirl и возьмем первого с помощью firstvalue, это будет наш соисполнитель.

Далее заполним параметры задачи.

После запуска бизнес-процесса в задачу будут добавлены произвольные сотрудники в качестве ответственного и соисполнителя.


Рекомендую также прочитать:
Спасибо, помогло!
Спасибо :)
Необязательно:
Оставить отзыв о статье
Не помогло
Очень жаль :(
Уточните, пожалуйста, почему:
Это не то, что я ищу
Очень сложно и непонятно
Оставить отзыв о статье
Помощь партнера