Вирази
Кожне поле вузла читається одним із трьох способів, і від цього залежить, як писати значення. Це найчастіше джерело зламаних флоу, тож варто розібратися один раз.
Три види полів
| Вид поля | Як читається | Приклад значення |
|---|---|---|
| текст | як є, без обчислень | orders |
| JSONata | усе поле — це один вираз | input.body.title |
| гібрид | є {{…}} — текст із підстановками; немає — цілий вираз JSONata | https://api.x/orders/{{input.body.id}} |
Пастка гібридних полів: якщо в значенні немає жодного {{, воно читається як вираз. Тому стала адреса мусить бути в лапках:
"https://api.example.com/orders"
Без лапок JSONata спробує знайти шлях https: і поверне порожньо.
Звідки беруться дані
input— це вихід попереднього вузла, не дані запиту.outputs.<id вузла>— вихід будь-якого вузла, який виконався раніше.variables.<ключ>— змінна флоу.
{{ outputs.incoming.body.title }}
{{ outputs.save_order.first.id }}
Якщо в ідентифікаторі вузла є дефіс (а редактор колись такі й створював), його треба брати в лапки, бо в JSONata дефіс — це мінус:
outputs."node-1760459115475".items
{{ outputs.'node-7'.text }}
Працюють обидва види лапок. Без них вираз читається як відняття й тихо дає порожнє. Для нових вузлів ідентифікатори вже з підкресленнями, тож лапки їм не потрібні.
Читати можна лише ті вузли, які стоять вище по гілці. Вузол із паралельної гілки або з тієї, що виконається пізніше, дасть порожнє значення.
Дані тригера
Одразу після тригера input — це і є його вихід, тож input.body.title працює. Але на другому вузлі після тригера input — це вже вихід середнього вузла. Тому дані запиту завжди надійніше брати за іменем тригера:
{{ outputs.incoming.body.title }}
Пастки JSONata
$now()приймає формат, а не назву часової зони.$now('Europe/Kyiv')повернe рядок «Europe/Kyiv». Для зони є другий аргумент:$now('[H01]:[m01]', '+0200').- Порожній результат — не помилка. Якщо шлях не знайдено, вираз дає
undefined, а не падіння, тож флоу піде далі з порожнім значенням. - У полі, де вже є
{{…}}, решта тексту лишається текстом — обчислюється тільько те, що в подвійних дужках.