審批工作流系統預覽
1、工作流系統有什么用?
可以簡化您關于 業務對象狀態的判斷的流程。舉例:如果一個對象每個階段有2個狀態(通過或不通過),一共有3個價段,分別可能有4個人參與到流程中,并且狀態處理的方向可能與當前操作員相關,有些操作員權限大,可直接跳轉到下一階段,如是沒有工作流系統,我們的代碼可能會是什么樣子呢?
- if( 階段1.Statu1 == obj.Status)
- {
- //您的代碼
- if( operatorID == obj張三。ID )
- {
- ...
- }
- }
- else if( 階段1.Statu2 == obj.Status )
- {
- //您的代碼
- ....
- }
- else if( ....)
- {
- .....
- }
您能想象會出現多少 if else ,更糟糕的是如果哪天客戶告訴你,要在某階段增加一個 特殊狀態,或特殊邏輯,你肯定有想自殺的想法,或者你想把客戶殺掉。為什么?因為難度成指數級別在增長。
另外,這只是處理邏輯上代碼的增長,如果您根據每個狀態都在界面上對應有個交互界面,比如:等您審核的XXX,等待您審批的XXX。。。,您知道會出現多少用戶交互界面嘛?況且,用戶哪天突發奇想說要增加審批環節的時候,就是入地獄的時候了。
所有變更都是侵入性的,必須重新編寫代碼,編譯、發布、重新布置,啊,我的天哪,“天盡頭,何處有香丘?”。
2、關于工作流學習的文章或成功應用太少,不免讓很多同學感到大海茫茫,如何開始?
首先,感謝WXWinter ,關于WF4.0,我的基礎學習基本上是參考他的例子理解基本概念的,但是當你理解了基本概念后,想建立一個審批工作流系統您還是無從下手,如何辦?
困難澄清:
2.1.工作流如果要良好運行,必須有外圍用戶系統的支撐,比如,關于如何進行權限檢查及認證哪是業務對象的事,不應該侵入到工作流中。
2.2.工作流并不是孤立的運行,有時他需外部審批人的動作,因此必須有渠道為流程添加審批節點,并指定審批人,因此您必須提供相應的流程設計器供用戶或實施人員使用。
2.3.有時流程運行需要與人做交互,由操作員決策節點應如何向下走,并且要向運行中的流程提供運行參數,外部支撐系統應如何提供流程的運行參數呢,這和流程運行上下文有關,可能還與當前用戶有關。
2.4.關于節點自身的審批結果,有多種多樣的組合,比如:一票通過、多票通過、一票否定、多票否定、按比例通過、按比例否定等。或者他們的組合。
看到這里,也許您的大腦已被許多概念交織在一起,一片混亂了。別急,總有解決方法的,下面我們先預覽一下我心目中的工作審批系統是什么樣的?和您的期望是否一致,我們之間能產生些許共鳴嘛?
3.以公司常見的“借款申請”為例,我們一步一步的演示:
環境交待:張三 是公司員工,因要出差處理某事,出差前向公司申請借款 5000元,借款申請必須先征得部門經理 李四的同意,后經財務經理 趙五 審核同意,才能用署名后的借款單到出綱換取 現金。
流程:發起借款申請->李四審批-> 趙五審批-> 出納付款
3.1 發起審請
3.2 啟動流程
3.3 流程啟動后的結果: 等待部門經理審批
3.4 部門經理審批:
首先,查看待辦事項:
雙擊查看:
點擊同意流轉到下一節點:財務審批
3.4審請人查看流程進度:
3.5 財務審批
雙擊打開申請單:
點擊同意,彈出付款賬戶供財務選擇,點擊確認流程結束。
4.流程設計器預覽:
Oh yeah….!!!!完成,感覺如何呢?
另外,我想表達一點,如何您的解決方案連自己都覺得在哪一點有不自然或覺得繁瑣的地方,說明設計與實現肯定有問題,應反思,因為用戶很少給自己第二次機會,提供用戶使用的軟件應是能解決實際問題,有價值且優秀的產品,這樣您就有了市場需求了。
期待下文吧,OK,整個系統如何動作?審批工作流系統的設計要點是什么?
原文鏈接:http://www.cnblogs.com/yyj/archive/2013/04/22/3034327.html