สูตร

สูตรคือภาษาการคำนวณในตัวของ GetMyBot สามารถคำนวณจำนวนส่วนลด สร้างสตริง ตรวจสอบเงื่อนไข แปลงรายการหรือวันที่ — โดยตรงในข้อความ ในการดำเนินการ «การคำนวณ» และในเงื่อนไขของตาราง decision syntax ใกล้เคียงกับสูตร spreadsheet และรองรับ ชื่อฟังก์ชันแบบ case-insensitive

ที่ไหนที่สูตรทำงาน

  • ในข้อความ — โครงสร้าง {{= expression}} คำนวณ expression และแทรกผลลัพธ์ เช่น {{= ROUND(param.total * 0.9) }}
  • การดำเนินการ «การคำนวณ» (compute) — คำนวณ expression และบันทึกผลลัพธ์ไปยัง ctx (ฟิลด์ «บันทึกใน ctx») และ/หรือพารามิเตอร์ผู้ติดตาม (ฟิลด์ «บันทึกในพารามิเตอร์»)
  • ตาราง decision — ในการดำเนินการ «การคำนวณ» แทนที่จะเป็น expression เดียว สามารถกำหนดรายการกฎ «เมื่อ → แล้ว»: คืนค่าของกฎแรกที่เงื่อนไขเป็นจริง ไม่เช่นนั้นคืนค่าเริ่มต้น

Syntax

  • ตัวดำเนินการ: เลขคณิต + - * / %, การเปรียบเทียบ == != < > <= >=, logic && || !, วงเล็บ ( )
  • Literal: ตัวเลข (42, 3.14), สตริงในเครื่องหมายคำพูด ("hello"), boolean (true, false)
  • การอ้างอิงข้อมูล: ภายใน expression สามารถอ้างอิงพารามิเตอร์และค่า context ตามชื่อ — param.total, ctx.items, recipient.email
  • การเรียกฟังก์ชัน: NAME(argument1, argument2) ชื่อ ไม่คำนึงถึง case

ฟังก์ชัน

ชื่อระบุในรูปแบบ English canonical ไม่สนใจ case

คณิตศาสตร์

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

Logic

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) }}

ทดสอบสูตร

ใน editor ของการดำเนินการ «การคำนวณ» มีปุ่มตรวจสอบ: ป้อน expression และข้อมูลตัวอย่าง แล้ว platform จะคืนผลลัพธ์และเน้น syntax error — โดยไม่ต้องออกจาก constructor สะดวกสำหรับ debug สูตรยาวก่อนบันทึกรีแอคชัน

ขั้นตอนถัดไป