REFERENCE
開発者リファレンス
認証、API、SDK、Flow Agent のプロセッサ、パラメータ解決のリファレンスです。
Execute Script
カスタムスクリプトを実行し、戻り値をフローに取り込みます。
Execute Script は独自の JavaScript を実行するプロセッサーです。
基本的な使い方
Execute Script は、指定した JavaScript 実行環境で設定されたスクリプトを実行します。
設定項目
ノードのプロパティパネルです。
Name
キャンバス上に表示される名前です。ワークフロー内でこのプロセッサーを識別するために使います。
Description
このプロセッサーの用途を補足し、ワークフローの読みやすさを高めます。
Properties
Engine(必須)
JavaScript の実行エンジンです。現在は
ECMA5のみ対応しています。Script(必須)
実行する JavaScript です。
データへのアクセス
Execute Script は
payloadという名前のグローバルオブジェクトを提供し、ワークフロー内のすべてのデータにアクセスできます。- 現在のワークフローの payload データ
prevMessage、prevPayloadなどの組み込み変数
データの読み取り
ワークフローに次のデータがあるとします。
{
"user": {
"name": "Alice",
"email": "zhang@example.com"
}
}スクリプトからはこう読みます。
// "Alice"
const userName = payload.user.name
// "zhang@example.com"
const userEmail = payload.user.emailデータの変更
payload を変更することもでき、その変更は後続のプロセッサーへ引き継がれます。
// 既存のデータを変更する
payload.user.name = "Bob"
// データを追加する
payload.processedAt = new Date().toISOString()
payload.status = "completed"組み込み変数へのアクセス
Asgard の組み込み変数は
payloadを通して参照できます。// ユーザーの最後のメッセージ
const lastMessage = payload.prevMessage
// 直前のプロセッサーの payload
const previousData = payload.prevPayload
// 入れ子になったデータ
const specificValue = payload.prevPayload.someProperty制限事項
Execute Script の中では Asgard の組み込み関数(
history()、vecToStr()など)を直接使えません。必要な場合は他のプロセッサーを利用してください。Workflow CRD での設定
- name: proc-transform
type: execute-script
labels:
display_name: 検索結果の整形
configs:
- name: engine
value: javascript
- name: script
expression: |-
(() => {
return rows.map(r => r.name).join("、");
})()実際の例
前のステップで取得した配列を 1 文にまとめます。
項目 値 Engine ECMA5Script 下記 var names = [];
for (var i = 0; i < low_stock.length; i++) {
names.push(low_stock[i].sku_name);
}
return names.join('、');constやmapではなくvarとforを使っているのは、エンジンが ECMA5 だからです。注意事項
- Engine の有効な値は
ECMA5の 1 つだけで、実体は goja です。ほかを入れるとUnknown script engineになります。 - ECMA5 なので ES6 以降の構文は使えません(アロー関数、
let/const、テンプレートリテラル)。
- Engine の有効な値は