由于现在产品是一个ERP系统,对于工作流的需求并不像我曾经做过的政府审批系统的复杂。所以对于工作流的的技术选择,范围也相对广的多。XPDL相对要熟悉一些,但是看了相关的开源框架,研究了一下Shark,发现了很多问题。对于Shark这样庞大的工作流系统,要整合到产品中,单从技术角度来看就会有很多问题,DODS很难替换成Hibernate,系统代码量庞大,也不利于改进,所以综合考虑,最终选择了JBPM这个开源工作流。
产品中需要一个工作流设计器,JBPM的设计器基于Eclipse,这点不符合我们的要求。我们需要的是Online WorkFlowEditor,直接在页面上画出流程图,直接在页面上发布,省去了流程文件的上传发布的一系列操作。所以最后采用了Applet的方式,当然我们把jre安装环境集成到了系统中,页面检测IE的jre选项,自动安装JRE插件。
Applet采用了Jgraph这个开源库,用了下,确实很不错,几个demo做的也很漂亮。
项目中做的设计器,画好流程图,对于每个节点,选择相应的组件,生成后直接上传到服务器端。下面是一个截图: