Công thức

Công thức là ngôn ngữ tính toán tích hợp của GetMyBot. Bạn có thể dùng nó để tính khoản giảm giá, tạo chuỗi, kiểm tra điều kiện, xử lý danh sách hoặc ngày tháng — ngay trong văn bản tin nhắn, trong hành động «Tính toán» và trong điều kiện của bảng quyết định. Cú pháp gần giống công thức bảng tính; tên hàm không phân biệt chữ hoa thường.

Công thức hoạt động ở đâu

  • Trong văn bản — cấu trúc {{= biểu thức}} tính toán biểu thức và chèn kết quả. Ví dụ: {{= ROUND(param.total * 0.9) }}.
  • Hành động «Tính toán» (compute) — tính biểu thức và lưu kết quả vào ctx (trường «Lưu vào ctx») và/hoặc vào tham số người đăng ký (trường «Lưu vào tham số»).
  • Bảng quyết định — trong hành động «Tính toán», thay vì một biểu thức, bạn có thể đặt danh sách quy tắc «khi → thì»: trả về giá trị của quy tắc đầu tiên có điều kiện đúng, nếu không thì trả về giá trị mặc định.

Cú pháp

  • Toán tử: số học + - * / %, so sánh == != < > <= >=, logic && || !, dấu ngoặc ( ).
  • Literal: số (42, 3.14), chuỗi trong ngoặc kép ("xin chào"), logic (true, false).
  • Tham chiếu dữ liệu: trong biểu thức có thể tham chiếu tham số và giá trị ngữ cảnh theo tên — param.total, ctx.items, recipient.email.
  • Gọi hàm: TÊN(đối_số1, đối_số2). Tên không phân biệt chữ hoa thường.

Hàm

Toán học

SUM, AVERAGE, MAX, MIN, MOD, POW, SQRT, PI, ROUND, CEIL, FLOOR, TRUNC, ABS, RANDBETWEEN.

Văn bản

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.

Danh sách

SORT, RSORT, UNIQUE, FILTER, FOREACH, REDUCE, INDEX, SLICE, COUNTA, COUNTUNIQUE, ARRAYADD, ARRAYREMOVE, ARRAYREPLACE, ARRAYFIND.

Ngày và giờ

TODAY, NOW, DATEADD, DATESUB, DATEDIF, DATEFORMAT, DATEVALUE, WEEKDAY.

JSON

TOJSON, FROMJSON, JSONPATH, JP, JSONOBJECT, JSONARRAY, KEYS, VALUES.

Mật mã và mã hóa

HASH, TOBASE64, FROMBASE64, FROMJWT, FROMJWK.

Tham số

PARAMID, PARAMREPLACE, PARAMREMOVE.

Ví dụ

  • Giảm giá 10% từ tổng tiền: {{= ROUND(param.total * 0.9) }}.
  • Điều kiện: {{= IF(param.total > 1000, "sỉ", "lẻ") }}.
  • Ghép chuỗi: {{= CONCAT("Đơn hàng №", ctx.order_id) }}.
  • Kích thước danh sách: {{= COUNTA(ctx.items) }}.

Kiểm tra công thức

Trong trình chỉnh sửa hành động «Tính toán» có nút kiểm tra: bạn nhập biểu thức và dữ liệu mẫu, nền tảng trả về kết quả và tô sáng lỗi cú pháp — ngay trong trình xây dựng. Tiện lợi để gỡ lỗi công thức dài trước khi lưu phản ứng.

Bước tiếp theo