`
yuyanshan
  • 浏览: 49326 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

jbpm学习之forks-join实现撤消

阅读更多
采用forks-join实现撤消,现在基本实现不过还有一些值得注意的问题,这些问题应该在程序设计中解决,在这就不多说了。
实现过程,主要能过设计join结点的nOutOfM属性,将其设置为1就行,通过一个action完成,这个action与进入结点事件node-enter绑定。实现:
   Join join = (Join) executionContext.getNode();
   join.setNOutOfM(1);

完成这一步后,当所有路径中有一条路径到达join后,join结点就会向下运行。
这里还有一个比较重要的问题值得注意,那就是其它没有完成的任务如审批的任务应该让它结束,而不是想用简单的ti.end(),而是要当前任务结束,这个问题我还不是太明白,所以就说说我怎么做的吧。
由于前面的工作,现在join结点只要有一路到达它,它就会往下运行,所以,结束其它任务可以通过,离开结点事件node-leave 来实现。
具体代码如下:
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());
			}
		}

主要的代码就是这一点,仔细看看,理解了思路和话,结合自己的代码应该没有什么问题。
不过其中是有一些值得思考的问题的,如当你结束的时候,审批有可能刚好完成,也就是如何同步,我还不知道jbpm能不能解决这个问题如果不能,那就只能在程序设计时想办法了。
不好意思,我也是新手,希望对大家有帮助。
说真的,感觉是真真的高手从来都不帮我们这些新人,可能是我们的问题在过单间,只是我想说,再高的高手也是一点点学习成长起来的。好了,不发牢骚了。
分享到:
评论
1 楼 yangjun82101 2008-11-04  
//只要这样就行了,先取消流转,再取任务。这样就不会转到下会的任务。
unfinishedTaskInstance.setSignalling(false);   
unfinishedTaskInstance.cancel();

相关推荐

    jbpm下载 jbpm-jpdl-suite-3.2GA -(5)分开压缩(共5个文件)

    jbpm-jpdl-suite-3.2GA -(5)分开压缩(共5个文件)jbpm下载 jbpm-jpdl-suite-3.2GA -(5)分开压缩(共5个文件)jbpm下载

    jbpm-jpdl-suite-3.2.3安装配置.doc

    JBPM,全称为Java Business Process Management,是一款基于J2EE平台的轻量级工作流管理...对于开发者来说,了解jbpm的工作原理和配置细节是至关重要的,这将有助于更好地利用其功能,实现高效、灵活的业务流程管理。

    jbpm-starters-kit-3.1.2.part2.rar

    jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,共两卷

    jbpm-jpdl-suite-3.2.3的安装配置

    jBPM,全称为Java Business Process Management,是一个开源的工作流管理系统,主要应用于J2EE环境中。自2004年10月18日成为JBoss企业中间件平台的一部分以来,jBPM一直在不断发展,其核心特性是使用了JBoss jBPM ...

    jbpm5.2学习1------安装与配置

    **jbpm5.2学习1——安装与配置** jbpm(Java Business Process Management)是一款开源的工作流管理系统,它提供了一套完整的解决方案,用于管理和执行业务流程。jbpm5.2是该系统的较早版本,但即便如此,它仍包含...

    jbpm-jpdl-designer-site-3.1.7.zip

    jbpm-jpdl-designer-site-3.1.7.zip jbpm-jpdl-designer-site-3.1.7.zip jbpm-jpdl-designer-site-3.1.7.zip

    JBPM-----PPT

    通过学习这些PPT,你将能够了解JBPM的工作原理,掌握流程设计、部署和监控的方法,同时也能了解其与外部系统的集成方式,从而在实际项目中有效地运用JBPM来优化和自动化业务流程。无论是初学者还是有经验的开发者,...

    jbpm-jpdl-suite-3.2.3.zip

    jbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3....

    jbpm-workitems-5.1.0.Final-sources.jar

    jbpm-workitems-5.1.0.Final-sources.jar jbpm5 源码

    jbpm-jpdl-suite-3.2.GA.zip-6

    jbpm-jpdl-suite-3.2.GA.zip

    jbpm-bpmn2-5.1.0.Final.jar

    jbpm-bpmn2-5.1.0.Final.jar jbpm5

    jbpm-jpdl-designer-nodeps-3.1.4

    "jbpm-jpdl-designer-nodeps-3.1.4" 是一个针对Jbpm工作流管理系统中的JPDL设计工具的无依赖版本,主要用于创建和编辑JPDL(Jbpm Process Definition Language)文件。该资源包含了该工具的详细文档、许可证协议以及...

    jbpm-4.3-src.rar_bdf-jbpm4 src _jboss 4.3_jboss jbpm4.3_jbpm-4.3

    5. **源码分析**:通过查看jbpm-4.3-src中的源码,开发者可以深入了解jBPM的工作原理,学习如何实现复杂的流程控制逻辑,以及如何自定义任务服务、事件处理和规则引擎等核心组件。 6. **学习路径**:对于初学者,...

    jbpm-jpdl-suite-3.2.GA.zip-3

    jbpm-jpdl-suite-3.2.GA.zip

    jbpm-flow-builder-5.1.0.Final.jar

    jbpm-flow-builder-5.1.0.Final.jar jbpm5

    jbpm-jpdl-suite-3.2.GA.zip-5

    jbpm-jpdl-suite-3.2.GA.zip

    jBPM jbpm-installer-3.2.6.GA.jar

    jbpm-installer-3.2.6.GA.jar

    jbpm-starters-kit-3.1.2.zip官方下载地址

    jbpm-starters-kit-3.1.2.zip官方下载地址 版本里包括一个JBPM流程设计器的Eclipse插件,和一个用JBOSS作为服务器的示例流程等相关文件。解压jbpm-starters-kit-3.1.2.rar到某个特定目录,这里我们首先用到的是包里...

    jbpm-3.1.2.zip_jbpm_jbpm 3.1.2_jbpm-3.1.2.rar_jbpm3.1.2_工作流

    jbpm-3.1.2.zip 文件包含了 jBpm 的一个重要版本——jBpm 3.1.2,这是一个开源的工作流管理系统,专为构建灵活且可扩展的业务流程解决方案而设计。jBpm 提供了一种方式,使得开发者能够用简单而强大的语言来表达业务...

Global site tag (gtag.js) - Google Analytics