Execute Script
Execute Script 是用於執行自定義 JavaScript 程式碼的 processor。
基本用法
執行 Execute Script 時,會在指定的 JavaScript 執行環境中執行設定的腳本程式碼。
配置參數
Name
顯示在畫布上的名稱,用於在工作流程中識別此 processor。
Description
用於補充此 processor 的用途,提升工作流程的可讀性。
Properties
Engine(必填)
選擇 JavaScript 執行引擎,目前只支援 ECMA5
。
Script(必填)
要執行的 JavaScript 程式碼。
資料存取方式
Execute Script 提供一個名為 payload
的全域物件,讓您可以存取工作流程中的所有資料,包括:
- 當前工作流程的 payload 資料
- 內建變數(如
prevMessage
、prevPayload
等)
讀取資料
假設您的工作流程中有以下資料:
{
"user": {
"name": "Alice",
"email": "zhang@example.com"
}
}
您可以在腳本中這樣存取:
const userName = payload.user.name; // "Alice"
const userEmail = payload.user.email; // "zhang@example.com"
修改資料
您也可以修改 payload 資料,這些變更會傳遞到後續的 processor:
// 修改現有資料
payload.user.name = "Bob";
// 新增資料
payload.processedAt = new Date().toISOString();
payload.status = "completed";
存取內建變數
您可以透過 payload
存取 Asgard 的內建變數:
// 取得使用者的最後一則訊息
const lastMessage = payload.prevMessage;
// 取得前一個 processor 的 payload
const previousData = payload.prevPayload;
// 存取巢狀資料
const specificValue = payload.prevPayload.someProperty;
使用限制
在 Execute Script 中,您無法直接使用 Asgard 的內建函數(如 history()
、vecToStr()
等)。如需使用這些功能,請考慮使用其他 processor 類型。
連接關係
Success
當腳本成功執行完成時,工作流程會從此連接點繼續執行。腳本執行的結果無法預測。
Failure
當腳本執行發生錯誤時,工作流程會從此連接點繼續執行,並產生 prevError
變數儲存錯誤資訊。