流程控制是自動化工作流程的核心,可以決定任務的順序、條件分支及錯誤處理。在 Power Automate Desktop 中,也有設置「流程控制」的動作區塊,內含相關的動作以供設置。
本文將介紹幾個常用的流程控制功能,並進一步說明可以如何在每個動作編輯欄位中設定錯誤處理的相對應措施,以提高 debug 的效率及流程穩定性。
功能說明:此功能可以呼叫已定義的子流程,是一個用來重複使用邏輯的好方法。應用場景:通常在 PAD 的流程開發中,為確保每個流程的獨立性,以及方便管控,我們通常會選擇將一個流程拆分為更細的幾個子流程,當某些步驟或子流程需要在不同流程中多次使用時,這個功能就提供了可重複使用的解決方案。範例:假設流程中有個步驟是整理數據,而我們需要在不同網站或應用程式中使用這份整理好的數據,那我們就可以藉由執行子流程的這項功能,在不同流程中重複呼叫它。
功能說明:這兩項功能之所以放在一起介紹是因為兩者通常會放在一起搭配使用,「標籤」會用來設置流程中的跳轉位置,「移至」則可以讓流程跳轉到指定的標籤位置。應用場景:當某些條件不滿足時,可以使用標籤和移至讓流程跳過一些不必要的步驟,或重新開始某部分,是自動化流程中滿常見的使用方式。範例:如果流程發現郵件收件匣為空,可以使用「移至」跳回等待狀態,再次檢查是否有新郵件。
功能說明:這個功能會將流程中的最後一個錯誤將之透過變數的型態儲存起來,應用場景:此功能可以在流程發生錯誤時,協助獲取錯誤訊息,便於後續的錯誤處理。
在 Power Automate Desktop 中,基本上每個動作的編輯區都會有錯誤處理設定,這有助於流程在發生錯誤時不會直接中斷,並可以自動執行後續步驟或進行補救操作。
操作位置如下圖,需點選左下角的錯誤時(儲存後該動作會在流程編輯區行數的左側出現藍色盾牌符號)。
接著進到錯誤時的處理步驟,會出現以下畫面,共有三個區域可編輯。
1. 重試規則
涵義:
當動作失敗時,可以設定重試次數和重試間隔或選擇不重試。
應用場景:
例如,在執行檔案操作時,如果檔案正被其他程序使用,你可以設定重試,以避免因暫時性錯誤導致整個流程失敗。
2. 所有錯誤
涵義:
設定當發生錯誤時,流程應該執行的操作。你可以選擇繼續流程或中止流程。
應用場景:
可以設定該動作的所有錯誤情境出現時要如何處理,舉例來說可選擇「繼續流程執行」或是「擲回錯誤」,如需設定規則整理錯誤訊息則選擇後者。接著可以在右上方的「+新規則」透過建立變數的方式整理這些錯誤資訊。
3. 進階
涵義:
如果需要更細緻的錯誤處理邏輯,可以透過這個動作進一步控制流程。
應用場景:
舉例來說此次的示範動作為重新命名檔案,則此處的進階處理資訊就有包含「找不到目錄」、「找不到檔案」、「無法重新命名檔案」(此處的呈現資訊會依據不同動作而有所不同)。儘管是同一動作,但可以設置不同的錯誤處理機制,根據不同的錯誤類型採取不同的應對措施。
流程控制屬於 PAD 較進階的使用方式,不過在開發中是很實用的工具,可以搭配使用這些流程控制功能,建立完善的錯誤處理設定,以提升靈活度,更重要的是有了這些功能,在 debug 時才能更細緻的去觀察錯誤狀態,提升除錯效率。