跳至主要内容

Execute Script

Execute Script 是用於執行自定義 JavaScript 程式碼的 processor。

基本用法

執行 Execute Script 時,會在指定的 JavaScript 執行環境中執行設定的腳本程式碼。

配置參數

Name

顯示在畫布上的名稱,用於在工作流程中識別此 processor。

Description

用於補充此 processor 的用途,提升工作流程的可讀性。

Properties

Engine(必填)

選擇 JavaScript 執行引擎,目前只支援 ECMA5

Script(必填)

要執行的 JavaScript 程式碼。

資料存取方式

Execute Script 提供一個名為 payload 的全域物件,讓您可以存取工作流程中的所有資料,包括:

  • 當前工作流程的 payload 資料
  • 內建變數(如 prevMessageprevPayload 等)

讀取資料

假設您的工作流程中有以下資料:

{
"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 變數儲存錯誤資訊。

使用範例

基本腳本執行


從外部 API 取得資料後,使用 Execute Script 進行資料處理。

注意事項

  1. 目前僅支援 ES5 語法。

  2. 建議連接 Failure 分支,處理腳本執行錯誤的情況。