構建自動化
自動化
為任務選對工具 —— 流程管步驟,工作流管狀態,審批管人工籤核。
**自動化以宣告的方式把業務邏輯掛到資料模型上 —— 作為由執行時執行的後設資料 —— 而不是散落在應用程式碼裡。**三個工具覆蓋全部場景,一開始就選對,能省去日後返工。
我該用哪一個?
| 你需要 | 用 | 閱讀 |
|---|---|---|
| "X 發生時,做 Y" —— 由記錄變更、定時或按鈕點選驅動的步驟 | 流程 | 流程 |
| "這條記錄只能按這些事件在這些狀態間移動" —— 受控的生命週期 | 工作流(狀態機) | 工作流 |
| "必須有人籤核後才能繼續" —— 路由給人的決策 | 審批 | 審批流程 |
經驗法則:狀態用工作流建模,步驟用流程建模。審批不是獨立引擎 —— 審批就是在審批節點暫停、等人決策的流程。
它們如何組合
三者是互補而非競爭:
- 工作流約束哪些生命週期遷移是合法的 —— 狀態、遷移、守衛條件,僅此而已。
- 流程執行這些遷移周邊的副作用:發郵件、更新記錄、呼叫外部服務、等待、分支。
- 流程內的審批節點阻塞執行直到審批人行動,然後沿批准或拒絕分支繼續。
所以"工單從 new → assigned → resolved"是工作流;"升級時通知經理"是流程;"超過 5 萬美元的折扣需要財務經理籤核"是帶審批節點的流程。
**提示:**如果需求讀起來是"X 發生時,做 Y",那就是流程。如果讀起來是"這條記錄絕不能跳過某個狀態",那就是工作流。從這裡出發,你幾乎不會選錯。