`

activiti5.11跳转

阅读更多
activiti5.11的跳转问题,除了在流程定义文件中使用分支节点控制流程的转向外,在java程序代码中同样可以控制流程的转向。
如在流程定义文件中:
 <process id="process1" name="process1" isExecutable="true">
      
    <startEvent id="startevent1" name="Start"></startEvent>
    
    <sequenceFlow id="flow1" name="" sourceRef="startevent1" targetRef="serviceTask1"></sequenceFlow>
    <serviceTask id="serviceTask1" name="serviceTask1" activiti:class="com.activiti.testcase.turn.ServiceTask1Listener"/>
    
    <sequenceFlow id="s2" sourceRef="serviceTask1" targetRef="userTask2" ></sequenceFlow>
    <sequenceFlow id="s3" sourceRef="serviceTask1" targetRef="manualTask1" ></sequenceFlow>
    
    <userTask id="userTask2" name="userTask2" activiti:assignee="gonzo"></userTask>
    <manualTask id="manualTask1" name="manualTask1"></manualTask>

    <sequenceFlow id="s4" targetRef="userTask2" sourceRef="endevent1"></sequenceFlow>
    <sequenceFlow id="s5" targetRef="manualTask1" sourceRef="endevent1"></sequenceFlow>
    
    <endEvent id="endevent1" name="End"></endEvent>
  </process>

其中serviceTask 的类中是实现流程转向的具体代码。
首先说明:要使用serviceTask调用外部的java类,则该java类必须实现JavaDelegate或ActivityBehavior接口,若需要控制流程的转向则需实现 ActivityBehavior接口,因为该接口功能更强大。
来看ServiceTask1Listener类,该类只有一个execute方法:
public class ServiceTask1Listener implements ActivityBehavior {

	public void execute(ActivityExecution execution) throws Exception {
	
	 //流程定义id	
	 String procDefId = execution.getProcessDefinitionId();
	 
	 RepositoryServiceImpl repositoryService =  (RepositoryServiceImpl)execution.getEngineServices().getRepositoryService();
	 
	 //流程定义的实现
	 ProcessDefinitionImpl processDefinitionImpl =  (ProcessDefinitionImpl)repositoryService.getDeployedProcessDefinition(procDefId);
	
	 //当前执行的活动节点
	 ActivityImpl ac = (ActivityImpl)execution.getActivity();
	 //创建输出的执行路径
	 TransitionImpl transition =  ac.createOutgoingTransition("flow1");
	 
	 //设置输出路径的目标节点
	 ActivityImpl destination = new ActivityImpl("serviceTask1", processDefinitionImpl);
	 destination.setActivityBehavior(this);
	 //设置目标节点
	 transition.setDestination(destination);
	 
	 List<PvmTransition> pvms =  execution.getActivity().getOutgoingTransitions();
	 //[ s2,s3,flow1]
	 //选用刚刚创建的执行路径
	 execution.take(pvms.get(2));
	 
	}
}

分享到:
评论
1 楼 wslovenide 2013-01-14  

相关推荐

    activiti 5.11 snapshot

    官方的activiti5.11快照,经本人测试可用,但是还未中文化,希望多多分享

    Android开发之activiti节点跳转

    在涉及到Activiti的使用时,经常会遇到需要动态控制流程节点跳转的情况,尤其是在处理多级审核流程时。本文将深入探讨如何在Android开发中实现Activiti节点的灵活跳转,以及解决由此产生的冗余和灵活性问题。 首先...

    适配达梦数据库的activiti流程引擎主要jar包(activiti-engine-7.1.0.M3.1.jar已修改源码)

    3、已经对该流程引擎的activiti-engine-7.1.0.M3.1.jar进行了源码修改,下载直接使用即可,同时支持达梦数据库服务器多个数据库实例的场景,网上大多修改的方法只适合单个数据库实例(多个数据库实例下流程引擎的数据...

    activiti开发所需jar包

    这个压缩包"activiti5.11"很可能包含了Activiti 5.11版本的所有核心组件和依赖。Activiti 5是一个成熟且广泛使用的版本,它支持BPMN 2.0标准,提供了一个直观的模型化工具,以及丰富的API和集成选项。 以下是...

    Activiti5实现任务撤回,任意跳转(代码+注释 spring-activiti-withdraw.zip)

    activiti没有撤回,由于业务的需求需要实现撤回,在参考别人代码后以两种方式实现了任意节点的跳转。代码真实可用,如有问题可联系我 第一种方式: 1、获取当前节点,获取跳转节点 2、获取节点的所有流出流向,把...

    activiti modeler.zip_activiti_activiti-modeler_java_zip

    Activiti Modeler是一款基于Java开发的流程建模工具,它主要与Activiti BPMN(业务流程管理Notation)引擎紧密配合,为用户提供了一个直观、易用的界面来设计、模拟和部署业务流程。Activiti是Alfresco公司推出的一...

    Activiti-activiti-5.22.0 源码

    Activiti 是一个开源的工作流程引擎,它主要用于自动化业务流程。这个源码包是 Activiti 5.22.0 版本,包含了整个框架的源代码,为开发者提供了深入理解 Activiti 内部机制的机会。以下是一些关于 Activiti 的核心...

    Activiti工作流中式流程(9.76G)

    activiti系列第二期课程课程重点讲解中国式的常用流程,比如activiti中modler设计器扩展属性、activiti中xml扩展自定义属性、activiti任意节点跳转、activiti多实例、activiti任务节点跳转、activiti多实例、...

    activiti适配达梦数据库教程

    Activiti 适配达梦数据库教程 activiti 是一个开源的 Workflow 和 BPM system,它提供了强大的工作流引擎和业务流程管理功能。然而,activiti 默认支持的数据库只有 MySQL、 PostgreSQL、Oracle 等少数几种,而达梦...

    activiti designer 5.18 eclipse eclipse插件 activiti插件 activiti设计

    Activiti Designer是基于Eclipse的一款流程建模工具,主要用于设计和管理Activiti工作流引擎的业务流程。在 Activiti Designer 5.18 版本中,它为开发者提供了直观的图形化界面,使得创建、修改和理解业务流程模型变...

    activiti-5.22.0zip下载

    Activiti 是一个开源的工作流和业务流程管理(BPM)平台,它被广泛用于企业级应用中,以实现流程自动化和提升工作效率。标题中的 "activiti-5.22.0zip下载" 指的是Activiti的一个特定版本——5.22.0的压缩包文件,...

    activiti5.22jar包_activiti_

    Activiti 是一个开源的工作流和业务自动化引擎,它在Java平台上运行,并且与Spring框架高度集成。这个"activiti5.22jar包"是Activiti 5.22版本的打包文件,其中包含了所有运行Activiti所需的核心库和依赖。在本文中...

    Spring-activiti-ruoyi-activiti

    《Spring-Activiti在Ruoyi框架中的应用与二次开发》 在当今的企业级应用开发中,工作流管理系统已经成为不可或缺的一部分。Spring-Activiti作为一款强大的工作流引擎,结合Spring Boot框架,为开发者提供了便捷、...

    Jeecg集成activiti.docx

    Jeecg集成activiti.docx Jeecg集成activiti是一个关于如何将activiti集成到Jeecg平台上的指南。下面是从给定的文件中提取的相关知识点: 1. activiti项目结构:activiti项目是一个Maven项目,包含了数据库文件,...

    activiti 5.22完整包下载 activiti-explorer.war

    Activiti 是一个开源的工作流程和业务自动化引擎,它在企业级应用中被广泛使用来管理业务流程。这个压缩包 "activiti-explorer.war" 是 Activiti 的一个版本,具体是 5.22 版本。WAR 文件是 Web 应用程序档案(Web ...

    Activiti实战

    《Activiti实战 PDF电子书-含书签目录.pdf》,activiti版本5.11

    activiti-explorer.rar_Activiti Explorer_Explorer_activiti_activi

    activiti 5.22 explorer的war包

Global site tag (gtag.js) - Google Analytics