由于現(xiàn)在產(chǎn)品是一個(gè)ERP系統(tǒng),對于工作流的需求并不像我曾經(jīng)做過的政府審批系統(tǒng)的復(fù)雜。所以對于工作流的的技術(shù)選擇,范圍也相對廣的多。XPDL相對要熟悉一些,但是看了相關(guān)的開源框架,研究了一下Shark,發(fā)現(xiàn)了很多問題。對于Shark這樣龐大的工作流系統(tǒng),要整合到產(chǎn)品中,單從技術(shù)角度來看就會有很多問題,DODS很難替換成Hibernate,系統(tǒng)代碼量龐大,也不利于改進(jìn),所以綜合考慮,最終選擇了JBPM這個(gè)開源工作流。
產(chǎn)品中需要一個(gè)工作流設(shè)計(jì)器,JBPM的設(shè)計(jì)器基于Eclipse,這點(diǎn)不符合我們的要求。我們需要的是Online WorkFlowEditor,直接在頁面上畫出流程圖,直接在頁面上發(fā)布,省去了流程文件的上傳發(fā)布的一系列操作。所以最后采用了Applet的方式,當(dāng)然我們把jre安裝環(huán)境集成到了系統(tǒng)中,頁面檢測IE的jre選項(xiàng),自動安裝JRE插件。
Applet采用了Jgraph這個(gè)開源庫,用了下,確實(shí)很不錯(cuò),幾個(gè)demo做的也很漂亮。
項(xiàng)目中做的設(shè)計(jì)器,畫好流程圖,對于每個(gè)節(jié)點(diǎn),選擇相應(yīng)的組件,生成后直接上傳到服務(wù)器端。下面是一個(gè)截圖: