IF

IF — це інструмент умовної логіки у флоу, який дозволяє керувати виконанням сценарію залежно від результату перевірки умови. Він аналізує значення змінних, результати попередніх блоків або відповіді API та визначає, по якій гілці — True (1) або False (0) — буде продовжено виконання. Це ключовий інструмент для створення гнучких інтеграцій, що вміють обробляти помилки та фільтрувати дані.
Навігація:
- Налаштування блоку
- Як формувати логічний вираз
- Логіка розгалуження: True vs False
- Приклади використання та комбінації з іншими блоками
4.1. Обробка помилок. IF + Error
4.2. Формування булевого типу поля. IF + Object Builder
4.3. Якщо масив пустий — не запускати Loop. IF + Loop: Object/List + Object Builder
4.4. Налаштування валідації акаунту. IF + HTTP + Set Validation Result - FAQ
Налаштування блоку
─────────────────────────────────────────────────────────────-

1 -> Condition (Умова): єдине поле, щоб вписати логічний вираз.
Працює виключно в режимі EXP.
- Синтаксис: Тут ви комбінуєте змінні {{VARS}}, логічні оператори (==, !=, &&) та функції (EMPTY(), COUNT()).
У режимі EXP завжди з’являється панель операторів і функцій.
Оператори та функції можна застосовувати у будь-якому полі, де активований режим EXP (Expression). Це дозволяє будувати динамічні та логічні вирази для обчислень або перевірок.
Більш детально ви можете ознайомитись з усіма операторами та функціями на цій сторінці: Functions & Logical Operators
Як формувати логічний вираз
─────────────────────────────────────────────────────────────-

1 -> Режим поля EXP: поле Condition не має перемикача TXT/EXP, оскільки воно за замовчуванням обробляє вміст як вираз.
2 -> Виклик зовнішньої функції: функція, що приймає аргументи та застосовується до переданих даних (наприклад, для обробки, перетворення або форматування).
3 -> Змінні: динамічні значення, які можна підставляти у вирази та передавати як аргументи функціям.
4 -> Синтаксичні оператори: можуть використовуватися різні оператори (не лише "логічне і") для побудови виразів, об’єднання частин, передачі значень або виконання інших операцій залежно від логіки виразу.
5 -> Модифікатор-функція: спеціальний елемент, який застосовується до змінних або результатів виразів і дозволяє обробляти дані «на льоту», змінюючи або доповнюючи їхню поведінку без попереднього збереження значення.
Логіка розгалуження: True vs False
─────────────────────────────────────────────────────────────-
Результат виконання в полі Condition завжди зводиться до двох станів, від цього залежить маршрут сценарію:
- True (1) — умова виконана, сценарій продовжується по гілці True;
- False (0) — умова не виконана, сценарій продовжується по гілці False.
Важливо: Ви можете залишати гілку False порожньою, якщо при невиконанні умови флоу має просто зупинитися, або будувати там альтернативний ланцюжок дій (наприклад, інший API-запит).
!!! Зверніть увагу !!!
В ApiX-Drive результат умови IF завжди повертається у вигляді 1 (True) або 0 (False), що дозволяє легко перевіряти стан логіки та передавати його в інші блоки або змінні.
Результат Виконання ви можете побачити в розділі Test.

Приклади використання та комбінації з іншими блоками
─────────────────────────────────────────────────────────────-
- Обробка помилок. IF + Error
Блок IF дуже активно використовується в окремому флоу Request Error при обробці помилок і комбінується з блоком Error.
Перевіряємо наявність і заповненість полів. Якщо існує ISSET({{Body.error}}) а також не порожнє !EMPTY({{Body.error.message}}) , йдемо в гілку True і запускаємо блок Error, щоб зупинити флоу та сповістити про проблему. Якщо {{Body.error.message}} буде порожнє підемо у гілку False.



- Формування булевого типу поля. IF + Object Builder
Для того щоб в середовищі DEV платформи передавати булеві (true/false) типи даних, необхідно їх конвертувати через функцію TO_BOOL() або через вбудований декоратор.
Перевіряємо заповненість поля. Якщо не порожнє !EMPTY({{your_variable}}) , йдемо у гілку True, і запускаємо блок Object Builder для формування булевого типу поля через функцію TO_BOOL(). Якщо {{your_variable}} буде порожнє підемо у гілку False і блок Object Builder буде проігнорований.


- Якщо масив пустий — не запускати Loop.
IF + Loop: Object/List + Object Builder
Перед тим як запускати Loop, перевіряємо: COUNT({{items}}) > 0. Якщо масив порожній, йдемо в False, пропускаючи цикл, щоб уникнути помилок обробки.

Цей патерн дозволяє уникнути помилок і зайвих операцій у флоу, коли API повертає порожній список або коли користувач нічого не заповнив. IF використовується як “захисний бар’єр”: перевіряє, чи є дані для обробки, і лише тоді запускає Loop і подальші дії.
- Налаштування валідації акаунту. IF + HTTP + Set Validation Result
Перевірка наявності токена перед початком будь-яких запитів. Якщо токен не порожній !EMPTY({{token}}), йдемо в гілку True і лише тоді виконується запит на валідацію. Якщо користувач не заповнить токен, підемо у гілку False і відразу буде помилка про неуспішну валідацію.

FAQ
─────────────────────────────────────────────────────────────-
1. Як інвертувати логіку?
Просто додайте знак оклику ! перед функцією. Наприклад, !EMPTY() означає «якщо поле не порожнє».
2. Як працює IF з null?
У нашій системі null вважається порожнім значенням. Функція EMPTY(null) поверне 1 (True), а COUNT(null) поверне 0 (False).
3. Чому моя умова не спрацьовує?
Часті причини: поле не існує (null), неправильний тип даних змінних.
4. Навіщо використовувати Flow Test?
Це необхідно для валідації логіки розгалуження. Тестування з різними вхідними даними дозволяє побачити результат умови (1/0) у реальному часі та переконатися, що сценарій спрямовує дані по правильній гілці.