一種基于jbpm工作流引擎的可視化快速開發(fā)平臺(tái)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于jbpm工作流引擎的可視化快速開發(fā)平臺(tái)。
【背景技術(shù)】
[0002]工作流的概念起源于生產(chǎn)組織和辦公自動(dòng)化領(lǐng)域,主要是針對(duì)日常生活中具有固定程序的活動(dòng)而提出的一個(gè)概念,目的是通過(guò)將工作分解成一系列定義良好的任務(wù),按照一定的規(guī)則和過(guò)程來(lái)執(zhí)行任務(wù),并對(duì)其實(shí)行監(jiān)控,從而提高生產(chǎn)效率,降低生產(chǎn)成本,提高企業(yè)生產(chǎn)經(jīng)營(yíng)管理水平和企業(yè)競(jìng)爭(zhēng)力。
[0003]隨著辦公自動(dòng)化的發(fā)展工作流在系統(tǒng)中的應(yīng)用日益頻繁。以往的產(chǎn)品通常都是采用第三方開源的工作流產(chǎn)品,將其集成到業(yè)務(wù)系統(tǒng)中。并進(jìn)行二次開發(fā)。開源的工作流只定義了流程基本的元素,提供基本的流程部署和運(yùn)行功能,無(wú)法滿足實(shí)際業(yè)務(wù)的需要,耗時(shí)耗力。開源工作流產(chǎn)品都是由開發(fā)人員以編碼的方式生成流程定義文件,不能滿足需求的日益變更,靈活度不夠,開發(fā)及維護(hù)成本較高。同時(shí),客戶也無(wú)法以直觀的方式查看流程。
【發(fā)明內(nèi)容】
[0004]本發(fā)明為了解決上述問(wèn)題,提出了一種基于jbpm工作流引擎的可視化快速開發(fā)平臺(tái),該平臺(tái)為用戶提供方便快捷的可視化的流程定制功能,降低了開發(fā)及維護(hù)成本。
[0005]為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
[0006]—種基于jbpm工作流引擎的可視化快速開發(fā)平臺(tái),包括信息配置模塊、流程配置模塊、客戶端服務(wù)器、過(guò)程定義模塊、引擎調(diào)用模塊和管理監(jiān)控模塊,其中:
[0007]所述信息配置模塊,用于查看及配置數(shù)據(jù)源及應(yīng)用服務(wù)器信息,查看及配置統(tǒng)計(jì)監(jiān)控信息,與流程配置模塊和管理監(jiān)控模塊連接;
[0008]所述流程配置模塊,用于流程業(yè)務(wù)定制,通過(guò)拖拽來(lái)搭建流程模型將工作流轉(zhuǎn)過(guò)程以圖形方式展示;
[0009]所述管理監(jiān)控模塊,用于監(jiān)控、查看運(yùn)行中的流程實(shí)例,以及修改當(dāng)前流程實(shí)例的流轉(zhuǎn)狀態(tài),通過(guò)接口模塊與客戶端服務(wù)器連接;
[0010]所述客戶端服務(wù)器,用于啟動(dòng)流程、查看、處理代辦任務(wù)、已辦任務(wù)、委托任務(wù)、委托完成的任務(wù),以及設(shè)置代理;
[0011]所述過(guò)程定義模塊,用于為用戶提供對(duì)業(yè)務(wù)過(guò)程進(jìn)行分析建模的手段,并生成可被計(jì)算機(jī)識(shí)別和處理的過(guò)程定義;
[0012]所述引擎調(diào)用模塊,用于激活若干工作流引擎并解釋過(guò)程定義,并同外部應(yīng)用程序進(jìn)行交互,來(lái)完成工作流過(guò)程實(shí)例的創(chuàng)建、執(zhí)行和管理。
[0013]所述接口模塊支持?jǐn)U展。
[0014]所述過(guò)程定義模塊,通過(guò)視圖界面用戶使用輸入裝置拖拽相應(yīng)組件搭建流程模型,系統(tǒng)自動(dòng)生成大部分流程代碼,用戶只需修改少量業(yè)務(wù)邏輯并調(diào)用相關(guān)接口即可搭建完善的工作流程。
[0015]所述程序包括工作流圖形繪制界面、記錄圖形節(jié)點(diǎn)屬性數(shù)據(jù)的圖形元素類和節(jié)點(diǎn)圖形元素集合類;記錄迀移屬性的迀移圖形元素類和記錄迀移圖形元素集合的類。
[0016]所述引擎調(diào)用模塊,還包括一個(gè)編輯節(jié)點(diǎn)圖形屬性的對(duì)話框和一個(gè)編輯流程基本信息的對(duì)話框,以及負(fù)責(zé)數(shù)據(jù)庫(kù)連接處理的基礎(chǔ)類。
[0017]基于上述開發(fā)平臺(tái)的工作流運(yùn)行方法,包括以下步驟:
[0018]I)輸入模塊點(diǎn)擊程序安裝包,根據(jù)提示用戶輸入相應(yīng)數(shù)據(jù)庫(kù)配置信息、初始化數(shù)據(jù)庫(kù)、配置應(yīng)用服務(wù)器,信息配置模塊會(huì)根據(jù)用戶輸入信息進(jìn)行安裝部署程序運(yùn)行環(huán)境,或者安裝成功后通過(guò)平臺(tái)配置;
[0019]2)用戶通過(guò)訪問(wèn)web頁(yè)面進(jìn)行流程模型搭建或流程監(jiān)控,用戶訪問(wèn)流程模型搭建視圖,通過(guò)點(diǎn)擊鼠標(biāo)拖拽組件框中的相應(yīng)組件搭建業(yè)務(wù)流程模型;將流程信息保存成流程定義文件并保存流程相關(guān)信息到數(shù)據(jù)庫(kù),并將流程部署到流程配置模塊中;
[0020]3)接受流程配置模塊提交的流程數(shù)據(jù),調(diào)用信息配置模塊,執(zhí)行保存動(dòng)作,將流程數(shù)據(jù)保存到客戶端服務(wù)器,通過(guò)流程客戶端啟用發(fā)布的流程,工單開始流轉(zhuǎn)。
[0021]所述步驟I)中,用戶利用系統(tǒng)提供的圖形定義工具先理順流程各環(huán)節(jié)之間的關(guān)系,并將圖形工具所產(chǎn)生的流程及其任務(wù)節(jié)點(diǎn)的基本信息部署到數(shù)據(jù)庫(kù),再使用表單工具,完成任務(wù)節(jié)點(diǎn)的詳細(xì)定義。
[0022]所述步驟I)中,節(jié)點(diǎn)的類型包括任務(wù)節(jié)點(diǎn)、標(biāo)示過(guò)程起止邏輯的開始、結(jié)束節(jié)點(diǎn)和標(biāo)示過(guò)程路由邏輯的與分支節(jié)點(diǎn)、與連接節(jié)點(diǎn)、或分支節(jié)點(diǎn)、或連接節(jié)點(diǎn)。
[0023]所述步驟I)中,起止節(jié)點(diǎn)和任務(wù)節(jié)點(diǎn)以及迀移的圖形屬性將作為過(guò)程定義的一部分分別被保存到數(shù)據(jù)庫(kù)的過(guò)程定義表、節(jié)點(diǎn)定義表以及迀移定義表中;而表達(dá)過(guò)程路由邏輯的節(jié)點(diǎn)不會(huì)被保存到數(shù)據(jù)庫(kù),它所表達(dá)的過(guò)程邏輯將作為一個(gè)屬性字段記錄到與之關(guān)聯(lián)的任務(wù)節(jié)點(diǎn)定義中。
[0024]所述步驟I)中,在創(chuàng)建和繪制過(guò)程圖形元素之前,程序?qū)⑹紫葘?duì)欲創(chuàng)建的圖形元素與已創(chuàng)建的圖形元素集合進(jìn)行約束性檢查,不符合約束條件的新的圖形元素將不會(huì)被創(chuàng)建,檢查包括以下內(nèi)容:
[0025](I)過(guò)程起止節(jié)點(diǎn)的唯一性檢查:在繪制開始或結(jié)束節(jié)點(diǎn)時(shí)要判斷節(jié)點(diǎn)集合中是否已經(jīng)存在開始或結(jié)束節(jié)點(diǎn),如果已經(jīng)存在,則不執(zhí)行操作;
[0026](2)迀移的單向性檢查:即兩個(gè)節(jié)點(diǎn)之間只能存在一條迀移;
[0027](3)對(duì)迀移指向的約束性檢查:該項(xiàng)檢查包含多項(xiàng)內(nèi)容,如迀移不能指向開始節(jié)點(diǎn)、迀移的首端節(jié)點(diǎn)不能是結(jié)束節(jié)點(diǎn);從開始節(jié)點(diǎn)、并行分支節(jié)點(diǎn)、連接節(jié)點(diǎn)引出的迀移只能指向任務(wù)節(jié)點(diǎn);分支節(jié)點(diǎn)的前驅(qū)只能是任務(wù)節(jié)點(diǎn);結(jié)束節(jié)點(diǎn)、并行連接節(jié)點(diǎn)的前驅(qū)只能是任務(wù)節(jié)點(diǎn);除分支節(jié)點(diǎn)之外,其它節(jié)點(diǎn)只能有一個(gè)后繼;除連接節(jié)點(diǎn)之外,其它節(jié)點(diǎn)只能有一個(gè)前驅(qū)。
[0028]所述步驟I)中,過(guò)程模型的有些錯(cuò)誤無(wú)法在模型創(chuàng)建階段被發(fā)現(xiàn),作為模型正確性驗(yàn)證的重要環(huán)節(jié),在保存節(jié)點(diǎn)和迀移定義的程序中,也需要進(jìn)行一些約束性檢查,這個(gè)階段的檢查包括以下內(nèi)容:
[0029](I)過(guò)程必須存在開始和結(jié)束節(jié)點(diǎn);
[0030](2)或分支至少要有一個(gè)路徑包含任務(wù)節(jié)點(diǎn);或分支最多只能包含一個(gè)旁路(即直接連接或分支和或連接節(jié)點(diǎn)的迀移)。
[0031](3)過(guò)程的完整性檢查:即除了開始節(jié)點(diǎn),所有節(jié)點(diǎn)都必須存在前驅(qū);除了結(jié)束節(jié)點(diǎn),所有節(jié)點(diǎn)都必須存在后繼。
[0032]所述步驟2)中,需要保存流程時(shí),將遍歷保存在節(jié)點(diǎn)數(shù)組中的節(jié)點(diǎn)對(duì)象,將開始、結(jié)束節(jié)點(diǎn)對(duì)象和任務(wù)節(jié)點(diǎn)對(duì)象的相關(guān)屬性保存到數(shù)據(jù)庫(kù)的節(jié)點(diǎn)定義表中;然后調(diào)把與節(jié)點(diǎn)定義相關(guān)的所有迀移保存到數(shù)據(jù)庫(kù)中。
[0033]本發(fā)明的有益效果為:作為獨(dú)立的產(chǎn)品為業(yè)務(wù)系統(tǒng)提供服務(wù),為用戶提供方便快捷的可視化的流程定制功能,降低了開發(fā)及維護(hù)成本。
【附圖說(shuō)明】
[0034]圖1為本發(fā)明的工作流管理系統(tǒng)參考模型示意圖;
[0035]圖2為本發(fā)明的工作流定義工作的功能示意圖;
[0036]圖3為本發(fā)明的檢查流程示意圖;
[0037]圖4為本發(fā)明的檢查流程中遞歸函數(shù)檢查過(guò)程示意圖;
[0038]圖5為本發(fā)明的過(guò)程模型保存流程示意圖。
【具體實(shí)施方式】
:
[0039]下面結(jié)合附圖與實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
[0040]如圖1所示一種基于jbpm工作流引擎的可視化快速開發(fā)平臺(tái),包括信息配置模塊、流程配置模塊、客戶端服務(wù)器、過(guò)程定義模塊、引擎調(diào)用模塊和管理監(jiān)控模塊,其中:
[0041 ]所述信息配置模塊,用于查看及配置數(shù)據(jù)源及應(yīng)用服務(wù)器信息,查看及配置統(tǒng)計(jì)監(jiān)控信息,與流程配置模塊和管理監(jiān)控模塊連接;
[0042]所述流程配置模塊,用于流程業(yè)務(wù)定制,通過(guò)拖拽來(lái)搭建流程模型將工作流轉(zhuǎn)過(guò)程以圖形方式展示;
[0043]所述管理監(jiān)控模塊,用于監(jiān)控、查看運(yùn)行中的流程實(shí)例,以及修改當(dāng)前流程實(shí)例的流轉(zhuǎn)狀態(tài)