我想找一个开源工作流上载的地址,大家共同探讨一下,我想做一个二期版本,大致提供与聚合,以及以及与分支,以及嵌套流程,以及自动任务,大家用过后有什么好的想法可以email联系我
这个工作流引擎目前有两个版本,一个是。NET,一个是j2ee版本,从性能上j2ee版本要优越一些,前些日子用oracle数据库在del的服务器上做了压力测试,每秒的处理能力超过300个/秒,当时并发用户为500个,活动的工作流实例维持在10万左右,应该能满足大部分业务的需求。其实我这个工作流的特点就是简单,提供通用的ui界面,但是用jsp和asp,你如果用c/s的界面,你只能调用接口了,自己开发界面了。
当然你也需要做一些工作
1、本版本是用jboss3.0编译的,你如果用其他j2ee服务器自己编译一个版本
2、你需要通过一个机制映射你应用的角色与工作流的角色定义
例如:我提供了一个loadoperator.jsp页面你需要把你的profile和工作流的profile映射
yourprofile=session.getAttribute("yourprofile");
Operator workflowprofile=new Operator();
workflowprofile.setValidateUser(yourprofile.getUser());
workflowprofile.setRoles(yourprofile.getRoles());
3,你需要自己编写工作流描述文件,不过这很简单,我上次有个项目用三十多个流程,我编写完只需半天时间
4 业务需要自己开发了,我们的工作流只负责工作流的权限以及流程,而你的业务需要是基于b/s的,如果是c/s,需要修改,描述很简单
<WorkflowDesc name='business1' version='1.0' expiredtime='10000' isAreaControl='1' desc='业务1'>
<active no='1' name='用户填写申请单'>
<application name='1' type='url'>
<url>1.jsp<url>
</application>
<Operators>
<operator role='userlogin' type='creater'/>
</Operators>
<Parameters>
<Parameter name='usermessage' type='string' mode='OUT' desc='用户申请'/>
<Parameter name='usermoney' type='string' mode='OUT' desc='金额'/>
</Parameters>
<TransferCondtions>
<TransferConditon mode='out'>
<if>
<when condition='usermoney<1000'>
<goto next='terminate'>
</when>
<other >
<if>
<when condition='usermoney>10000'>
<goto next='complete'>
</when>
<other>
<goto next='2'>
</other>
</if>
</other>
<TransferConditon>
</TransferCondtions>
</active>
<active no='2' name='管理员审批'>
<application name='1' type='url'>
<url>2.jsp<url>
</application>
<Operators>
<operator role='admincheck' type='all'/>
<operator validater='tiger' type='single'/>
</Operators>
<Parameters>
<Parameter name='usermessage' type='string' mode='INOUT' desc='用户申请'/>
<Parameter name='usermoney' type='string' mode='INOUT' desc='金额'/>
<Parameter name='optiontype' type='string' mode='OUT' desc='审批意见' />
<Parameter name='optioncontent' type='string' mode='审批内容'/>
</Parameters>
<TransferCondtions>
<TransferConditon mode='out'>
<if>
<when condition='optiontype=1'>
<goto next='1'>
</when>
<other >
<goto next='complete'>
</other>
</if>
</other>
<TransferConditon>
</TransferCondtions>
</active>
你需要开发1.jsp,以及2.jsp,但他们不需要在一个web服务器上,例如1.jsp是在用户门户上,提交时需要在处理的action填加
如下代码:
WorkFlowEngineDelete engine=new WorkFlowEngineDelete();
try
{
//如果是来自业务处理后的参数
//request.setAttribute("yourparam",'11");
engine.flowgo(request);
//your business code
......
}catch(Exception ex)
{
if(!(ex instanceof WorkflowException))
{
engine.rollback();
}
}
当然你如果在ejb调用是不需要engine.rollback();
5 其他的就不用关心了,我提供了代办任务查询截面界面,流程查看界面,某个实例详细查看界面(可以将每步的由谁处理,处理时间,相应保存的应用数据显示出来)
你只需将这些页面挂到你的门户中去
6 如何启动一个新流程,这个提供多种方式,例如连接〈url href="workflowtransfer.jsp?workflowname=business1&workflowversion=1.0&activeno=1"
">申请报销〈/url>,它会自动转向你的界面,如果你修改了流程,只需将version=1.1,但以前申请的流程仍然存在
7 该工作流也支持分地域的处理,如果有需要可以给我说