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