摘要:
假期就要结束了,今天看了网上大家讨论的JBPM的回退实现的思路。特别是上杉的BLOG给了我很大的启发参见http://jbpm.group.javaeye.com/group/blog/214963可是这篇BLOG上没有代码实现于是今天闲来无事用代码实现了一下。1:我们知道JBPM系统,决定一个流程当前在什么环节的关键是task 和toker。他们在数据库中的表分别是JBPM_TASKINSTANCE,JBPM_TOKEN。我的设计思想是,放弃JBPM自身的API,因为我看了一段时间的JBPM的API,没有找到可以灵活操作taskinstance,和token的方法。于是自己写sql语句自己操 阅读全文
摘要:
(本篇文章的回退实现,是建立在前一篇文章提到的功能实现之上,重复的地方不在详说了) 终于有一天,一个同事跑来告诉我,流程回退功能出问题了,并告诉我他用了分支节点.看来又到了解事实真相,解决问题的时候了.先画个流程草图. a---b---fork---d---join---f---g \ / c-------e 经过测试发现对分支的回退会出现两个问题: 1.当流程执行到分支内节点时(d,c,e),如果要退回到b任务,并把分支内的任务关闭掉,当再次进入分支节点后,流程就只能运行到join节点,不能到达F. 2.当流程执行到F时,如果要将流程回退到一个分支内的任务上(d,c,e),流程就也只能运 阅读全文
摘要:
在我们做流程项目时,总会有一种情况是流程已经跑到后面了,但客户要求我要从某某任务开始重走,而且还是要求从什么地方都可以重走.如果你要是按jbpm的思路做,就要到处划线,最后流程图是乱七八糟,(当然你客户不看流程图就没问题,呵呵). 很多了解jbpm工作原理的人都知道要想让流程回到以前的一个任务重新开始,需要控制任务开启与关闭,还有就是要控制令牌的指向的节点.其实在实际应用中要跟复杂一些比如,要将流程回退到一个分支中,或从一个分支回到到分支开始之前任务上.从子流程回退到主流程中,从子流程回到前面的一个子流程中......(&%#$*? 更复杂的我就不说,用的比较少了).对于以上情况我们会逐个讨论 阅读全文