變數
變數是整合元素,可保存資料並在整合作業的任務、觸發條件和邊緣之間傳輸資料。
- 變數可在設計階段靜態定義,或在執行階段動態傳遞至整合服務。
- 變數可以參照整合中的其他變數。
- 變數可供所有工作全域存取,或僅供特定工作本機存取。
變數
在 Application Integration 中,變數會在不同位置設定或初始化:
- 設定變數:在設計階段設定,用於儲存整合的設定資料。舉例來說,您可以使用這項功能設定通知的目標電子郵件地址,而不是在整合中硬式編碼該電子郵件地址。
- 系統變數:系統會自動產生,用於儲存整合的設定資料。舉例來說,
ExecutionId變數會儲存整合的執行 ID。 - 整合變數:在整合項目中明確設定,用於追蹤整個整合執行過程中的資料。舉例來說,您可以設定變數來儲存工作結果,並在後續工作中加以使用。
- 工作變數:執行特定工作時會隱含設定,用於儲存工作輸出內容。舉例來說,「呼叫 REST 端點」工作會設定
responseBody變數,用來儲存 REST 端點的回應內容。工作變數也稱為自動產生的變數。系統自動產生的變數會採用特殊命名慣例,也就是在變數名稱前後加上反引號。
整合變數
整合變數 (包括輸入和輸出變數) 與程式設計語言中使用的變數類似。在整合作業執行期間,可以讀取及寫入變數中的資料。
整合變數可用於下列用途:
- 做為整合作業的輸入內容,也稱為輸入變數。
- 以整合作業的輸出內容形式傳回,也稱為「輸出變數」。
- 用於在執行整合作業期間保留暫時狀態。
將變數標示為輸入變數時,表示觸發整合時,系統會要求提供變數值。整合作業執行期間,可以修改輸入變數的值。
將變數標示為輸出變數時,表示變數的最終值應做為整合回應的一部分傳回。
變數的值不一定要在整合中靜態定義。您可以使用觸發條件,將變數值傳遞至整合服務。不過,如果變數是在整合中靜態定義,且相同變數是透過觸發程序動態提供,動態值指派作業就會覆寫靜態指派作業。
支援的資料類型
整合變數支援下列資料類型:
- 字串和字串陣列
- 整數和整數陣列
- Double 和 Double 陣列
- 布林值和布林值陣列
- JSON
工作變數
工作變數是工作的預先定義自動產生變數。如果工作有輸出內容,所有這類輸出內容都會顯示在工作變數中。您無法刪除或編輯工作變數。 工作變數也稱為自動產生的變數。
工作變數的專屬名稱遵循特殊的命名慣例:變數名稱會以反引號括住,並包含工作 ID。格式為 `<Task ID>_<Variable Name>`。
舉例來說,「呼叫 REST 端點」工作會輸出回應內容。如果這項工作的 ID 為 Task_5,則回應主體的專屬工作變數名稱為 `Task_5_responseBody`。
在「變數」窗格中,工作變數可能會以常見的輸出名稱 (例如 responseBody) 列出,且不含工作 ID 或反引號。如要查看參照時所需的完整專屬變數名稱,請按一下窗格中的變數,並在右側面板中查看詳細資料。
設定變數
設定變數可讓您將整合作業的設定外部化。您可以使用設定變數,根據開發環境 (例如 QA、測試或正式環境),設定整合的各個層面,例如連接器詳細資料、驗證詳細資料或網址端點。將整合項目上傳至新環境前,您不必手動更新整合項目。發布整合時,您可以使用 Application Integration 輸入設定變數的值。
如要查看及編輯整合中定義的設定變數,請按一下「變數」窗格中的「變數_新增」 整合設定變數。如要瞭解如何建立及使用設定變數,請參閱「為整合項目建構 CICD」教學課程。
系統變數
建立整合項目時,系統會自動產生系統變數。您可以在整合工作中使用這些變數,並處理錯誤。整合項目包含下列系統產生的變數:
ErrorInfo:執行失敗時,您可以使用ErrorInfo變數存取錯誤詳細資料:{ "ErrorInfo": { "message": String, "code": Number } }您可以建立名為
ErrorMessage的整合變數,存取錯誤訊息。不過,我們建議您使用系統產生的ErrorInfo.message變數存取錯誤訊息。ExecutionMode:根據觸發條件的執行模式。有效值為 SYNC 和 ASYNC。ExecutionId:整合的執行 ID。IntegrationName:整合的名稱。Region:整合的區域。ProjectId:包含整合項目的專案 ID。
查看變數
您可以使用「變數」窗格,在整合服務中建立、編輯、查看、複製及刪除變數。「Variables」窗格也會顯示整合中的變數參照總數。
如要查看「變數」窗格,請按一下設計工具導覽列中的「切換面板」。
下圖顯示「變數」窗格的範例版面配置:
查看及編輯設定變數
如要查看整合中定義的設定變數,請在「變數」窗格中,按一下 variable_add 「整合設定變數」。系統隨即會顯示「設定變數」窗格,其中會列出整合中定義的所有設定變數。只要按一下「Value」欄位,即可編輯設定變數的值。
下圖顯示「設定變數」窗格的版面配置範例:
建立變數
如要建立變數,請執行下列步驟:
- 在整合服務編輯器的導覽列中,按一下「切換面板」,開啟「變數」窗格。
- 點選「+建立」。
- 在「建立變數」窗格中執行下列操作:
- 名稱:輸入變數名稱。
- 變數類型:選擇變數類型。
- 資料類型:選擇變數的資料類型。您可以透過變數名稱旁的圖示,識別變數的資料類型。
資料類型 範例
字串
Alex
整數
30
Double
30.5
布林值
true
JSON
{ "employee":{"name":"Alex", "age":30, "city":"Mountain View"} }
字串陣列
Alex, Kai, Raha
整數陣列
30, 25, 22
雙陣列
30.5, 25.34, 22.134
布林陣列
true, false, false如要瞭解支援的資料類型,請參閱「支援的資料類型」。
- 預設值:輸入變數的預設值。此為選填欄位。
- 結構定義:選取變數的 JSON 結構定義。
- 從 JSON 酬載示例推斷:從 JSON 酬載示例產生 JSON 結構定義。系統會在產生結構定義後捨棄酬載示例,只儲存產生的結構定義。
- 輸入 JSON 結構定義:手動輸入整個 JSON 結構定義。
- 從預設值推斷:使用提供的預設值產生 JSON 結構定義。
- 無:沒有 JSON 結構定義。
- 在記錄檔中遮蓋變數 (預覽版):選取這個選項,即可在整合執行記錄檔中遮蓋變數。如要為變數啟用遮蓋功能,您必須為整合和地區啟用遮蓋變數。如要瞭解如何為整合服務和區域啟用遮蓋功能,請參閱「編輯整合服務」和「編輯區域」。
如要瞭解如何遮蓋資料,請參閱「遮蓋記錄中的機密資料」。
資料類型 說明 無 整合中的本機變數。 整合的設定變數 整合中的設定變數。 整合作業的輸入內容 執行期間,系統會將變數做為輸入內容提供給執行的觸發條件。 整合輸出內容 執行結束時,變數的最終值應輸出至整合的呼叫端。 整合的輸入和輸出 執行時,系統會將變數做為輸入內容提供給執行的觸發程序,而最終值會輸出至整合的呼叫端。 - 點選「建立」。
整合中的變數運作方式
執行整合作業時,系統會將執行階段資料當做變數傳遞,這些變數是為整合作業或工作宣告。執行作業開始後,輸入資料會轉換為名為「事件」的記憶體內物件。
建立 Event 物件後,系統會使用整合定義建構工作記憶體內圖表。 系統會根據您的設定,將傳入的變數值傳遞至工作。整合流程執行時,工作會讀取資料並寫回 Event 物件,供後續工作使用,或做為整合流程的輸出資料。
下表摘要說明不同類型的變數及其行為:
| 變數類型 | 說明 | 行為 | 範例 |
|---|---|---|---|
| 設定變數 | 儲存整合的設定資料。 | 在設計時設定,發布整合時可編輯。 | 用於接收通知的電子郵件地址。 |
| 系統變數 | 由系統自動產生。 | 唯讀,無法編輯。 | ExecutionId 變數。 |
| 整合變數 | 追蹤整個整合執行過程中的資料。 | 在整合中明確設定,且可在整合執行期間編輯。 | 用於儲存工作結果的變數。 |
| 工作變數 | 儲存特定工作的輸出內容。 | 執行工作時隱含設定,無法編輯。 | 「呼叫 REST 端點」工作的 responseBody 變數。 |
變數參照
整合中的工作、觸發條件和邊緣會使用變數參照讀取及寫入變數。
變數參照的格式為 $paramKey$,其中 paramKey 是變數的名稱。
$isNameUnique$ = true AND $numAccounts$ >= 1
例如:
- 邊緣條件可能如下所示:
$isNameUnique$ = true AND $numAccounts$ >= 1
在這個範例中,
isNameUnique是 boolean 資料類型的變數,而numAccounts則是 integer 資料類型的參數。 - 您可以在應用程式整合工作流程中,為新使用者註冊建立電子郵件通知。假設您有兩個變數:
$userName$:包含新使用者的名稱 (例如 「Alex」)。$orderID$:包含專屬訂單 ID (例如 「ORD-12345」)。
電子郵件內文範本可能如下:
Hello $userName$, thank you for your order! Your order ID is $orderID$.
傳送這則訊息時,系統會將變數參照替換為對應的值。 最終訊息如下:
Hello Alex, thank you for your order! Your order ID is ORD-12345.
您可以在下列位置使用變數參照:
如要參照自動產生或工作變數,必須使用完整且不重複的名稱,包括美元符號分隔符號內的倒單引號和工作 ID。舉例來說,如要參照 ID 為 Task_5 的「呼叫 REST 端點」工作輸出內容 responseBody,您必須使用 $`Task_5_responseBody`$。
配額與限制
如要瞭解配額和限制,請參閱「配額與限制」。
後續步驟
- 瞭解如何為整合項目建構 CI/CD。
- 瞭解如何遮蓋記錄中的機密資料。
- 新增並設定「資料對應」工作