Підтримка24

Обчислення значень виразів в параметрах дій

У системі можна обчислювати значення виразів у параметрах дій. Наприклад, складати, множити, обчислювати відсотки та багато іншого.

Для виконання обчислень необхідно поставити знак = у полі перед операціями.

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

У кожному полі можна використовувати кілька різних обчислень. Якщо ви хочете не тільки зробити обчислення, але й вивести додаткові дані (значення змінних, текст), то є два варіанти написання:

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

    Приклад: Вам необхідно оформити документи до {{=DateAdd({{Дата створення елемента}}, '5d')}}.
  • Або можна використовувати оператор конкатенації (&), а текст писати в лапках (").

    Приклад: ="Відповідь:" & (1+3) або ="Автор: " & {{Ким створено}} & ", " & "Крайній термін: " & Dateadd({{Дата створення елемента}}, "1d")

    screenshot

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

Оператори

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

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

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

Функції для обчислень

У процесах під час проєктування бізнес-процесу можна використовувати функції. Їх можна обрати зі списку. Для цього напишіть у полі знак = та відкриється список.

screenshot

Список функцій з прикладами

Функція Опис
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. Допустимe написання як у верхньому, так і в нижньому регістрі.

Приклад: =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,це буде наш співвиконавець.

Далі заповнимо параметри завдання.

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


Також варто прочитати:

Допомогло!
Дякуємо :)
Необов'язково:
Залишити відгук про статтю
Не допомогло
Дуже шкода :(
Дізнайтесь, чому:
Залишити відгук про статтю
Маю додаткові запитання
Замовити впровадження