Formüller
Formüller, GetMyBot'un yerleşik hesaplama dilidir. İndirim tutarını hesaplamak, metin oluşturmak, koşul denetlemek, listeyi veya tarihi dönüştürmek için — doğrudan mesaj metninde, «Hesaplama» eyleminde ve karar tablosu koşullarında kullanılır. Sözdizimi elektronik tablo formüllerine yakındır ve Rusça fonksiyon adı takma adlarını destekler.
Formüller Nerede Çalışır
- Metinde —
{{= ifade}}yapısı ifadeyi hesaplar ve sonucu yerleştirir. Örneğin{{= ROUND(param.total * 0.9) }}. - «Hesaplama» eylemi (
compute) — ifadeyi hesaplar ve sonucuctx'e («ctx'e kaydet» alanı) ve/veya abone parametresine («parametreye kaydet» alanı) kaydeder. - Karar tablosu — «Hesaplama» eyleminde tek ifade yerine «koşul → değer» kuralları listesi tanımlanabilir; koşulu doğru olan ilk kuralın değeri döndürülür, yoksa varsayılan değer.
Sözdizimi
- Operatörler: aritmetik
+ - * / %, karşılaştırma== != < > <= >=, mantık&& || !, parantezler( ). - Değişmezler: sayılar (
42,3.14), tırnak içinde diziler ("merhaba"), mantıksal (true,false). - Veri referansları: ifade içinde parametrelere ve bağlam değerlerine ada göre erişilebilir —
param.total,ctx.items,recipient.email. - Fonksiyon çağrısı:
NAME(arg1, arg2). İsimler büyük/küçük harf duyarsızdır ve Rusça takma adları anlar.
Fonksiyonlar
İsimler kanonik (İngilizce) biçimde verilmiştir. Büyük/küçük harf önemli değildir.
Matematik
SUM, AVERAGE, MAX, MIN, MOD, POW, SQRT, PI, ROUND, CEIL, FLOOR, TRUNC, ABS, RANDBETWEEN.
Metin
LEN, LEFT, RIGHT, MID, LOWER, UPPER, UPPERFIRST, REPEAT, CONCAT, SUBSTITUTE, FIND, SEARCH, FIELD, TRIM, LTRIM, RTRIM, PADLEFT, PADRIGHT, SPLIT, JOIN, STARTSWITH, ENDSWITH, CONTAINS, NL.
Mantık
IF, AND, OR, NOT, EMPTY, ISNUMBER, COALESCE.
Listeler
SORT, RSORT, UNIQUE, FILTER, FOREACH, REDUCE, INDEX, SLICE, COUNTA, COUNTUNIQUE, ARRAYADD, ARRAYREMOVE, ARRAYREPLACE, ARRAYFIND.
Tarih ve Saat
TODAY, NOW, DATEADD, DATESUB, DATEDIF, DATEFORMAT, DATEVALUE, WEEKDAY.
JSON
TOJSON, FROMJSON, JSONPATH, JP, JSONOBJECT, JSONARRAY, KEYS, VALUES.
Kriptografi ve Kodlama
HASH, TOBASE64, FROMBASE64, FROMJWT, FROMJWK.
Parametreler
PARAMID, PARAMREPLACE, PARAMREMOVE.
Örnekler
- Tutarın %10 indirimi:
{{= ROUND(param.total * 0.9) }}. - Koşul:
{{= IF(param.total > 1000, "toptan", "perakende") }}. - Dizi oluşturma:
{{= CONCAT("Siparis No:", ctx.order_id) }}. - Liste boyutu:
{{= COUNTA(ctx.items) }}.
Formül Testi
«Hesaplama» eylemi düzenleyicisinde bir doğrulama düğmesi bulunur: ifadeyi ve örnek verileri girin, platform sonucu döndürür ve sözdizimi hatalarını vurgular — yapılandırıcıdan çıkmadan. Bu, uzun formülleri tepkiyi kaydetmeden önce hata ayıklamak için kullanışlıdır.
Sonraki Adımlar
- Yerleştirmeler ve Formüller —
{{...}}değişkenleri,ctxbağlamı ve parametreler. - Eylemler — «Hesaplama» eylemi ve karar tabloları.
- Mesajlar ve Düğmeler — metinlerde ve düğme şablonlarında formüller.
- Koleksiyonlar ve Veriler — formüllerin üzerinde hesaplama yaptığı veriler.