背景
使用資料管理套件協調報告流程時,我們經常會遇到複雜的工作流程情境。例如,應用程式可能需要執行
- 單一工作流程多次使用不同的輸入
- 多個不同的工作流程
- 多個並發的工作流程,每個流程都有特定的輸入
- 需要特定參數的來源系統整合工作流程,例如日期、檔案名稱或規則名稱
為了有效地自動化和管理這些複雜的工作流程需求,Control Sheet 的概念被證明是無價的。控制表可作為集中管理工具,預先定義每個工作流程執行的輸入。利用控制表,用戶可以指定每個工作流程應在哪些參數和條件下運行,從而促進一個無縫、自動化的流程,利用適當的輸入運行所有必要的工作流程,而無需在每個步驟中進行人工干預。
透過建立和利用控制表,使用者可以
- 定義每次執行時傳給鏈的輸入值
- 定義旗標,決定鏈是否應該執行某些操作
- 執行連鎖或執行規則時,將值(例如查詢參數、規則名稱或日期篩選器)傳送至系統工作流程。
- 執行滾轉作業
- 管理 Workiva 中工件的ID's
- 記錄工作流程的執行狀態
本文將引導使用者完成建立簡單控制表的程序。此工作表將允許使用者以不同的輸入集執行相同的工作流程。
必要條件
步驟 1:設定控制表
- 在 Workiva 平台內建立試算表
- 將所有權權限指派給與OAuth2 授權相關聯的使用者。
- 重新命名試算表和工作表為
- 控制試算表
- 控制表
步驟 2:為控制表設定標頭(鍵
為 Chain 工作流程將處理的每個值建立標頭。在此示例中,設定以下標頭:
- Active_Flag:決定是否要處理這一行
- 檔案名稱:要處理的檔案名稱
- Table_ID:匯入檔案的 Wdata 資料表的 ID
步驟 3:為控制表的標頭指定值
- 在本範例中,每個 Key/Value 對都定義了三個值。因此,當讀取每一行時,將輸入以下資料:
true, file_x.csv, df2a1988929e4358858306956685e162
true, file_y.csv, df2a1988929e4358858306956685e162
true, file_z.csv, df2a1988929e4358858306956685e162
步驟 4:建立鏈以讀取控制表資料
為了從試算表擷取控制工作表資料,必須建立一個 Chain 來讀取試算表。
- 導覽至 Chain 模組,並建立新 Chain
- 導覽到 Chain 設定,並標示您的新 ChainGet Control Sheet Data
- 新增兩個 Chain變數 :
- cv-SpreadsheetID
- cv-SheetName
- 使用控制工作表中相應的SpreadsheetID 和 SheetName 值填充每個變量。
步驟 5:取得工作表資料
要在控制工作表中使用資料,您必須使用Get Sheet Data Command。該命令讀取電子表格中工作表的內容,並產生.csv 輸出。
- 將 WorkivaGet Sheet Data 指令拖放到畫布的 START 區段。
- 設定指令
- 重新命名為Get Control Sheet Data
- 為試算表ID欄位使用鏈變數cv-SpreadsheetID
- 使用連鎖變數cv-SheetName 作為工作表 ID/Name 欄位
- 輸入A1: 作為區域
- 將值樣式和修訂值保留為已計算 和-1
- 按一下「儲存」。
步驟 6:將工作表資料轉換為 JSON
成功擷取 .csv 格式的控制工作表資料後,下一步就是將其轉換為 JSON。此轉換可確保標頭和欄位值正確地重新格式化為 JSONKey-Value 結構。此格式對於接下來的步驟至關重要。
- 將CSV 至 JSON 指令拖曳到畫布上
- 將Get Control Sheet Data 指令連結至CSV to JSON 指令
- 編輯CSV 至 JSON 指令
- 在輸入檔案 欄位中,使用Get Control Sheet Data 下拉選項中的Data 輸出。
- 將 Delimiter 欄位保留為 Comma (,)
- 按一下「儲存」。
步驟 7:迭代 JSON 資料
既然控制表的資料是 JSON 格式,就可以使用命令群組遍歷 控制表內的每一行資料。
- 將指令群組 新增至 canvas
- 將CSV 至 JSON 指令連接至在 指令群組的一部分
- 編輯命令群組並命名為 JSON Iterator
- 按一下基本資訊標籤右邊的迭代符號
- 啟用迭代器
- 將 Select Modifier Type 保留為List
- 對於Iterations 區段,從CSV to JSON 指令的下拉式選單中選擇 <> JSON File 輸出。
- 按一下「儲存」。
步驟 8:預覽每次迭代的資料
現在,鏈可以遍歷控制表的每一行,因此可以使用 Handlebars 指令來預覽資訊的輸出。
注意: Handlebars 指令在本文中作為檢視數值的占位符,但也可以使用其他指令來處理數值。
- 將Render Text Template 指令拖放到畫布上
- 將命令群組的群組開始 連結至渲染文字範本 命令
- 編輯該命令並將其命名為預覽控制工作表資料
- 在模板欄位中,輸入下列內容:
檔案名稱 活動旗標表 ID
- 為了從控制工作表取得數值,必須為每個 JSON 迭代套用變數轉換。
- 在File Name 旁,從側邊欄中選擇JSON File Iteration ,位於Group Iterator 下拉選項。
-
- 按一下 JSON 檔案迭代,選擇從 JSON 取得值。
- 在 Value 欄位中,輸入控制工作表中的標頭File_Name
- 注意: 良好的做法是直接將控制表中的標題複製到值域中
- 按 Enter 並接受
-
- 針對Active_Flag &Table_ID標頭,重複上述步驟。
- 完成後,範本欄位應如下所示:
- 儲存指令
步驟 9:執行連結與預覽
現在已設定好 Chain 和 Control Sheet,重要的是確保 Handlebar 輸出的每次迭代都包含 Control Sheet 中每一行的資料。
- 按一下 發佈 ,然後按執行 該鏈
- 執行鏈
- 成功執行 Chain 後,按一下Preview Control Sheet Data 指令,並導航至Log 索引標籤
- 在「Start Rendered Text」(開始渲染文字)下,應該可以看到第一次迭代的輸出。
- 切換到日誌索引標籤上方選項的值 2,以查看第二次迭代的結果
- 最後,切換到值 3,查看第三次迭代的結果
- 每次迭代應顯示如下:
值 1:
值 2:
價值 3:
利用作用中旗標
下一步是使用已建立的相同鏈,納入Conditional 邏輯,利用Active Flag 的值。
- 編輯 Chain 並刪除 JSON Iterator 與Preview Control Sheet Data 之間的連結。
- 新增Conditional 指令,並將指令群組的群組開始 連接到新指令
- 將Conditional 指令連結至Preview Control Sheet Data 指令
- 編輯條件命令
- 命名命令Active Flag?
- 按一下+ 規則 按鈕
- 在值欄位中,從Group Iterator 的下拉式清單中,按一下 <> JSON File Iteration
- 新增變數轉換,並使用控制工作表中的Active_Flag 標頭作為值
- 按一下「接受」(Accept)。
- 將條件從 "Is Blank「 變更為 」="
- 在表達欄位中輸入 "true" 字元
- 按一下「儲存」。
現在,每當執行連鎖時,預覽控制工作表資料 指令僅會在該迭代中的Active_Flag 值等於true 時執行。
- 由於其中兩個迭代的 Active_Flag 設為 "FALSE",因此Preview Control Sheet Data 指令僅執行第三個迭代。
- 如果控制表中 "Active Flag? 「条件命令的迭代值为 」FALSE",则将跳过该命令。
其他使用案例
控制表提供了集中、管理和自動化工作流程執行中使用的值的高效方法。可應用於各種場景,包括
- 管理來源系統、Workiva 和 Wdata 元件 ID 的中央樞紐
- 利用標誌過濾特定程序是否應該執行,並採取行動
- 指定從來源系統執行報告的 URL 端點
- 定義特定檔案的日期和命名慣例
- 為 SFTP 擷取指定檔案識別檔案目錄