給某制葯廠提供審批流程組件、遇到一些客戶的實際需求如下:
在實際使用中,特別是資金的審批,企業會根據金額的大小走不同的審批流,比如100萬以內,財務總監審批就可以,大於100萬需要總經理審批。
而且在審批流程的各個步驟中可能也會有根據某些條件進入某審批環節,也需要加入口條件。
1)在添加審批流程窗體中增加字段,用於輸入入口條件,比如輸入Cost > 1000000,表示:如果單據中的Cost字段數值大於1000000,就進入該審批流,否則不進入該審批流。其使用場景:給某個窗體配置兩個審批流,再設置不同的入口條件,在送審時系統根據單據中的數據,判斷進哪個審批流。
2)在流程定義步驟中也需要添加入口條件,輸入某一條件后,自動流轉進該步驟,否則自動跳過。
一個功能可以設置多個審批流,但是一筆單據最多只能對應一個審批流實例,也就是說,進不同的審批流程,不是在審批流程中是否進某一步審批。例如,我給窗體FrmRequestAnAccount定義兩個審批流,也是通過入口條件區分。舉個簡單的例子,比如發貨申請單的審批;
對於發貨公司的管理制度上有兩種審批,一種是普通客戶的發貨申請,一種是VIP客戶的發貨申請。VIP的判斷依據:在客戶基本信息表中字段IsVip = 1表示是Vip客戶。
普通客戶的發貨申請的審批流程:
審批流的入口條件:IsVip <> 1
審批節點
1:銷售部經理審批。
2:總金額超過5000,需要銷售部總監審批。
3:商品價格超過限價需要總經理審批。
VIP客戶的發貨申請審批流程:
審批流入口條件:IsVip = 1
審批節點
1:VIP部經理審批。
2:總金額超過10000,需要VIP部總監審批。
3:商品價格超過限價需要總經理審批。
兩個審批流,但是對應的同一個功能,終極目標是,審批流和功能沒有任何關系,隨便給任何功能想配審批流就配,不需要修改功能代碼,只需要在審批流定義中跟功能建立關系即可。
改進1:可以定義相同編號的審批流程,可以增加入口條件,不同條件的數據按不同的流程進行流轉,例如發貨申請就可以設置多種流程審核步驟,然后程序自動按設置條件進行流轉。
改進2:每個流程審核步驟都可以設置入口條件、結束條件,按用戶的設置自動過濾需要走的審核流程。
通用權限管理系統組件 V3.9 版本里審批流程組件的數據庫變化如下,流程定義表增加了流程入口條件,流程步驟表定義了入口條件、結束條件字段。
改進了這個功能后,就可以滿足客戶目前提出的對簡易審批流程的需要了。雖然可以滿足更復雜的需求,圖形化的流轉等等,但是目前定位就是對簡易流程進行簡單高效的審核,安裝的組件少,程序調用簡單,數據庫表結構簡單,維護調試簡單為目的,滿足80%的日常審核單據的需要。
自己的程序中調用的方法,可以參考 http://www.cnblogs.com/jirigala/archive/2013/04/30/3052408.html 文件的底部代碼部分。