記得多年前在做工作流程管理中心的流程示範時,很迷茫如何用流程的功能模組來展現商務程序。
商務程序的展現,傳統的做法是按業務單據建立好業務表,再增加一些狀態欄位來控制單據的流轉,達到完成商務程序。
例如一個採購申請流程:
按採購單建立好表結構欄位;
做好制定採購單的模組;
買方制定好的單據接下來會在賣方的各個部門之間流轉,就通過增加的狀態欄位來控制:
1 申請狀態;2 發送狀態;3 倉庫備貨狀態;4 已發貨狀態 ;5 配送在途;6 買方簽收;7 完成;8 作廢
然後按每種狀態做一個模組,主要功能就是按狀態列出記錄,修改目前狀態到下一個狀態。
把做好的模組,掛接到菜單上面,然後又分配給角色,操作使用者登入系統後,根據分配的許可權,執行菜單功能,完成一個一個的採購商務程序。
當使用工作流程系統後,要完成一個採購流程的開發,方式就有很大的變化了。
首先,按採購單,建立好業務表,也可以增加狀態欄位(但增加的狀態欄位不做控制流程程的流轉用)
按採購申請單在各個部門之間的流轉建立商務程序:
制定採購單(買方)--》賣方審批--》倉庫備貨--》配送發貨--》買方簽收--》完成
然後按照上面的商務程序,用自訂表格單工具,做出相應的業務表單
制定採購單
賣方審批
倉庫備貨
配送發貨
買方簽收
這幾個節點都會對應有業務表單。可以做出一個表單,展現的是一張採購單的內容,
在制定採購單的時候,買方能做採購單的填寫,其它的資訊不可見。
在賣方審批的時候,能修改採購單的內容,同時增加 發送給倉庫,作廢 這兩個功能。
倉庫備貨的時候,只能查看採購單的內容,同時增加 確定發貨,缺貨 這兩個功能。
配送發貨的時候,只能查看採購單的內容,同時增加 發貨 的功能。
買方簽收,只能查看採購單的內容,增加 買方已經收貨 這樣的功能。
做開發完成的表單掛接到商務程序的節點上。同時將某些業務資料設定成流程的動作結果條件。
設定完成後,此流程就開發完成了,如同利用狀態做寫入程式碼完成這個商務程序一樣。只是利用工作流程系統完成的商務程序,流程的流轉全部在流程建模的xml檔案中,不再需要利用狀態欄位做控制流程轉了。
狀態欄位只做業務資料,用於顯示當前處於什麼階段,其實通過流程執行個體啟動並執行軌跡圖,能更清楚的展現當前所處的階段。
(軌跡圖)
按這種方式完成的採購申請流程,如何展現呢?曾經很迷茫.....
迷茫一:是直接在菜單上掛接 採購申請流程,點擊就開啟執行採購單?還是做一個通用的模組,每次有新增的商務程序,就按商務程序名稱列出來,點擊一個就啟動一個協調流程執行個體?
迷茫二:是先初始化得到了流程執行個體id,再開啟第一個節點關聯的表單;還是先開啟業務表單,業務資料提交時,再得到流程執行個體id呢?
迷茫三:流程執行個體第二個節點的辦理,第三個節點的辦理等待,通過什麼方式來做?是直接掛菜單還是通過通用的模組來執行?
還記得曾經這些問題困擾了很久,後來經過多次的討論,做成了,採用工作流程通用模組觸發流程執行個體的方式來展現流程。
在流程管理中心的功能則側重於工作流程方面
迷茫一:解決方案 採用列表的方式列出所有的商務程序。
迷茫二:解決方案 在流程管理中心的啟動流程執行個體,一律採用,先初始化得到流程執行個體id,然後執行流程的節點,開啟第一個節點關聯的業務表單。
迷茫三:解決方案 流程執行個體的第二節點的辦理,通過待辦工作清單,辦理任務關聯進去執行。沒有定義任務資訊的節點,通過流程執行個體執行動作關聯。
使用者如果需要定製,如使用者有 制定採購單 這樣的功能按鈕或菜單。並且需要先開啟單據,點擊提交時再執行初始化流程,那麼就只能定製開發了。
通過調用流程引擎的api去定製開發了。
-------------------我是升級的分隔線^_^----------------------------------------------------------------------------------------------------------
在接下來不斷的升級,不斷做使用者實現定製開發的時候,終於明白了。在實現的時候,應該是工作流程通用模組觸發流程執行個體和使用者定製的實現流程執行個體,這兩種方式都要提供,並且做好通用的實現模組和調用模組。
當測試回合流程的時候,可以用工作流程通用模組的方式觸發。
當真正發布流程正式啟動並執行時候,修改幾個參數,就可以切換到使用者定製的實現方式。如 點擊 制定採購單,就開啟菜單,等使用者填寫完成後,提交的時候,再一起提交表單資料和啟動流程執行個體。
實現方式,待續........今天太晚了,改天再續了。