一個好的流程設計需要有方便、快速又能快速找到我們需要維護動作。
因為流程不是設計好既結束, 後續我們可能需要進行優化, 交接或處理例外事件。
這時有運用流程管理動作就十分重要, 本文內容將介紹我們有哪些流程管理動作可以使用。
概述
如何好好維護一個流程其實離不開註解, 區間, 拆解流程或等待處理。 舉例來說:
- 在執行長時間流程後我們可能需要優化流程, 但沒有適當的說明我們可能有機會不記得當初所設計的邏輯或變數所使用的目的, 這時註解十分重要。
- 在複雜的架構裡需要查看某項邏輯時, 沒有任何協助區分架構的方法我們可能需要猜測某區間是否屬於相同的邏輯, 這時有區間或子流程協助拆解結構就顯得十分清楚。
以下將介紹流程控制的動作如何管理我們的流程。
說明
所有的操作都在流程控制內。
註解 Comment
註解該動作可以放在如何位置, 並且在內容處可以輸入我們想要的資訊, 如說明變數使用來存放擷取後的資料等。
除此之外, 註解是不會被執行的動作, 僅提供說明。

區域 Region
區域新增後我們可以為我們的區間進行命名, 並且新增後也將會協同新增一個區域結束(End region)。
完成新增區域後我們即可在其中放入如何動作, 並且還能縮排以讓我們更專注於需要修改的項目。
好處是若只有一兩個動作可能教無感, 但若我們所設計的邏輯具有超過 10, 20 或更多時將很可觀, 因此使用區間也顯得十分重要。

執行子流程 Run subflow
若我們的流程中具有多面向操作時, 我們可以設計子流程拆解我們的流程。
何謂多面向操作呢?
多面向操作的情境可能為我們需要登入某網站後重複下載資料, 或者我們需要取得資料後重複輸入資料至某網站, 這時既為多面向的操作而非使用某一應用程式單一完成流程。
使用子流程處理能協助我們將流程拆開好維護外, 我們還在重複引用子流程來作為重複使用。
除此之外, 若流程中有需要中斷時我們還在判斷後使用結束子流程(Exit subflow)來中斷子流程。

停止流程 Stop flow
上方提到結束子流程外, 當然若有需要我們亦能執行過程中直接停止我們的流程以中斷往下執行。
除此之外, 若執行錯誤時我們也能中斷流程並輸出我們想要的錯誤資訊以利於我們後續維護時查看, 十分方便。
舉例: 若我們在輸入資料時發現資料不符合設計邏輯時我們即可設計一個中斷流程以防止不合規資料輸入到我們正式環境內。

錯誤處理 On block error
提到中斷流程我們不得不提到 Try-Catch。
Try-Catch 是開發中很重要的錯誤處理判斷, 我們可以針對異常狀況進行額外處理或輸出系統錯誤的資訊, 因此錯誤處理讓我們十分方便, 也增加我們設計中的彈性處理。
舉例我們在發生異常時我們可以額外輸入錯誤資訊, 或者我們可以直接執行指定動作等。

等待 Wait
等待主要是讓我們可以等待我們的動作執行到某處時能等待數秒介面上輸出結果後再往下執行
舉例來說當我們需要登入網站時可能不會即時完成登入需要等待登入至相關畫面, 或者我們在某系統上輸入資料時需要等待完成輸入。
以上的舉例都是無法即時反應, 有機會需要數秒的等待, 因此等待的動作就十分好用。

結語
良好的維護設計除了讓我們方便後續維護外, 我們設計好的流程在交接給其他人時也能加速與方便交接, 因此需要善用維護設計。