跳轉到

變數 (Variable)

設計工作流程 (Workflow) 時,常會有一些固定、又被很多步驟或多個流程共用的值——API 網址、逾時秒數、各種門檻、狀態代碼對照表…。與其把這些值寫死 (hardcode) 在每一步裡(之後要改就得逐一翻找),不如抽出來存成一個變數 (Variable),當作工作流程的外部常數:集中存一份,所有流程引用同一份,要調整時只改一個地方。

變數本身是一種資源——你存在平台上的一份 JSON。把它想成一座倉庫:值先存進去,哪個流程要用就去取。

這頁講的是「在流程裡怎麼把變數當外部常數用」:它跟其他資料來源怎麼分、什麼東西適合抽成變數、以及怎麼引用。至於怎麼建立與管理這個資源(操作步驟、欄位、截圖),請見 變數資源指南

跟另外兩種資料來源怎麼分

工作流程裡的資料常見有三個來源,很容易搞混。分辨的重點是「這份資料是誰的、存多久」:

來源 是什麼 存活範圍 引用語法
狀態 (State) 這次執行當下流動的資料(Workflow 輸入、前一步的產出) 只在這一次執行 JSONPath.$
變數 (Variable) 你預先存好、跨流程共用的設定 長期保留,跨執行、跨流程 外部記憶體語法.%typevariable
外部記憶體 (External Memory) 太大、塞不進狀態的資料,寄放在狀態外 跟著該次執行(由平台管理) 外部記憶體語法.%typeexternal_memory

變數和外部記憶體都用 .% 取回,但不是同一件事

兩者剛好共用同一套 .% 取回語法,所以常被混為一談。差別在 .% 物件裡的 type

  • type: "variable" → 從你存的變數讀(倉庫裡的常備設定)。
  • type: "external_memory" → 從某步驟移到狀態外的大資料讀(置物櫃裡的暫存)。

一句話:變數是「你主動存的設定」,外部記憶體是「系統幫你暫放的大資料」。

哪些東西適合抽成外部常數

判準是「固定、但偶爾要調整,而且不只一個地方會用到」:

  • API 網址、逾時秒數、重試次數等設定常數。
  • 業務規則門檻(字數上限、自動核可分數…)。
  • 代碼對照表(狀態碼對應中文說明)。
  • 共用的提示詞 (Prompt) 或信件樣板文字。
  • 功能開關 (feature flag)。

把這些抽成變數後,改一個地方、所有引用它的流程一起生效,不用逐一進每個流程改。

怎麼在流程裡取用變數

在 Action 的輸入用 .% 語法,把 type 設成 variable,指定變數的 id 與要取的 jsonpath

{
  "api_settings.%": {
    "type": "variable",
    "id": "var-api-config",
    "jsonpath": "$"
  }
}

id 是那筆變數的識別碼(到「資源 (Resources) → 變數 (Variable)」點進詳細頁可複製),jsonpath 指要取變數裡的哪一段($ 代表整份)。逐欄位的詳細說明見 變數資源指南的「如何在工作流程中引用變數」;動態 id.$、與 .$ 混用、常見錯誤等完整語法見 外部記憶體語法

.% 目前沒有引導式 UI

外部記憶體語法 一樣,.% 物件目前在介面上沒有像 .$ 那樣的引導式表單,需要在工作流程編輯器的「程式碼」分頁(ASL 編輯器)手動寫入。不熟悉格式時,建議請工程同事協助。

相關主題