前言:
任何系統中的流程管理,都少不了參與人員、流程相關信息及文檔、審批結果,要設計一個合適的通用管理流程的方案,確定少不了須要知足以上的要求,而對於彈性要求比較高的系統中,可能還須要加上一點,容許自定義流程及自定義流程的表單,即應該爲可擴展的,普通的用戶也能夠參與流程的設計,即對於非開發人員來講,這種流程參與要求系統有着更高的易用性。
JBPM4目前已經簡化了流程管理中的不少方面,如人員的參與(有用戶組,用戶及swimlane),
流程的相關信息能夠使用流程的啓動參數攜帶,自定義流程及表單則須要使用其餘的技術進行輔助開發(如flash,或javaFx是兩種不錯的選擇)
下面基於這種設想進行系統的設計及實現:
1、流程的設計:
咱們的流程須要先使用jbpm eclipse的設計器進行,用它來生成流程的定義(主要爲xml文件)[後面能夠採用java applet技術或javafx技術進行自定義流程xml]
2、發佈流程
發佈流程至系統中成功發佈後,顯示流程的示意圖,而且能夠基於這個示意圖設置任務的處理人員和任務表單。
發佈至系統中的流程須要進行分類管理,而且能提供一些流程說明及備註之類的相關信息,這跟生活中的不少流程同樣,特別是政府辦公,去政府辦理任何一事務時,都須要提交材料,通過不一樣的部門的相關負責人進行處理,最後才進行歸檔,而且打印相關的處理結果給申請人。因此在設計這個操做界面時,須要考慮操做的方便性,容許針對每一個任務加上用戶或用戶組(或角色)。Jbpm提供在設計流程時指定用戶或角色(咱們稱之爲前綁定用戶),也提供在運行的時候,指定由哪個用戶或角色來處理(咱們稱之爲後綁定用戶)。爲了系統的靈活性,咱們使用後綁定用戶。因此有了以下的設計:
表設計以下所示:
表說明: html
pro_type爲流程分類,目前僅是爲只有一級目錄。 java
pro_definition爲流程定義,裏面有一個比較重要的部分就是存儲jbpm的發佈流程的id。加上這個表目的就是爲了能夠更方面描述流程的方方面面,雖然jbpm也提供了流程的定義描述,不過並不詳細。 app
pro_user_assign爲流程的後面綁定,後面會根據當前流程跑至哪個任務,而會自動把流程分配至哪個用戶去或角色來處理。 eclipse
界面以下所示:


3、流程表單設計:
表單原本是不屬於由流程中來進行管理的,不過流程中的任務須要表單的進行相關數據顯示或流程操做(如流程的跳轉),可是因爲表單會由系統使用的ui不一樣而實現會由不一樣,因此Jbpm並不理會用戶本身的表單如何實現,只是提供對於流程實例或任務實例的數據存儲方式,使得流程在運行過程當中能夠讀取來自用戶的數據。於是系統要實現自定義的表單功能,即須要實現本身的ui上的自定義表單的功能。而對於數據的存儲, Jbpm4已經提供了很好的實現方式。
在本系統中,因爲使用了Ext3的功能,因此本人決定使用Velocity的表單模板+後加載的extjs來實現本身的自定義表單。
表單的自定義實現會在下一篇文章中做介紹。有興趣的能夠多多交流。廣州宏天軟件也會爲你們進行技術上的諮詢及服務。 ui
廣州宏天網址連接:http://www.jee-soft.cn/htsite/html/cpjfw/cpzx/index.html 設計
電話:13672461598 xml