`

JBPM4.4中的退回和取回的功能实现 【转】

 
阅读更多

在JBPM4.4中,退回功能很容易明白,就是执行到当前任务时,当前的任务执行人,可以执行退回的功能,退回到上一个任务上面。取回的功能,我刚开始的时候,也没理解,感觉和退回的功能一样,就是执行人不同罢了,经过查询,终于搞明白了,并且有个比较好的实现方法。

退回和取回原来都是中国特色的工作流的功能。

退回是当前任务执行人,执行当前任务的时候,流转到这个任务的前一个任务上面。

取回是某个任务A被某个人B执行完,通过之后,到了下一个任务上,但是下一个任务人还没执行的时候,B人还可以在取回,让流程在流转到A任务上。

这两个功能,我的实现都是通过动态的去创建transition来实现任务流转的,只不过是执行人不同。从历史中可以查询上一个任务节点的信息,通过在当前任务节点和历史中的上一个任务节点中创建一个transition来实现流程的退回或取回的功能。

代码:

public void completeTaskByCreateTransiton(Task task, String destActivityName,String createTransitionName){
  //这里不会影响事物  
     EnvironmentImpl envImpl = ((EnvironmentFactory)processEngine).openEnvironment();  
     try {  
           
         //动态回退
         ExecutionImpl e = (ExecutionImpl)executionService.findExecutionById(task.getExecutionId());  
         ActivityImpl currentActivityImpl = e.getActivity();  
           
         ProcessDefinitionImpl processDefinitionImpl = currentActivityImpl.getProcessDefinition();  
           
         //生成一个transition  
         ActivityImpl destActivityImpl = processDefinitionImpl.findActivity(destActivityName);  
         TransitionImpl toApply = currentActivityImpl.createOutgoingTransition();  
         toApply.setSource(currentActivityImpl);  
         toApply.setDestination(destActivityImpl);  
         toApply.setName(createTransitionName);  
         this.taskService.completeTask(task.getId(),createTransitionName);  
     } catch (Exception e) {  
         e.printStackTrace();  
     }finally{  
         envImpl.close();  
     }  
 }

代码里面task是流程中当前等待执行的任务节点,destActivityName是历史中上一个任务节点的名称,createTransitionName是动态创建transition的名称,可以为空。

分享到:
评论

相关推荐

    jBPM4.4.rar_jbpm4.4_jbpm4.4 PDF

    在《jBPM4.4开发指南》中,开发者可以了解到jBPM4.4的核心功能和设计原理。该指南通常涵盖以下几个关键知识点: 1. **系统架构**:jBPM4.4基于Eclipse Persistence API(JPA)和Hibernate ORM,提供了持久化服务,...

    jbpm4.4中文开发指南

    jbpm4.4是该系统的某一版本,它提供了丰富的功能,包括流程定义、流程实例的启动、监控和干预,以及与后端系统如数据库和应用服务器的集成。 1. **流程建模**: jbpm4.4使用BPMN(Business Process Model and ...

    jbpm4.4下载地址

    2. **集成能力**:jBPM 4.4可以无缝集成到各种Java EE环境,如JBoss AS、WildFly和GlassFish等应用服务器中,这使得开发者能够利用这些服务器提供的服务,如事务管理、安全性和集群功能。 3. **用户界面**:为了...

    jBPM 4.4用户手册 中文PDF

    jBPM 支持基于BPMN 2.0标准的流程建模,这使得流程图更易于理解和实现,同时也与其他BPM工具的兼容性得到提升。 **二、流程建模** jBPM 4.4 提供了图形化的流程建模工具,用户可以通过拖拽方式创建复杂的流程图。...

    jbpm4.4文档+学习资料

    1. 示例项目:通过分析jbpm4.4提供的示例项目,了解实际应用中的流程设计和实现。 2. 自定义服务:学习如何定义和实现自定义的服务任务,与外部系统交互。 3. 监控与报表:了解jbpm的监控工具和报表功能,用于分析...

    jBPM4.4开发实例

    **jBPM4.4开发实例** jBPM(Java Business Process Management)是一个开源的工作流管理系统,用于管理和执行业务流程。...在实践中不断探索和深入,才能更好地利用jBPM4.4实现业务流程自动化,提高工作效率。

    JBPM4.4 API 【最全API 包含所有实现类】

    这个API包含了JBPM4.4的所有核心组件和功能,使得开发者可以方便地进行工作流定义、执行和监控。本文将深入探讨JBPM4.4 API中的关键知识点,并分析其实现类的重要性。 首先,我们要理解JBPM4.4的核心概念。它是基于...

    JBPM4.4资料的其他补充

    JBPM4.4是JBPM的其中一个稳定版本,发布于2009年,它提供了强大的工作流服务,包括流程定义、流程实例管理、任务管理和监控等功能。在JBPM4.4版本中,开发者可以利用其提供的API和工具来设计、部署和执行复杂的业务...

    jbpm4.4 shh2 项目示例

    综上所述,jbpm4.4 shh2项目示例展示了如何在Java Web环境中使用jbpm实现流程管理,结合SSH2技术栈处理业务逻辑和数据操作。该项目提供了一个学习和实践业务流程自动化管理的平台,有助于开发者深入理解jbpm和SSH2的...

    jbpm4.4 流程运转+驳回+分配组任务+ssh2

    通过深入了解和实践jbpm4.4中的这些功能,你可以构建出强大的业务流程管理系统,有效地协调各个部门和人员的工作,提高组织的运作效率。同时,jbpm4.4还提供了丰富的API和工具,便于开发人员进行二次开发和集成,以...

    jbpm4.4 中文手册

    5. **任务管理**:jbpm4.4提供了任务服务,包括任务分配、完成、查询等功能,使得业务流程中的任务可以被正确地执行和跟踪。 6. **规则引擎**:jbpm4.4集成了JBoss Drools,一个强大的规则引擎,使得业务逻辑可以...

    jbpm4.4 schema.xsd

    jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd

    jBPM4.4.rar_jbpm4_jbpm4.4

    "jBPM4.4.docx" 文件可能是关于 jbPM 4.4 示例的详细文档,它可能包含如何安装、配置、创建和运行流程实例的步骤,以及可能遇到的问题和解决办法,对于学习和使用 jbPM 4.4 是非常有价值的参考资料。 总结,jbPM ...

    jbpm4.4开发用户指南

    jBPM 4.4是Java Business Process Management(业务流程管理)的一个版本,它是一个开源的工作流管理系统,用于实现业务流程自动化。这个压缩包包含了两个关键文档:《jBPM 4.4 开发指南》和《jBPM 4.4 用户指南》,...

    jbpm4.4+ssh

    【jbpm4.4+SSH】是一个集成的Java企业级应用框架,主要涉及的是工作流管理系统jbpm4.4与Spring、Struts2(SSH)三大框架的整合。jbpm4是一个开源的工作流程管理系统,它提供了流程定义、执行、监控和优化等一系列...

    jbpm4.4用户手册中文版

    【jbpm4.4用户手册中文版】是针对企业级工作流管理系统的详细介绍,主要...通过阅读和理解【jbpm4.4用户手册中文版】,读者将能够熟练地利用jbpm4.4进行工作流程的设计、实施和管理,提升企业业务流程的效率和灵活性。

    JBPM4.4流程管理Demo(附学习资料)

    在JBPM4.4Demo中,这些步骤被转化为可执行的工作流任务,通过定义流程图和配置业务规则,实现自动化流转。 4. **UserController.java** - 提到的`UserController.java`是项目中的关键组件,它包含初始化流程所需的...

    jBPM 4.4中文用户手册

    jBPM 4.4用户手册 翻译官方文档 JBoss jBPM Teams 4.4 译者: Lingo 首页: http://www.family168.com/ 论坛: http://old.family168.com/bbs EMAIL: lingosurf168@gmail.com 2009年11月1日 1. 导言 1.1. 许可...

Global site tag (gtag.js) - Google Analytics