跳到內容

情境中的變數與資料

一個情境有三種讓資料流動的機制。它們互為補充,而知道該挑哪一種,可以省下大量 沒必要的接線。

這是主要的機制:一個方塊產出一個值,這個值在連結上前進,可能被 選擇器重新塑形,然後抵達下一個方塊的 輸入。

它既明確又好讀:資料流就是畫面上的那張圖。

凡是屬於局部的東西都用它 — 例如某個呼叫的結果被下一個呼叫消費。

一個具名的空間,專屬於這一次執行:

  • 設定變數會寫入一個值;
  • 取得變數會把它讀回來;
  • 型別為 variable 的值會在任何欄位中即時讀取它;
  • {{name}} 會在樣板中讀取它(Transform templateMap);
  • vars 物件會在程式碼動作中讀取它;
  • 新增至清單從清單移除可以直接寫回來源變數。

執行變數在執行期間會蓋掉環境:一個使用 {{token}} 的請求,拿到的會是情境 放上去的權杖,而不是環境裡的那一個。

凡是對整次執行都是全域的東西就用它:一個權杖、一個關聯識別碼、一個計數器 — 而不是拉一條連結橫穿整張圖。

  • Input / Param 方塊宣告一個或多個具名參數,每個都有自己的型別。它只發出 一個物件 { name: value, … }

    這些值的來源依序是:啟動時(介面或 MCP)、命令列(--param name=value), 或在情境走到這個方塊卻沒有可用值時發出的互動詢問

  • Output / Return 方塊會對呼叫方公開一個具名的結果。被執行情境動作呼叫 的情境,會把它的輸出呈現在呼叫方的 output:<name> 連接埠上。

這正是能夠組合的原因:一個「登入」情境負責回傳權杖,其他情境重複使用它。

請求動作有一個 env 連接埠:把一個環境接上去(型別為 environment 的值,或是 一個環境名稱),就會在那個環境中執行該呼叫。

這就是讓同一個情境先對 staging 再對 production 執行、而完全不必複製任何東西 的辦法 — 請把環境當成情境的參數傳進來。

所有具型別的值在介面中與無視窗執行時的解析方式完全相同:自訂清單、列舉、 環境預覽都一樣。在介面裡能跑的情境,在 CI 裡也能跑。

有歧義的環境名稱(兩個同名環境)會產生一個明確的錯誤:這時請改傳識別碼。

--param 收到的是文字;Restorm 會依參數宣告的型別轉換它:

宣告的型別您要傳的東西
數值--param Seuil=42
Boolean--param Actif=true(也接受 1yeson
Date math一個日期,或一個 epoch 時間戳
清單一段 JSON:--param Ids='[1,2,3]'
列舉該值,並會對照允許的集合進行驗證
自訂清單標籤,會被轉換成值(RougeFF0000
環境一個環境名稱或識別碼
其餘型別原始字串

無法完成的轉換會讓啟動失敗並給出清楚的訊息,而不是帶著一個錯誤的值繼續 執行。