31.12.2025
64

Functions & Logical Operators

Functions & Logical Operators
Functions та Logical Operators - це базові інструменти керування даними та робочими процесами всередині платформи. Вони дозволяють виконувати математичні обчислення, перетворювати текстові рядки, маніпулювати масивами та датами, а також будувати умовні розгалуження, що визначають логіку вашої інтеграції.

Навігація:

  1. Logical Operators - Арифметика, порівняння та логіка.  
  2. General Functions - Перевірка та типи даних.
  3. Math Functions - Обчислення.
  4. Text Functions - Робота з рядками.
  5. Date and Time Functions - Робота з часом.
  6. Array Functions - Робота зі списками.

Важливі правила використання:

  • Режим EXP (Expression): Функції та оператори працюють виключно в полях, переключених у режим EXP. У режимі TXT будь-який символ буде сприйматися платформою як звичайний текст.
  • Комбінування: Ви можете вкладати функції одну в одну та поєднувати їх з операторами, будуючи складні логічні ланцюжки. Наприклад:
    IF(INPUT.price > 100 && ISSET(INPUT.discount), "Sale", "Regular").
  • Розташування: Повний список функцій та операторів доступний при натисканні на поле у вкладці Expression -> Functions / Operators.
Functions


Logical Operators (Expression Logic)

─────────────────────────────────────────────────────────────-

Окрім функцій, платформа підтримує логічні та порівняльні оператори, які використовуються для побудови умов, перевірок і складних логічних виразів.

Operators працюють у тому ж режимі EXP, що й функції, та знаходяться в тому самому меню Expression, поруч із ними. Вони є частиною єдиного механізму обробки виразів.  

Operators  


Ключова відмінність:

  • Functions — виконують операції над даними (обчислення, трансформації).
  • Logical Operators — визначають логіку порівняння та умови виконання.

Де використовуються логічні оператори

Найчастіше вони застосовуються у таких сценаріях:

  • В умовах блоку IF.
  • У полях із режимом EXP (наприклад, Validation Status, Message, Key, Value).
  • У комбінації з функціями для складних перевірок.
  • Для перевірки відповідей API, порожності значень, статусів, прав доступу.

Принцип роботи

Логічні оператори працюють безпосередньо з даними або результатами функцій. Вони можуть комбінуватися між собою та вкладатися у функції (наприклад, IF, EMPTY). Головна особливість — вони повертають логічний результат (true/false або 1/0), який використовується далі у флоу.


Приклади комбінування з функціями:

Перевірка статусу та наявності даних:
IF(body.status == "success" && !EMPTY(body.data), "OK", "ERROR")

Перевірка наявності елементів у масиві або конкретного об'єкта:
IF(COUNT(body.items) > 0 || ISSET(body.item), 1, 0)

Перевірка прав доступу через масив ролей:
IF(!IN_ARRAY("admin", body.roles), "Access denied", "Access granted")

***

General Functions

─────────────────────────────────────────────────────────────-

Призначені для перевірки стану змінних та приведення типів даних.


IF
Повертає одне зі значень залежно від умови.

IF(body.paging.count > 0, "Data", "Empty")


EMPTY

Перевіряє, чи є значення порожнім (NULL, порожній рядок або порожній масив).

EMPTY(body.name)


ISSET

Перевіряє, чи існує ключ або змінна в об'єкті.

ISSET(body.id)


IFEMPTY

Повертає вказане значення, а якщо воно порожнє — значення за замовчуванням.

IFEMPTY(INPUT.phone, 15740000000)


TO_NUMBER

Примусово перетворює вхідне значення на число. Результат: 123.45

TO_NUMBER("123.45")


TO_BOOL

Перетворює на логічне значення. Результат: true

TO_BOOL(1)


TO_STRING

Перетворює вхідне значення будь-якого типу на текстовий рядок. Результат: "456"

TO_STRING(456)


MIME_TYPE
Визначає тип вмісту (MIME-тип) на основі розширення файлу або його структури.

MIME_TYPE("image.png")
***

Math Functions

─────────────────────────────────────────────────────────────-

Для розрахунків та роботи з числами.


MIN
Знаходить найменше значення серед усіх переданих аргументів. Результат: 5

MIN(10, 20, 5)


MAX
Знаходить найбільше значення серед усіх переданих аргументів. Результат: 20

MAX(10, 20, 5)


SUM
Обчислює загальну суму всіх переданих числових аргументів. Результат: 30

SUM(5, 10, 15)


MATH_PI
Повертає математичну константу числа Пі. Результат: 3.141592653589793

MATH_PI()


RND
Генерує випадкове число з плаваючою крапкою в діапазоні від 0 до 1. Результат: 0.92627

RND()


AVERAGE
Обчислює середнє арифметичне значення набору чисел. Результат: 4

AVERAGE(2, 4, 6)


MEDIAN
Знаходить медіану набору даних. Результат: 10

MEDIAN(1, 10, 100)


ABS
Повертає модуль (абсолютне позитивне значення) числа. Результат: 42

ABS(-42)


TRUNC
Відсікає дробову частину числа, залишаючи лише цілу частину без округлення. Результат: 10

TRUNC(10.95)


CEIL
Округлює число вгору до найближчого більшого цілого числа. Результат: 11

CEIL(10.1)


FLOOR
Округлює число вниз до найближчого меншого цілого числа. Результат: 10

FLOOR(10.9)


ROUND
Округлює число до вказаної кількості знаків після коми. Результат:  10.56

ROUND(10.556, 2)
***

Text Functions

─────────────────────────────────────────────────────────────-

Для обробки, очищення та форматування рядків.


FORMAT_NUMBER
Перетворює число у форматований рядок із роздільниками тисяч та десятих. Результат: 1,500.00

FORMAT_NUMBER(1500, 2, ".", ",")


LENGTH
Визначає загальну кількість символів у текстовому рядку. Результат: 5

LENGTH("Hello")


LOWER
Перетворює всі символи текстового рядка на нижній регістр. Результат: "hello"

LOWER("HELLO")


UPPER
Перетворює всі символи текстового рядка на верхній регістр. Результат: "HELLO"

UPPER("hello")


CAPITALIZE
Робить першу літеру текстового рядка великою. Результат: "Hello world"

CAPITALIZE("hello world")


CAPITALIZE_WORDS
Робить великою першу літеру кожного слова в текстовому рядку. Результат: "Hello World"

CAPITALIZE_WORDS("hello world")


REPLACE
Замінює частину тексту на інше значення. Результат: "Hello User"

REPLACE("Hello World", "World", "User")


TRIM
Видаляє пробіли на початку та в кінці рядка. Результат: "text"

TRIM(" text ")


SUBSTR
Вирізає частину тексту, починаючи з вказаного індексу та заданої довжини. Результат: "Hello"

SUBSTR("Hello World!", 0, 5)


STRPOS
Знаходить порядковий номер першого входження вказаного символу або слова в тексті. Результат: 4

STRPOS("hello", "o")


CONTAIN
Перевіряє, чи міститься вказаний фрагмент тексту всередині рядка. Результат: 1(true)

CONTAIN("Order #123", "#")


STRSTR
Повертає частину рядка починаючи з першого входження підрядка. Результат: "@gmail.com"

STRSTR("[email protected]", "@")


JSON_ENCODE
Перетворює програмний об'єкт або масив у текстовий рядок формату JSON.

JSON_ENCODE(VARS.request)


JSON_DECODE
Перетворює JSON-рядок назад у зрозумілий платформі об'єкт.

JSON_DECODE(VARS.echo)


URL_ENCODE
Кодує рядок для безпечної передачі в URL-адресі, замінюючи спецсимволи. Результат: "hello%20world%21"

URL_ENCODE("hello world!")


URL_DECODE
Декодує рядок, який був закодований для URL. Результат: "hello world!"

URL_DECODE("hello%20world%21")


HTML_ESCAPE
Екранує HTML-символи для безпечного виводу. Результат: "<br>"

HTML_ESCAPE("<br>")


STRIP_TAGS
Видаляє HTML-теги з тексту. Результат: "Hello"

STRIP_TAGS("<b>Hello</b>")
***

Date and Time Functions

─────────────────────────────────────────────────────────────-

Дозволяють працювати з часовими мітками та форматами.


NOW
Повертає поточний час у форматі UNIX timestamp.

NOW()


ADD_SECONDS
Додає вказану кількість секунд до дати.

ADD_SECONDS(NOW(), 60)


ADD_MINUTES
Додає вказану кількість хвилин до дати.

ADD_MINUTES(NOW(), 15)


ADD_HOURS
Додає вказану кількість годин до дати.

ADD_HOURS(NOW(), 2)


ADD_DAYS
 Додає вказану кількість днів до поточної дати.

ADD_DAYS(NOW(), 7)


ADD_MONTHS
Додає вказану кількість місяців до дати.

ADD_MONTHS(NOW(), 1)


ADD_YEARS
Додає вказану кількість років до дати.

ADD_YEARS(NOW(), 1)


SET_SECOND
Встановлює конкретне значення секунд для заданої дати.

SET_SECOND(NOW(), 0)


SET_MINUTE
Встановлює конкретне значення хвилин для заданої дати.

SET_MINUTE(NOW(), 30)


SET_HOUR
Встановлює конкретну годину в часовій мітці дати.

SET_HOUR(NOW(), 12)


SET_DAY
Встановлює конкретне число місяця для вказаної дати.

SET_DAY(NOW(), 1)


SET_MONTH
Встановлює конкретний місяць для вказаної дати.

SET_MONTH(NOW(), 12)


SET_YEARS
Встановлює конкретний рік для вказаної дати.

SET_YEARS(NOW(), 2026)


FORMAT_DATE
Перетворює дату з UNIX timestamp у текстовий формат за заданим шаблоном. Результат: "2026-01-05 13:13:43"

FORMAT_DATE("Y-m-d H:i:s", NOW())


GMDATE
Форматує дату та час за стандартами GMT/UTC. Результат: "2026-01-05 11:17:05"

GMDATE("Y-m-d H:i:s", NOW())


PARSE_DATE
Аналізує текстовий рядок із датою та перетворює його на UNIX timestamp.

PARSE_DATE("2026-01-05")
***

Array Functions

─────────────────────────────────────────────────────────────-

Для маніпуляцій зі списками даних.


SPLIT
Розділяє рядок на масив підрядків, використовуючи заданий роздільник. Результат: ["apple", "banana", "cherry"]

SPLIT(",", "apple,banana,cherry")


PREG_SPLIT
Розділяє рядок на масив за допомогою регулярного виразу.

PREG_SPLIT("/\\s+/", "hyper-active, blue")


JOIN
Об'єднує всі елементи масиву в один рядок, розділяючи їх вказаним символом.

JOIN(body.errors, ". ")


IN_ARRAY
Перевіряє, чи міститься конкретне значення у вказаному масиві. Результат: 1(true) / 0 (false)

IN_ARRAY("apple", VARS.fruits)


IS_ARRAY
Перевіряє, чи є вхідна змінна масивом. Результат: 1(true) / 0 (false)

IS_ARRAY(body.items)


COUNT
Повертає кількість елементів у масиві.

COUNT(body.contacts)


KEYS
Повертає список ключів об'єкта або асоціативного масиву.

KEYS(VARS.user_object)


SLICE
Вирізає та повертає частину масиву, починаючи з вказаного зміщення.

SLICE(VARS.fruits, 1, 2)


MERGE
Об'єднує кілька масивів в один.

MERGE(VARS.array1, VARS.array2)


FIRST
Отримує перший елемент масиву.

FIRST(body.items)


LAST
Отримує останній елемент масиву.

LAST(body.items)


FLATTERN
Перетворює багатовимірний (вкладений) масив на простий плоский список.

FLATTERN(VARS.deep_array)


DISTINCT
Видаляє всі дублікати та повертає масив лише з унікальними значеннями. Результат: [1, 2, 3]

DISTINCT([1, 2, 2, 3])


HTTP_BUILD_QUERY
Генерує URL-кодований рядок запиту з асоціативного масиву параметрів. Результат: "name=John&age=30"

HTTP_BUILD_QUERY(VARS.params)