Формули
Формули — це вбудована мова обчислень GetMyBot. З її допомогою можна порахувати суму знижки, зібрати рядок, перевірити умову, перетворити список або дату — прямо в тексті повідомлення, у дії «Обчислення» і в умовах таблиці рішень. Синтаксис близький до формул електронних таблиць і підтримує російські та українські назви функцій.
Де працюють формули
- У тексті — конструкція
{{= вираз}}обчислює вираз і підставляє результат. Наприклад,{{= ОКРУГЛ(param.total * 0.9) }}. - Дія «Обчислення» (
compute) — рахує вираз і зберігає результат уctx(поле «Зберегти в ctx») та/або в параметр підписника (поле «Зберегти в параметр»). - Таблиця рішень — у дії «Обчислення» замість одного виразу можна задати список правил «коли → тоді»: повертається значення першого правила, чия умова є істинною, інакше — значення за замовчуванням.
Синтаксис
- Оператори: арифметика
+ - * / %, порівняння== != < > <= >=, логіка&& || !, дужки( ). - Літерали: числа (
42,3.14), рядки в лапках ("привіт"), логічні (true,false). - Посилання на дані: усередині виразу можна звертатися до параметрів і значень контексту за іменем —
param.total,ctx.items,recipient.email. - Виклик функції:
ІМ'Я(аргумент1, аргумент2). Імена не залежать від регістру і розуміють російські аліаси.
Функції
Імена подані в канонічному (англійському) вигляді; у дужках — російський аліас, якщо він є. Регістр не важливий.
Математика
SUM (СУММ), AVERAGE (СРЗНАЧ), MAX (МАКС), MIN (МИН), MOD (ОСТАТ), POW (СТЕПЕНЬ), SQRT (КОРЕНЬ), PI (ПИ), ROUND (ОКРУГЛ), CEIL (ОКРВВЕРХ), FLOOR (ОКРВНИЗ), TRUNC (ОТБР), ABS, RANDBETWEEN (СЛУЧМЕЖДУ).
Текст
LEN (ДЛСТР), LEFT (ЛЕВСИМВ), RIGHT (ПРАВСИМВ), MID (ПСТР), LOWER (СТРОЧН), UPPER (ПРОПИСН), UPPERFIRST (ПРОПИСНПЕРВ), REPEAT (ПОВТОР), CONCAT (СЦЕПИТЬ), SUBSTITUTE (ПОДСТАВИТЬ), FIND (НАЙТИ), SEARCH (ПОИСК), FIELD (ПОЛЕ), TRIM, LTRIM, RTRIM, PADLEFT, PADRIGHT, SPLIT, JOIN, STARTSWITH, ENDSWITH, CONTAINS, NL.
Логіка
IF (ЕСЛИ), AND (И), OR (ИЛИ), NOT (НЕ), EMPTY, ISNUMBER (ЕЧИСЛО), COALESCE.
Списки
SORT, RSORT, UNIQUE, FILTER, FOREACH, REDUCE, INDEX, SLICE, COUNTA (СЧЁТЗ), COUNTUNIQUE, ARRAYADD, ARRAYREMOVE, ARRAYREPLACE, ARRAYFIND.
Дата і час
TODAY (СЕГОДНЯ), NOW (ТДАТА), DATEADD, DATESUB, DATEDIF (РАЗНДАТ), DATEFORMAT, DATEVALUE, WEEKDAY (ДЕНЬНЕД).
JSON
TOJSON, FROMJSON, JSONPATH, JP, JSONOBJECT, JSONARRAY, KEYS, VALUES.
Криптографія та кодування
HASH (ХЭШ), TOBASE64, FROMBASE64, FROMJWT, FROMJWK.
Параметри
PARAMID, PARAMREPLACE, PARAMREMOVE.
Приклади
- Знижка 10% від суми:
{{= ОКРУГЛ(param.total * 0.9) }}. - Умова:
{{= ЕСЛИ(param.total > 1000, "опт", "роздріб") }}. - Збірка рядка:
{{= СЦЕПИТЬ("Замовлення №", ctx.order_id) }}. - Розмір списку:
{{= СЧЁТЗ(ctx.items) }}.
Тест формули
У редакторі дії «Обчислення» є кнопка перевірки: ви вводите вираз і зразкові дані, а платформа повертає результат і підсвічує помилки синтаксису — не виходячи з конструктора. Це зручно для налагодження довгих формул перед збереженням реакції.
Що далі
- Підстановки та формули — змінні
{{...}}, контекстctxі параметри. - Дії — дія «Обчислення» і таблиці рішень.
- Повідомлення та кнопки — формули в текстах і шаблонах кнопок.
- Колекції та дані — дані, над якими рахують формули.