说实话,之前对会签是没有具体概念的,查过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.3如何实现会签功能,并分享相关的源码和工具使用。 1. jbpm4.3概述: jbpm4.3是jbpm的一个较旧版本,但仍然包含许多工作流管理的核心特性,如流程定义、任务分配、事件处理等。它基于Java平台...
解压并运行这个示例,可以更深入地理解JBPM4.3和Spring如何协同工作以实现会签功能。 总之,这个JBPM4.3与Spring的会签实例展示了如何在企业级应用中有效地管理和控制业务流程。通过学习和实践这样的实例,开发者...
在JBPM4.4中,实现会签功能通常需要以下几个步骤: 1. **设计流程模型**:使用BPMN(Business Process Modeling Notation)语言或JBPM提供的图形化工具(如jBPM Designer)设计流程模型,定义会签节点。在这个节点...
在实现会签时,我们可以创建一个custom节点,然后在其中编写Java代码或者使用脚本来处理会签逻辑,包括分配任务给审批人、处理审批结果以及根据需要进行加签或减签操作。 加签功能是在流程运行过程中,根据业务需求...
本文将深入探讨如何在jbPM中实现会签以及加签、减签功能,并提供相关实践指导。 1. **会签概念与实现** 会签是指在流程中设置一个环节,需要多个参与者依次或同时进行审批。jbPM通过定义工作流模型,利用task节点...
jbpm-3_2_2-Api jbpm 著名工作流引擎
在本教程中,我们将深入探讨jbpm中的会签和串签功能,以及如何进行流程部署、启动流程、任务提交、查询已办和待办任务。 首先,让我们了解流程部署的概念。在jbpm中,流程部署是将一个流程定义文件(通常是.bpmn或....
在jbpm中,"fork & join"机制是实现并行处理和流程控制的关键概念,尤其在处理会签(多个审批人同时参与审批)等场景时显得尤为重要。 "fork"在jbpm中指的是流程分支,当流程到达一个fork节点时,流程会分裂为多个...
开发者可以通过查看和运行这些源代码,学习如何创建用户交互界面、与jbpm4服务交互以及如何实现流程的生命周期管理。 jbpm4还支持扩展和定制,例如,你可以通过编写自定义的工作流监听器、任务监听器和事件处理器来...
在jbpm中实现会签,主要涉及到以下几个关键知识点: 1. **工作流模型**:jbpm使用BPMN(Business Process Model and Notation)标准来定义流程模型。BPMN提供了一套图形化的符号,用于描绘业务流程,其中包括并行...
此外,jBPM4还支持与规则引擎(如Drools)的无缝集成,实现了业务规则与流程的统一管理。 ### 2. 安装与环境配置 要开始使用jBPM4,首先需要安装以下基础环境: - **Java Development Kit (JDK)**:确保你的系统上...
1. **流程定义**:代码可能会定义一个流程实例,其中包含并行网关来实现会签。并行网关将任务分支到不同的参与者,每个参与者完成自己的签署后,所有分支必须汇合,流程才能继续。 2. **任务监听器**:为了跟踪各个...
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
本主题聚焦于"工作流开发会签两套方案(Java源代码实现)",我们将深入探讨两种Java实现会签功能的方法,并结合JBPM(Java Business Process Management)框架,为你揭示如何高效地构建这样的系统。 首先,我们需要...
3. **网关**:用于控制流程的分支和合并,如并行网关实现任务并行执行,决策网关根据条件决定流程走向。 4. **连接线**:指示流程的流转路径,可能带有条件表达式,决定何时从一个活动转移到另一个。 5. **结束事件*...
4. **jbpm4.4工具**: - **jbpm Designer**:图形化流程设计器,用于创建和编辑流程定义。 - **jbpm Console**:Web管理界面,用于监控流程实例、任务管理和日志查看。 - **jbpm Workbench**:集成了Designer和...