jbpm学习之forks-join实现撤消
采用forks-join实现撤消,现在基本实现不过还有一些值得注意的问题,这些问题应该在程序设计中解决,在这就不多说了。
实现过程,主要能过设计join结点的nOutOfM属性,将其设置为1就行,通过一个action完成,这个action与进入结点事件node-enter绑定。实现:
Join join = (Join) executionContext.getNode();//取得join子令牌,即没有处理或是执行的任务的token,这话说的有点不对,主要是我也还没弄清楚。我的理解就是取得没有结束的子令牌。Map map = executionContext.getToken().getActiveChildren();Iterator it = map.values().iterator();while(it.hasNext()) {Token token = (Token) it.next();Collection<TaskInstance> unfinishedTasks =executionContext.getTaskMgmtInstance().getUnfinishedTasks(token);for (TaskInstance unfinishedTaskInstance : unfinishedTasks) {//这里就是我说的不是单间的end,其实end中是让任务向下运行,如果还有其它的后续结点,那么一样是会出问题的,应该如下做:将当前任务结束。unfinishedTaskInstance.setOpen(false);unfinishedTaskInstance.setSignalling(false);unfinishedTaskInstance.setEnd(Clock.getCurrentTime());}}