在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 jar 包下载jbpm4.4 jar 包下载jbpm4.4 jar 包下载jbpm4.4 jar 包下载
jbpm4.4中文开发指南 ,官方翻译,新手必读!
jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd
jbpm4.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. 许可...
JBPM4.4与SSH2之整合(附完整源码) 这些天,想着把jbpm4.4与ssh2整合一下,由于之前从来没用过jbpm,也不知道各版本之间会有什么差异(经过网上的收集对比,还真有些差异),整合起来,还真是有些步履艰难。收集了...
jBPM4.4开发指南 开发手册 JBPM4.4 开发
资源名称:JBPM4.4视频教程(22集附源码)资源目录:【】(01)jbpm4.4简介【】(02)JBPM4.4开发环境搭建【】(03)jbpm4.4环境搭建续【】(04)jbpm4.4配置文件和开发前准备【】(05)jbpm4.4部署流程发起流程实例【】(06)...
jBPM4.4入门开发实例
jbpm4.4开发指南,jbpm4.4用户指南
jBPM4.4课程文档
首先感谢原创,相关信息请查询原创。... 看到好多朋友找不到相应的jar包,致使jbpm4.4的学习遇到困难,现提供除jbpm4.4自身jar包外的所有包,以便大家更快的学习jbpm4.4,希望能帮朋友们少走弯路!
JBPM4.4之HelloWorld示例
jBPM 4.4 用户手册 中文版 PDF格式
JBPM4.4学习文档.ppt
jbpm4.4 工作流框架 笔记 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现...
jbpm4.4+ssh配置
jBPM4.4数据库表简单介绍
jbpm4.4 ibatis-spring 整合
终于把jbpm4.4上传完了,由于csdn最大容量才50m,所以我把这个jar包分成三个部分。