實際專案需求的監控管理功能
- 即時追蹤工作流執行狀態
- 逾時任務監控與告警
- 歷史工作流處理過程查詢與異常分析
- 待辦任務轉派 (重新指派)
- 工作流掛起/恢復操作
- 工作流取消/終止操作
- 業務流程動態調整 (熱更新)
WF 內建監控支援現況
- TrackingService:提供流程級與活動級的追蹤記錄
- 預設持久化:僅支援 SQL Server,Oracle/檔案需自行實作介面
- 預設 UI:僅有主控台文字輸出,**缺乏圖形化監控管理介面**
結論:WF 僅提供編程框架骨架
對比成熟工作流平台 (K2, SharePoint, Ultimus 等),WF 內建的 Activity 功能極為薄弱。社區與微軟官方皆缺乏完整可用的工作流範例專案 (Start Kit 算較完整者)。
但這正是學習《WF 框架程式設計》的價值所在:熟悉框架架構後,透過自行實作基礎功能,完全可以打造企業級工作流開發平台。
「無任務表」對 WF 的深遠影響
背景
WF 引擎不關心流程何時流轉、流向何處,沒有任務表概念。這設計雖純粹,但造成嚴重實務問題:
待辦任務查詢效能困境
- 方案 A:遍歷所有工作流實例 → 檢查每個活動角色 → **效能災難**
- 方案 B:自建任務表 → 維護負擔極大
自建任務表的兩難
| 場景 | 問題 |
| 運行時指定角色 | 應用層插入任務資訊 → 流程實際由任務表驅動而非 WF → 等於沒用 WF;回退/會簽邏輯需業務層頻繁維護任務表 → 反而更麻煩 |
| 設計時指定 WorkflowRole | 同樣需自訂 Activity 維護任務表 |
核心建議
任務表維護必須由工作流自身完成 → 採用自訂 Activity 在流程關鍵節點 (建立/指派/完成/回退) 自動維護任務表,確保一致性與封裝性。
關鍵問題待解
- 是否有必要自建任務表?
- 若必要,文中自訂 Activity 方案是否可行?是否有更好架構?
延伸閱讀建議
- WF Start Kit 原始碼分析
- 自訂 TrackingService 實作 (Oracle/檔案/NoSQL)
- 工作流版本控制與熱更新機制
- 異常處理與補償交易模式在 WF 中的實作