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("、");
})()
接続関係
Success
スクリプトが完了すると、この接続点から次へ進みます。スクリプトの実行結果は事前には予測できません。
Failure
スクリプトでエラーが起きた場合、この接続点から続き、prevError 変数にエラー情報が入ります。
実際の例
前のステップで取得した配列を 1 文にまとめます。
| 項目 | 値 |
|---|---|
| Engine | ECMA5 |
| Script | 下記 |
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、テンプレートリテラル)。