JBPM开发模式的自我分析

本文探讨了在JBPM中业务逻辑处理的不同方法,一种是在ActionHandler中进行业务处理,另一种是在BusinessService中处理。文章分析了两种方法的优缺点,并提出了推荐方案。
JBPM开发至今,总结了不少经验,下面是我总结出来的一些想法,大家共勉: 首先,业务处理的位置我们都知道在MIS系统里,如果是在OA项目中引入了工作流,主要是将流程逻辑和业务逻辑分开,流程数据持久化到流程引擎表,业务数 据持久化到业务表。这就涉及到业务逻辑在哪里处理的问题。在JBPM中,是在ActionHandler还是在Business Service中呢?

       ActionHandler中:我们将业务在JBPM的回调接口ActionHandler实现中处理,将业务表单对象通过 ContextInstance的setTransientVariables()传入,在ActionHandler中持久化,也就是 说,ActionHandler是我们的业务处理主体,可以通过在Task实例中记录业务表单ID。另外,数据库的Connection可以通过 ActionHandler的ExecuteContext 参数来取得!

       在Business Service中呢:这个Service就对应于用Spring框架时的Service,我们可以在service方法里面调用JBPM的API,如 JbpmConfiguration.getInstance().createJbpmContext(); TaskInstance ti = jContext.getTaskInstance(tiid); 将业务数据都持久化到JBPM的活表里,这样只在一个数据库Conntection上,可以避免分布式事务的问题。

      上面的这两种方式,第一种是我推荐的,其基本思想是将工作流引擎当成一个集成框架,一切以流程为主线。第二种是将工作流引擎当成辅助的第三方库。两种方式对系统的侵入性都非常大,无侵入性我则认为不太现实。

转载于:https://my.oschina.net/u/1269662/blog/172638

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值