跳至主要内容

Update Context

Update Context 是用於更新工作流程中變數內容的 processor。

基本用法

執行 Update Context 時,會根據設定的配置新增或修改變數值,這些變數可以在後續 processor 中使用。其運作方式類似程式語言中的變數賦值操作。

配置參數

Name

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

Description

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

Properties

點擊 (+) 新增一個配置項目。

配置項目包含兩個部分:

  • 變數名稱:第一個輸入框設定此 Context 變數的名稱
  • 賦值方式:選擇如何賦予變數值

可用的賦值方式:

  • Literal:直接輸入固定值
  • Expression:使用 JavaScript 表達式計算值
  • Template:使用模板語法計算值

連接關係

Success

當成功更新所有指定的 context 欄位後,工作流程會從此連接點繼續執行下一個 processor。所有動態配置的配置名稱都會成為新的變數名稱。

使用範例

1. 單純變數賦值

單一變數的宣告或更新,做法都是相同的。以下示範變數 historyStart 的賦值方式。

1-1. Literal

針對單一變數且無需程式邏輯計算時,這是最簡單的用法。直接在輸入框填入需要的數值即可。

Literal 模式設定

1-2. Expression

當需要進行複雜運算時,可以選擇 Expression 模式。以下示範簡單的固定值賦值:

(() => {
return 0;
})()
Expression 模式設定

2. 物件類型的變數賦值

物件類型的變數有複雜的資料結構,無法直接使用 Literal 方式賦值,必須使用 Expression 模式。

2-1. 物件的初始化

如果物件尚未存在,必須先進行初始化。對不存在的變數進行操作會導致錯誤。

(() => {
return {
name: "Test",
status: "idle",
sessionStart: null,
};
})()
物件初始化設定

2-2. 物件的更新

當物件已經初始化後,可以只更新特定的屬性值,其他屬性不會被覆蓋。以下示範更新 context 物件的 statussessionStart 值:

(() => {
// 更新 status 值
context.status = "pending";

// 更新為目前的時間戳記
const currentTime = Date.now();
context.sessionStart = currentTime;

// 回傳更新後的 context 物件
return context;
})()
物件更新設定

注意事項

  1. 變數覆蓋:如果變數名稱已存在,新值會覆蓋原有值。

  2. 變數作用域:更新的變數在整個工作流程中都可以使用,直到被再次更新。

  3. 物件初始化:如果變數是物件類型且尚未存在,必須先進行初始化,否則後續使用會導致錯誤。