在此 Connected Learning Path 中,我們將建立一個 Chain,說明如何利用 Handlebars Connector 來解析 HTTP 回應中的資料,並將可在整個 Chain 中使用的變數模板化。
| 主要學習目標 | 手把手指令功能 |
| 次要學習目標 | Workiva Chains Connector |
| 必要條件 | 配置Handlebars Connector 連線。 配置Workiva Chains(自動化工作流程)連接器 連線。 |
| 支援範本 | CLP | 把手設定 |
步驟 1:建立鏈條
- 新增鏈條 。
- 命名 ChainCLP | Handlebars Configuration 。
- 建立 Chain 變數。為變數名稱和值輸入下列值:變數名稱: cv-AllStations:
- 變數名稱: cv-AllStations
- 變數值: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/station_information.json
- 保存 鏈條。
步驟 2:擷取 JSON 資料
此步驟使用 HTTP Connector 從網路位置以 JSON 格式擷取 Citibike 相關資料。
- 從HTTP 連接器 新增GET 命令至起始者 節點。
-
使用下列值組態該命令:
名稱 GET - 所有電台 使用者名稱 <leave blank> 密碼 <leave blank> CA 憑證 <leave blank> 憑證 <leave blank> 憑證私密金鑰 <leave blank> 顯示回應 已核取 URL cv-AllStations 鏈變數 查詢字串 <leave blank> 內容類型 應用程式/json 回覆 <leave blank> - 儲存指令。
步驟 3:迭代 JSON 資料
使用Handlebars - Render Text 模板 命令遍歷 CitiBike 車站資料,以提供合併每個單獨車站資料的格式設定。
- 新增Handlebars - Render Text Template 指令至 Chains(自動化工作流程)畫布。
- 將GET - 所有站台 命令連線至Handlebars - 渲染文字範本 命令。
- 雙擊該命令以編輯它。
- 命名命令名稱:RTT - 解析 JSON 回應 。
- 新增JSON 變數 並命名為citibikeData 。
- 對於Value 欄位,請使用Get - All Stations 命令中的Response 變數。
-
在模板欄位中填入以下值:
{{#each citibikeData.data.stations}} {{@index}} |{{name}} |{{capacity}} {{/each}}這將允許命令迭代 JSON 回應,使用
data.stations的根路徑提供每個資料鍵的文字值: ("name", "capacity" )。此外,它會為處理的每一行新增一個索引 值。
- 儲存指令。
步驟 4:運行時變數模板化
使用Handlebars - Render Text Template 命令來模板化變數。這將允許 Chains(自動化工作流程)渲染文字範本,根據其運行時間為 Chain 的不同分量提供上下文。
- 新增Handlebars - Render Text Template 指令至 Chains(自動化工作流程)畫布。
- 連接GET - 所有站台 命令至Handlebars - 渲染文字範本 命令。
- 雙擊該命令進行編輯,使用以下值: :
- 命名命令名稱:RTT - 變數範本.
- 為變數 部分新增並填寫下列資訊:
Value 欄位將從左側變數窗格的Runtime 下拉式中填入。- 變數 1
- 變數名稱:Chain-Env
- 值:<Chain.Enviroment> (Runtime Variable) (運行時變數值)
- 變數 2
- 變數名稱:Chain-Exec-Time
- 值:<Chain.ExecutionDateTime> (運行時間變數)
- 變數 3
- 變量名稱:System-RunTime-Month
- 值:<System.DateTime> (運行時間變數)
- 點選 <System.DateTime> 運行時變數來轉換變數。
- 在上選擇轉換 ,選擇解析日期/時間 ,然後點擊 "+" 。
- 在第一個值欄位中,選擇 "ISO Extended (Platform Standard)"。
- 在輸出日期格式 欄位中,輸入 "%m"。
- 在輸入日期時區欄位 ,選擇 "UTC (Etc/UTC)"。
- 在輸出日期時區欄位 ,選擇 "UTC (Etc/UTC)" 。
- 按一下「接受」(Accept)。
- 變數 4
- 變數名稱: System-RunTime-Year
- 值: <System.DateTime> (Runtime 變數)
- 按一下 <System.DateTime> 運行時變數來轉換變數
- 在選取轉換型 ,選取解析日期/時間 ,然後按下 "+" 。
- 在第一個值欄位中,選擇 "ISO Extended (Platform Standard)"。
- 在輸出日期格式欄位 ,輸入 "%Y"。
- 在輸入日期時區欄位 ,選擇 "UTC (Etc/UTC)"。
- 在輸出日期時區欄位 ,選擇 "UTC (Etc/UTC)" 。
- 按一下「接受」(Accept)。
- 變數 1
- 在範本欄位填滿下列值:
- 鏈結環境: {{鏈結-Env}}
- Chains (自動化工作流程) 執行日期: {{Chain-Exec-Time}}
- System Runtime Month-year: {{系統運行時間-月}}-{{系統運行時間-年}}
- 儲存指令。
步驟 5:工作區變數模板化 - 取得工作區
使用Handlebars - Render Text Template 來模板化 Workspace 的元件。這將允許 Chains(自動化工作流程)渲染文字範本,提供 Chains(自動化工作區)所處不同元件的上下文。
- 從 Workiva Chains(自動化工作流程)連接器新增Get Workspaces Command 到 Chains canvas。
- 連接GET - All Stations 命令至Get Workspaces 命令。
- 雙擊該命令編輯它,並確認連線是否正確。
- 儲存指令。
步驟 6:工作區變數模板化 - RTT - WorkspaceID
- 新增Handlebars - Render Text Template 指令至 Chains(自動化工作流程)畫布。
- 連線Get Workspaces Command 到Handlebars - Render Text Template Command。
- 雙擊該命令以編輯它。
- 將命令名稱命名為RTT - WorkspaceID.
-
在Template 欄位中輸入以下值:
{{#each 工作區}} {{#if (equal name "<(chain.workspace)>")}} {{id}}{{/if}}{{/each}}
- 從左側面板的運行時變數區中選擇<Chain.Workspace> 變數
- 在JSON 變數 欄位中,輸入下列資訊:
- 變數名稱: 工作區
- 變數值: :<工作區>
- 從左邊的變數面板展開Get Workspaces 變數,然後選擇Workspaces 。
- 儲存指令。
步驟 7:工作區變數模板化 - 取得環境
- 從 Workiva Chains 連接器新增Get Environments Command 到 Chains canvas。
- 連接 RTT - WorkspaceID 命令至Get Environments 命令。
- 雙擊該命令進行編輯,並在工作區 ID 欄位中輸入RTT-WorkspaceID 命令中的Rendered Text 變數。
- 儲存指令。
步驟 8:工作區變數模板化 - RTT - 環境 ID
- 新增Handlebars - Render Text Template 指令至 Chains(自動化工作流程)畫布。
- 連線Get Environments Command 到Handlebars - Render Text Template Command。
-
雙擊此命令,使用下列值編輯它:
- 命令名稱:RTT - EnvironmentID 。
-
在Template 欄位中輸入以下值:
{{#each environments}} {{#if (equal name "<(chain.environment)>")}} {{id}}{{/if}}{{/each}}<Chain.Environment>是Runtime 變數,可在左側面板中尋找。 - 在JSON 變數 欄位中,輸入下列資訊:
- 變數名稱: environments
- 變數值: <Environments>
此值可在Get Environments 命令下的左側變數面板中尋找。
- 儲存指令。
步驟 9:測試練習
- 發表鏈結。
- 按一下Execute ,然後選擇Run Chain 。
- 一旦 Chains(自動化工作流程)完成隨選即用:
確認所有節點都已成功執行,點選已執行的RTT - 解析 JSON 回應命令 ,並驗證第一行輸出如下: -
按一下已執行的RTT - 變數範本 命令,並驗證「記錄」索引標籤中的渲染文字是否正確。
附註: 這些值會根據 Chains(自動化工作流程)執行的環境和執行時間變更。
- 按一下RTT - Environment ID 節點,然後選擇Outputs 索引標籤。
- 確認已為已渲染的文字變數填入值 (同樣地,此結果會因您的環境而異)。
學習更多
若要進一步瞭解使用 Chains 的資料轉換,請查看Connected Learning Paths - Transformation Introduction