在JBPM4流程设计中,让让当前节点回退到该节点以前的任意节点,如图,如果想从task3回到task1,可以使用的方法有:
①创建一个Transition对象,从task3到task1
/**
* 动态创建连接当前任务节点至名称为destName的节点的Transition
* @param taskId 任务节点ID
* @param sourceName 源节点名称
* @param desName 目标节点名称
*/ public void addOutTransition(ProcessDefinitionImpl pd,String sourceName,String desName){
ProcessEngine pe = Configuration.getProcessEngine();
EnvironmentFactory ef =(EnvironmentFactory)pe;
EnvironmentImpl evti = null;
try{
evti = ef.openEnvironment();
ActivityImpl sourceActivity = pd.getActivity(sourceName);
TransitionImpl tran = sourceActivity.createOutgoingTransition();
ActivityImpl desActivity = pd.getActivity(desName);
tran.setName("to"+desName);
tran.setDestination(desActivity);
sourceActivity.addOutgoingTransition(tran);
}catch(Exception e){
e.printStackTrace();
}finally{
if(evti != null)evti.close();
}
}
/**
* 动态删除连接sourceName与destName的Transition
* @param taskId
* @param sourceName
* @param desName
*/
public void removeOutTransition(ProcessDefinitionImpl pd,String sourceName,String destName){
EnvironmentFactory environmentFactory = (EnvironmentFactory) processEngine;
EnvironmentImpl env=null;
try {
env = environmentFactory.openEnvironment();
//取得当前流程的活动定义
ActivityImpl sourceActivity = pd.findActivity(sourceName);
//若存在这个连接,则需要把该连接删除
List<Transition> trans=(List<Transition>) sourceActivity.getOutgoingTransitions();
for(Transition tran:trans){
if(destName.equals(tran.getDestination().getName())){//删除该连接
trans.remove(tran);
break;
}
}
}catch(Exception ex){
}finally{
if(env!=null)env.close();
}
}
这样再通过take()、completeTask()等方法就可以回退了
②调用ProcessEngin.execute()方法
③调用ExecutionImpl.moveTo()方法
推荐使用第一种
- 大小: 11.3 KB
分享到:
相关推荐
本文将深入探讨如何在JOffice2中实现JBPM4任务的回退功能,这在处理复杂流程时尤其重要,允许用户纠正错误或根据需要调整流程方向。 任务回退在JOffice2中有两种主要的实现方式: 1. **完成当前任务并生成新的后退...
总结来说,这个知识点主要涵盖了如何在JBPM 4.4中实现一种智能的流程回退机制,它通过分析流程实例的状态和历史记录,使得流程能够灵活地回退到合适的位置,而无需硬编码回退目标。这对于优化业务流程、提高用户体验...
JBPM7 基础开发是基于流程引擎的开发方式和实现方式的简单说明。流程引擎是一个自动化管理和优化流程的工具,旨在提高不同部门之间业务的整合效率,降低开发和维护成本。 概念1:BPM(业务流程管理) BPM 是一种...
开发者可以通过它了解如何设计和实现一个实际的业务流程,同时掌握回退功能的实现方法。 总之,JBPM4.4的请假流程实例是一个全面展示流程管理能力的案例,它涵盖了从流程设计、部署到运行的全过程,并特别强调了回...
例如,它未直接支持“回退”、“取回”、“会签”、“委派”等功能,这些在中国被认为是常见的业务场景。然而,通过深入理解jbpm的架构和设计思路,开发者可以探索并实现这些特定需求的解决方案,以满足中国特色的...
- 在中国的流程自动化和信息化场景中,面对会签、回退等特殊流程处理需求,jBPM4能够提供相应的解决方案。 在实际应用中,jBPM4的上述技术特点和功能可以帮助企业更好地管理和优化流程,从而提高效率和透明度。...
9. **异常处理与回退**:jbpm允许定义异常处理和回退策略,当流程执行过程中遇到问题时,可以根据预设规则进行错误恢复或流程回滚。 10. **持久化与事务管理**:jbpm使用JPA(Java Persistence API)进行数据持久化...
【标题】"JBPM视屏教程共9节 jBPM 4视频教程06流程驳回"揭示了关于企业级工作流管理系统jBPM的重要学习资源,特别关注了流程的回退操作。jBPM是一个开源的工作流程管理系统,用于设计、执行、管理和监控业务流程。在...
业务流程执行:流程的启动、任务的提交、回退、撤销、取回、处理任务等操作、 实用需求实现:执行权限、工作流留痕、事务提醒 只需一套实现,你的业务只要在挂接中配置则可以具有工作流功能 业务方面:OA项目实战...
9. **回退和重试机制**:可能涉及如何处理流程中的错误,以及如何设计和执行回退策略。 这些知识点构成了一套完整的入门教程,帮助开发者了解并掌握jBPM 4的基础操作和核心概念。通过观看视频、阅读PDF文档和查看...
- 提供API进行流程实例的控制,如挂起、激活、终止流程实例,以及对当前活动的回退和前进操作。 - 可以通过信号、事件来影响流程的执行路径,实现动态流程控制。 8. **监听器与扩展** - jbPM4允许添加自定义监听...
7. **异常处理**:掌握如何在流程中处理异常情况,如错误处理、回退机制等。 总之,【jbpm4.4 demo】是一个宝贵的学习资源,对于想要理解和应用jbpm的开发者来说,它可以提供实践操作的经验,帮助他们更好地理解和...
9. **错误处理和补偿**:jbpm支持异常处理和流程回退,允许在流程执行中处理错误,并通过补偿任务修复流程状态。 10. **持续集成与自动化测试**:通过Maven或Gradle等构建工具,可以设置持续集成流程,同时编写测试...
这种做法允许流程设计者为每个任务定义明确的回退路径,从而能够实现复杂和多层次的任务回退逻辑。这样不仅提高了任务回退的灵活性和可控性,也大大简化了实现难度,使得开发人员能更专注于业务逻辑本身,而不必深陷...
这一操作可以通过一个Struts Action实现,触发jbpm流程的启动。 2. **部门经理审批**:报销申请提交后,流程会流转到部门经理进行审批。jbpm可以根据预定义的规则判断审批权限,并发送通知。 3. **财务审核**:...
- **人力资源管理**:如何使用jBPM4实现员工入职、离职等流程的自动化。 - **订单处理**:展示如何构建一个涵盖多个部门协作的订单处理工作流。 本指南详细介绍了jBPM4的各个方面,包括基础概念、建模方法、流程...
- **流程执行**: 支持并发、分支、循环等复杂流程结构,以及异常处理和回退机制。 - **任务管理**: 包括任务的分配、领取、委托和监控。 - **规则集成**: 集成了Drools规则引擎,使得流程可以根据业务规则动态变化...
8. **流程实例的控制和调试**:API提供了丰富的功能,如挂起、激活、回退和跳过流程节点,这对于测试和调试流程行为至关重要。 9. **规则引擎集成**:JBPM集成了Drools规则引擎,允许在流程中嵌入复杂的业务规则。...
FixFlow不仅支持常见的工作流功能,如加签、会签、回退等“中国式工作流”,而且提供了更为友好的用户界面和更完善的本地化支持。 #### 五、总结 综上所述,JBPM与Activiti各有千秋,在不同的应用场景下展现出不同...