在較早博客隨筆裡面寫過文章《Winform開發框架之簡易工作流設計》之後,很久沒有對工作流部分進行詳細的介紹了,本篇繼續這個主題,詳細介紹其中的設計、實現及效果給大家,這個工作流在好幾年前就應用在市交通行業的審批系統上,經過不斷的改造適合更廣泛的審批流程處理,從最初的Web上擴展到WInform上,... ...
在較早博客隨筆裡面寫過文章《Winform開發框架之簡易工作流設計》之後,很久沒有對工作流部分進行詳細的介紹了,本篇繼續這個主題,詳細介紹其中的設計、實現及效果給大家,這個工作流在好幾年前就應用在了市行業審批系統上,經過不斷的改造適合更廣泛的審批流程處理,從最初的Web上擴展到WInform上,並從WInform框架到混合框架上都實現了不錯的處理。
1、工作流模塊的表設計分析
在工作流處理表中,首先我們區分流程模板和流程實例兩個部分,這個其實就是類似模板和具體文檔的概念,我們一份模板可以創建很多個類似的文檔,文檔樣式結構類似的。同理,流程模板實例為流程實例後,就是具體的一個流程表單信息了,其中流程模板和流程實例表單都包括了各個流程步驟。在流程實例的層次上,我們運行的時候,需要記錄一些日誌方便跟蹤,如流程步驟的處理日誌,流程實例表單的處理日誌等這些信息。
當然實際的流程實例裡面需要記錄很多信息,其中流程步驟日誌、申請單處理日誌等信息是必須要記錄的,方便我們跟蹤相關的處理記錄。因此工作流業務表包含多兩個日誌記錄的表,如下所示。
一旦流程實例根據模板創建後,流程先根據模板初始化後,在處理過程還可以動態增加一些審批步驟,使得我們的處理更加彈性化。
當然,為了更好的處理流程的相關信息,還需要記錄流程處理人,流程會簽人、流程閱辦人,以及常用審批意見等相關輔助表,以便對流程的各個處理信息進行合理處理和展示。
下麵是具體表單的查看信息,包含了相關的處理步驟信息,以及相關的流程日誌信息。
詳細表單查看界面如下所示。
流程日誌分為幾個部分:申請單處理日誌、申請單處理歷史信息、申請單系統日誌等幾個部分
2、工作流步驟處理
對於一個流程處理操作,我們知道一般有審批通過、拒絕、退回到某步驟、轉發到內部閱讀、閱讀,以及包括起草者能撤銷表單呢等操作,當然如果還有一些具體的業務,可能還會有一些流程的處理才操作,不過基本上也可以歸結為上面幾種,只是他們每步處理的數據內容不同而已。因此審批的操作步驟分類如下所示。
如審批界面如下所示,裡面包含了通過、拒絕,跳回到某步驟,增加步驟等功能集合。
WInform開發框架之工作流系列文章: