曾經做過一個結算系統,對于一段期間內完成的訂單做金額費用的結算,根據訂單的金額付款,并計算出一些代理費用等等。
在付款之前,需要結算部門審核,財務部門的審核,上級主管的審核,客戶的確認等等。這個是按項目來做的,沒有上工作流系統。
對于付款前的那些級別的審核,都是用狀態字段來控制的,主要是在結算單中增加審核的字段
財務審核狀態,審核日期,審核意見,審核人
客戶確認狀態,確認日期,確認意見,確認人
上級主管審核狀態,審核日期,審核意見,審核人
....
用狀態來控制流程的流轉的,
結算部門人員,登錄系統后,點擊 結算單確認,打開所有的未確認過的結算單,進行核對,核對過后,點擊審核通過,則確認狀態為 已確認。
財務人員登錄后,點擊 財務審核 菜單,打開所有結算已確認并且財務未通過的結算單,進行財務的核對。核對正確后,點擊審核通過,則財務審核狀態為 財務審核通過。
客戶登錄系統后,點擊 結算單確認 菜單,打開財務審核通過,客戶未確認的結算單,進行確認操作,客戶確認后,客戶確認狀態就變成 已確認了.
....
最后到付款等,都是通過狀態字段來控制的。
整個的流轉只能是操作人員自己心里清楚,現在流轉到那個階段了,下一步需要誰來處理。
后來需求還在不斷的變化,需要增加或減少一些審核,如代理的地方財政審核,代理公司的二級審核,又去掉上級主管的審核等等.....
總之涉及到錢的問題,都會很仔細了,層層審核,還需要加上ca簽名認證,在真正付款之前,先核對一下ca簽名的數據是否和現在的數據一致,避免審核過后,結算單又做了修改。
在增加審核的時候,就多增加一些字段,或者多增加一些狀態值,并修改代碼將字段和狀態值的修改體現到代碼中,使得流程能流轉,并重新打包發布程序,最后再測試,發布,正式上線使用
來來回回的總是修改那些狀態字段以及狀態字段的值,控制頁面的記錄的顯示,審核按鈕等操作是否顯示,一些只讀的,隱藏的等等功能按鈕也是靠狀態值來控制的。
有時候要減一級的審核,并加一級的審核,就會將減掉的那級審核的狀態字段修改到增加的那級審核上。
.....
一段時間后,這些狀態字段以及狀態字段的控制,就變得很復雜了,整個流轉過程,誰也不清楚,或許實施人員心里大概有個底,也沒準那個需求變化了,開發人員又“默默的”改了代碼了。每次在要走一個流轉的時候,會重新了解一下,不清楚的,就打開代碼來查看了,大體上就是那樣的,有一些審核的過程。
如果用工作流系統來做這個....
首先要在流程設計器中,畫一個 結算單審批流程
制定結算單--》結算部確認--》財務部核對--》客戶確認--》付款處理--》結束
在流程的設計器中的
結算單中也不需要增加那么多的字段了,只對應一張通用的審核表,有一級的審核,就往通用審核表中增加一條記錄。
在結算單表中,也可以增加一個狀態字段,記錄每個節點的審核結果,便于單獨做記錄的查詢用。
只需要一個菜單“制定結算單”,當結算單制作完成后,流程實例就啟動了,下一步的辦理,就完全走流程設計器中定義的節點了。
下一步的執行有兩種方式:
從我的待辦任務列表中鏈接進去
從流程實例的軌跡圖中,點擊節點進去,或 軌跡列表中單節行進去

每個流程實例的辦理都有軌跡圖顯示,能清楚明確的看到每張結算單的審核過程
當有需求變化,需要增加一級的審核,則在流程設計器中,多畫出一個審核節點,并增加一個結算單審批流程的版本,新的結算單流程按新的版本啟動。
有減少一級的審核或處理,也是在設計器中,刪除一個節點。
需要查看結算單的審批流程,只要打開流程設計器,查看流程的節點。或者查看流程實例運行的軌跡,也可以查詢到結算單的審批過程。
運行工作流系統后,流程變得有跡可循了,不再是雜亂無章的。