フォーミュラ

フォーミュラは GetMyBot に組み込まれた計算言語です。割引額の計算、文字列の組み立て、条件の確認、リストや日付の変換など — メッセージテキスト内、**「計算」**アクション内、意思決定テーブルの条件内で直接実行できます。構文はスプレッドシートのフォーミュラに近く、ロシア語の関数名エイリアスをサポートしています。

フォーミュラが使える場所

  • テキスト内{{= 式}} 構文で式を評価して結果を挿入します。例: {{= ROUND(param.total * 0.9) }}
  • 「計算」アクションcompute)— 式を評価して結果を ctx(「ctx に保存」フィールド)や購読者パラメータ(「パラメータに保存」フィールド)に保存します。
  • 意思決定テーブル — 「計算」アクションでは1つの式の代わりに「条件 → 結果」のルールリストを設定できます。条件が真になった最初のルールの値が返され、一致がなければデフォルト値が返されます。

構文

  • 演算子: 算術 + - * / %、比較 == != < > <= >=、論理 && || !、括弧 ( )
  • リテラル: 数値(423.14)、文字列(引用符付き "hello")、論理値(truefalse)。
  • データ参照: 式内でパラメータやコンテキスト値を名前で参照できます — param.totalctx.itemsrecipient.email
  • 関数呼び出し: 名前(引数1, 引数2)。名前は大文字小文字を区別しないため、ロシア語エイリアスも使用できます。

関数

名前は正規(英語)形式で記載されています。各関数はロシア語エイリアスでも呼び出せます(大文字小文字不問)。

数学

SUMAVERAGEMAXMINMODPOWSQRTPIROUNDCEILFLOORTRUNCABSRANDBETWEEN

テキスト

LENLEFTRIGHTMIDLOWERUPPERUPPERFIRSTREPEATCONCATSUBSTITUTEFINDSEARCHFIELDTRIMLTRIMRTRIMPADLEFTPADRIGHTSPLITJOINSTARTSWITHENDSWITHCONTAINSNL

論理

IFANDORNOTEMPTYISNUMBERCOALESCE

リスト

SORTRSORTUNIQUEFILTERFOREACHREDUCEINDEXSLICECOUNTACOUNTUNIQUEARRAYADDARRAYREMOVEARRAYREPLACEARRAYFIND

日付と時刻

TODAYNOWDATEADDDATESUBDATEDIFDATEFORMATDATEVALUEWEEKDAY

JSON

TOJSONFROMJSONJSONPATHJPJSONOBJECTJSONARRAYKEYSVALUES

暗号化とエンコード

HASHTOBASE64FROMBASE64FROMJWTFROMJWK

パラメータ

PARAMIDPARAMREPLACEPARAMREMOVE

  • 合計から10%割引: {{= ROUND(param.total * 0.9) }}
  • 条件: {{= IF(param.total > 1000, "卸売", "小売") }}
  • 文字列の組み立て: {{= CONCAT("注文番号", ctx.order_id) }}
  • リストのサイズ: {{= COUNTA(ctx.items) }}

フォーミュラのテスト

**「計算」**アクションのエディターにはテストボタンがあります: 式とサンプルデータを入力すると、プラットフォームが結果を返して構文エラーをハイライト表示します — コンストラクターを離れることなく確認できます。保存前に長いフォーミュラをデバッグするのに便利です。

次のステップ