说实话,之前对会签是没有具体概念的,查过jbpm3实现会签的例子,没有太大的体会。
这次有个系统一定要用到会签,用大家的话说,工作流要支持串行和并行;所以准备写一个demo实现一下简单的会签例子。
思路是这样的,流程有两个节点:申请和会签。在会签节点任务创建后,通过程序按会签人数创建出对应的会签子任务,对应到具体的审批人上。
这里有3种情况退回流程:1) 会签中某一个人不同意,就马上退回节点到申请;2) 全部会签结束后,如果有不同意的,则退回节点到申请;3) 全部会签结束后,超过半数不同意的,退回节点到申请。
关键点在于什么时候去创建子任务。
1)我试用了<on event="start">,这个时候task还没有创建出来。
2)使用了<assignment-handler>,可能成功,有两种不同的结果:
2.1) 如果jbpm的所有事务,都是有spring来管理,即jbpm.cfg.xml中是<spring-transaction-interceptor current="true" /><hibernate-session current="true" />这样的设置话,在AssignmentHandler的assign中,是可以创建出subtask的。这里注意不要申明式调用saveTask,让hibernate判读是否去保存。
2.2) 如果jbpm自己管理事务,即去掉current="true"属性,那么就无法保存创建出的subtask,因为在保存的时候,要用到parent task的historytask,而historytask这个时候还没有创建。
当然,针对2.2,我在想,是否可以使用另一个线程来处理创建subtask。类似于会签task全部创建结束后,再触发监听,去创建subtask。所以继续尝试下面的实现方法。
3) 使用<on event="timeout">好像也不行,至少我使用job后,调试遇到了一点问题。
突然回过头来一想,我想这么多方法,无非就是想要实现在恰当的时候去createtask,那么我在“申请”提交后,得到“会签”task,这个时候去create sub task,不就可以了?
不接管jbpm的事务,我还是搞不定。
接下来只能通过接管事务再来试试了。
接管事务,在AssignmentHandler的assign中实现subtask,测试通过。
demo暂时不上传了,如果确实有需要的,再说了。
分享到:
相关推荐
内含jbpm4.4的会签实例,使用customactivity实现,并且内含有使用的丰富工具类,有兴趣的朋友下载学习~
会签源文件 博文链接:https://yy666.iteye.com/blog/660701
jBPM4.4 会签(带加签、减签功能),通过查找资料,个人摸索,利用custom节点实现了会签功能,加签、减签功能是我自己摸索出来的,是不是能满足大家的需求,仅供参考。
jbpm-3_2_2-Api jbpm 著名工作流引擎
jBPM4.4 会签(带加签、减签功能),通过查找资料,个人摸索,利用task节点实现了会签功能,加签、减签功能是我自己摸索出来的,是不是能满足大家的需求,仅供参考。
jbpm的流程部署 流程开始 任务提交 查询已办,待办
BPM4工作流应用开发指南 《jBPM4工作流应用开发指南》是2010...306 第20章 中国特色工作流的jBPM实现 307 20.1 退回 308 20.2 取回 313 20.3 会签 318 20.4 委派 326 20.5 自由流 331 20.6 小结 332 附录A jBPM术语 334
4 准备环境 10 4.1jbpm4.4软件环境 10 4.2相关资源下载 10 4.3安装流程设计器(MyEclipse插件) 11 4.4在MyEclipse中添加jpdl4.4 xsd文件 11 4.5准备jbpm4.4开发环境 13 4.5.1添加jbpm4.4的jar包 13 4.5.2添加并制定...
在开源工作流JBPM 的基础上,利用其特有的事件处理机制,提出了实现任务 回退,任务催办和会签任务等特殊工作流的方法,提高了开发效率并具有良好的灵活性,满 足了实际项目开发的需要。
4 章 任务.....................................................112 4.1 任务实例.................................................113 4.2 任务分配.................................................114 ...
工作流开发会签两套方案(Java源代码实现)
4 章 任务.....................................................112 4.1 任务实例.................................................113 4.2 任务分配.................................................114 ...
BPMX3提供了基于BPMN2标准的流程管理,包括流程版本变量,流程节点表单设置,表单的权限设置,流程任务通知,催办,代办,转化,并行会签、串行会签、补签,子流程,同步任务,多实例任务,人工任务、消息任务、邮件...
流程支持会签、并签、自由指派、自由回退、取回、代理等,并在每个审批节点都可以植入Java代码,实现任何业务需求,提供多种报表实时监控。 技术实现非常适合与研究GWT的人,有GWT的自定义控件、GWT与Spring集成、...