`

Activiti获得下一个节点

 
阅读更多
PvmTransition表示箭头的类。而这些类是从
List<PvmTransition> list = ActivityImpl.getOutgoingTransitions() ;


从任务id获得指向外面的连接线


ProcessDefinitionEntity.getActivities()



Task currentTask = (Task) taskService.createTaskQuery().taskId(taskId)
				.singleResult();


/**
	 * 
	 *@User :Test
	 *@date :2014-6-26 下午02:45:34
	 *@return :Execution 
	 *@userFor :获得执行节点 ExecutionEntity.getActivityId() 获得节点id
     *currentTask.getExecutionId()
	 */
  private ExecutionEntity getExecution(String executionId) {
		ExecutionEntity execution = (ExecutionEntity) (Execution) runtimeService
				.createExecutionQuery().executionId(executionId).singleResult();
		return execution;
	}



	/**
	 * 
	 *@User   :Test
	 *@date   :2014-6-26 下午02:38:39
	 *@return :ActivityImpl
	 *@userFor :根据flowId获得下一个节点 ExecutionEntity.getActivityId()
	 */
	private ActivityImpl getNextTask(ProcessDefinitionEntity processDefinition,
			String activitiId, String flowId) {
		ActivityImpl result = null;
		boolean breakFlag = false;
		List activitiList = processDefinition.getActivities();
		for (Iterator iterator = activitiList.iterator(); iterator.hasNext();) {
			ActivityImpl activityImpl = (ActivityImpl) iterator.next();
			if (breakFlag)
				break;
			String id = activityImpl.getId();
			if (activitiId.equals(id)) {
				List outTransitions = activityImpl.getOutgoingTransitions();
				for (Iterator iterator1 = outTransitions.iterator(); iterator1
						.hasNext();) {
					PvmTransition pvm = (PvmTransition) iterator1.next();
					if (flowId.length() > 0 && pvm.getId().equals(flowId)) {
						result = (ActivityImpl) pvm.getDestination();
						breakFlag = true;
						break;
					}
				}

			}
		}
		return result;
	}


从一个节点转向另一个节点 最后还是得需要执行taskService.complete(taskId,varies);
// 获取当前节点的所以出口(这个方法做的不好,应该返回List<TransitionImpl>才对的,这样就不用下面的强转换了,我想以后版本会改了这点)
		List<PvmTransition> pvmTransitionList = activeActivity
				.getOutgoingTransitions();
		for (PvmTransition pvmTransition : pvmTransitionList) {
			TransitionImpl transitionImpl = (TransitionImpl) pvmTransition;// 强转为TransitionImpl
			transitionImpl.setDestination(endActivity);
		}
        //最后还是得需要执行complete方法
	taskService.complete(taskId);
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    activiti流程图查看demo

    Activiti 是一个开源的工作流和业务自动化引擎,它支持企业级的业务流程管理(BPM)系统和模型驱动的应用程序。这个"activiti流程图查看demo"是一个示例项目,旨在帮助用户理解如何在Activiti中查看和操作流程图。在...

    activiti代码实现审批流程的审批

    当任务被领取(`taskService.claim(Task task, String userId)`)并完成(`taskService.complete(Task task)`)时,流程会自动流转到下一个任务节点。 此外,为了监控和管理流程,我们还可以创建一个后台服务,定期...

    Activiti6.0教程例子下载

    4. TaskService: 在Activiti中业务流程定义中的每一个执行节点被称为一个Task,对流程中的数据存取,状态变更等操作均需要在Task中完成。TaskService提供了对用户Task 和Form相关的操作。它提供了运行时任务查询、...

    Activiti5.13用户手册.zip

    获得一个分支的所有活动节点 - URL参数 15.93. 获得一个分支的所有活动节点 - 响应码 15.94. 获取分支列表 - URL参数 15.95. 获取分支列表 - 响应码 15.96. 查询分支 - 响应码 15.97. 获取分支的变量列表 - ...

    IDEA创建spring boot +Activiti 6.0

    总之,这个项目为初学者提供了一个基础的Spring Boot和Activiti 6.0结合的例子,虽然不完美,但它是一个很好的起点,帮助开发者了解如何在实际项目中引入和使用工作流管理。通过逐步学习和改进,可以构建出更符合...

    activiti资料介绍

    Activiti是一款优秀的开源工作流平台,其支持 BPMN 2.0 标准,是基于 Java 的轻量级工作流和业务流程管理(BPM)平台。Activiti 旨在让业务人员和开发人员都能够轻松地设计、管理和部署业务流程。 工作流(Workflow...

    Activiti_5.13_中文用户手册

    **描述详情:** 本章主要讲述如何在Spring环境下配置和使用Activiti,包括如何定义ProcessEngineFactoryBean以及如何在Spring上下文中管理Activiti组件。 **标签关键词解析:** - **Spring**:一种流行的Java企业级...

    Activiti.InAction

    例如,一个典型的例子是如何使用Activiti来实现一个请假申请流程,从员工提交申请到经理审批,再到人力资源部门确认等多个步骤。这些案例不仅展示了Activiti的强大功能,也为读者提供了实用的操作指南。 #### 结论 ...

    activiti 5.16 流程管理 中文版

    - **启动一个流程实例**:通过服务接口启动流程实例。 - **完成任务**:模拟用户完成任务的操作。 - **挂起,激活一个流程**:控制流程实例的状态。 - **更多知识**:如查询API、表达式等。 - **单元测试**:编写...

    Activiti 5.13 用户手册(中文版)

    - **启动一个流程实例**: 开始执行特定的流程实例。 - **完成任务**: 标记任务为已完成。 - **挂起/激活一个流程**: 动态控制流程实例的状态。 - **更多知识**: - **查询API**: 查询特定的流程实例、任务等信息...

    activiti-app.zip

    Activiti 是一个开源的工作流和业务流程管理(BPM)平台,它被...通过这个压缩包,你可以获得一个完整的Activiti 6.0演示环境,从而深入学习和实践Activiti的相关功能,为你的项目或企业带来高效的流程自动化解决方案。

    eclipse快速安装Activiti Designer插件

    Activiti Designer是Activiti工作流引擎的图形化设计工具,它作为一个Eclipse插件,使得流程定义可以通过拖拽的方式进行,极大地提高了开发效率。下面我们将详细介绍如何在Eclipse环境中快速安装Activiti Designer...

    eclipse-mars版本插件 亲测好用

    1. **流程建模**:Activiti插件提供了一个图形化的流程建模界面,使得开发者可以通过拖拽和连接各个活动节点来构建流程图。这种直观的方式减少了编写XML流程定义文件的复杂性。 2. **流程部署**:在Eclipse环境中,...

    深度优先与广度优先Java实现代码示例

    // 获得节点的子节点,对于二叉树就是获得节点的左子节点和右子节点 List, Object&gt;&gt; children = getChildren(node); if (children != null && !children.isEmpty()) { for (Map child : children) { nodeStack....

    camunda简介&实现简单审批流程文档

    1. **最简单的流程定义**:每个节点上只能设置一个审批人。 2. **并行审批**:审批节点上允许设置多个审批人,同一节点上的审批人并行审批。 3. **多实例会签/或签/比例签**:适用于需要多人参与的审批场景。 #### ...

    java开源包11

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包1

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包2

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包3

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包6

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

Global site tag (gtag.js) - Google Analytics