跳至主要内容

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"
}
}

您可以在腳本中這樣存取:

// "Alice"
const userName = payload.user.name

// "zhang@example.com"
const userEmail = payload.user.email

修改資料

您也可以修改 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 分支,處理腳本執行錯誤的情況。