公式
公式是 GetMyBot 內建的計算語言。您可以用它計算折扣金額、組合字串、驗證條件、轉換清單或日期——直接在訊息文字中、在**「計算」動作裡,以及在決策表的條件中使用。語法與試算表公式相近,並支援俄文函式名稱**。
公式的使用場景
- 在文字中 — 使用
{{= 運算式}}語法計算運算式並插入結果。例如:{{= ROUND(param.total * 0.9) }}。 - 「計算」動作(
compute)— 計算運算式並將結果儲存至ctx(「儲存至 ctx」欄位)及/或訂閱者參數(「儲存至參數」欄位)。 - 決策表 — 在「計算」動作中,可以用規則清單「當 → 則」取代單一運算式:返回第一個條件為真的規則的值,否則返回預設值。
語法
- 運算子:算術
+ - * / %、比較== != < > <= >=、邏輯&& || !、括號( )。 - 字面量:數字(
42、3.14)、字串(使用引號,如"hello")、布林值(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%:
{{= ROUND(param.total * 0.9) }}。 - 條件判斷:
{{= IF(param.total > 1000, "wholesale", "retail") }}。 - 字串組合:
{{= CONCAT("Order #", ctx.order_id) }}。 - 清單長度:
{{= COUNTA(ctx.items) }}。
公式測試器
在**「計算」**動作的編輯器中,有一個驗證按鈕:您可以輸入運算式和範例資料,平台會返回結果並醒目標示語法錯誤——無需離開建構器。這對於在儲存反應前偵錯複雜公式非常方便。