`
nicholas234
  • 浏览: 6229 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

ACTIVITI如何获取下一步节点

阅读更多
ACTIVITI相对于JBPM来说,比较年轻,用的人少,中文方面的资料更少,我根据网上到处找得资料以及看官方文档总结出来了代码,非常不容易啊。废话不多说,直接上代码吧:

首先是根据流程ID获取当前任务:

List<Task> tasks = taskService.createTaskQuery().processInstanceId(procInstanceId).list();


然后根据当前任务获取当前流程的流程定义,然后根据流程定义获得所有的节点:

ProcessDefinitionEntity def = (ProcessDefinitionEntity) ((RepositoryServiceImpl)rs).getDeployedProcessDefinition(task.getProcessDefinitionId());

List<ActivityImpl> activitiList = def.getActivities();  //rs是指RepositoryService的实例


根据任务获取当前流程执行ID,执行实例以及当前流程节点的ID:

String excId = task.getExecutionId();
ExecutionEntity execution = (ExecutionEntity) runtimeService.createExecutionQuery().executionId(excId).singleResult();
String activitiId = execution.getActivityId();


然后循环activitiList 并判断出当前流程所处节点,然后得到当前节点实例,根据节点实例获取所有从当前节点出发的路径,然后根据路径获得下一个节点实例:

for(ActivityImpl activityImpl:activitiList){
String id = activityImpl.getId();
if(activitiId.equals(id)){
System.out.println("当前任务:"+activityImpl.getProperty("name")); //输出某个节点的某种属性
List<PvmTransition> outTransitions = activityImpl.getOutgoingTransitions();//获取从某个节点出来的所有线路
for(PvmTransition tr:outTransitions){
PvmActivity ac = tr.getDestination(); //获取线路的终点节点
System.out.println("下一步任务任务:"+ac.getProperty("name"));
}
break;
}
}


这就是获取当前节点以及下一步路径或节点的整个过程了
分享到:
评论
3 楼 chun521521 2013-08-12  
下一步如果是分支节点怎么办》?
2 楼 jianwwpro 2012-06-05  
可是如何根据路线进行办理呢,JBPM中有 taskService.complate(taskid, wayid);
但是ACTIVITI里面只有complate(taskid);   请问如何像JBPM一样进行按路线执行流程呢? 甚是费解!!
1 楼 json20080301 2012-05-19  
不错,省的我去查API啦。

相关推荐

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

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

    Activiti流程图部署及流程图部分操作.pdf

    流程图的部署是Activiti中至关重要的一步,因为它使得业务流程能够在系统中执行。在Activiti中,流程图通常是以BPMN 2.0标准的XML格式(如`.bpmn`文件)和对应的图片资源(如`.png`文件)形式存在的。部署这些流程图...

    Activiti6-流程跟踪监控图-节点-流程线高亮显示-支持通过、不通过、驳回、退回

    Activiti6-流程跟踪监控图-节点-流程线高亮显示-支持通过、不通过、驳回、退回 支持内容: 已完成节点高亮显示、当前执行中节点红色显示 支持一个节点多条流出线,包括通过、不通过、驳回、退回,按照已执行操作正确...

    Activiti 学习笔记九:并行网关(parallelGateWay)

    - 条件分支:根据不同的条件,流程实例可以并行执行不同的任务,然后在汇聚点进行判断,决定下一步动作。 四、在 Activiti 中配置并行网关 在 Activiti 工具中,可以通过以下步骤配置并行网关: 1. 打开 Activiti ...

    activiti web 建项目步骤

    这一步可通过右击项目 -&gt; `Build Path` -&gt; `Configure Build Path` -&gt; `Libraries` -&gt; `Add External JARs`,并定位到`E:\activiti-5.6\setup\files\dependencies\libs`目录下的所有JAR文件来完成。 ### 三、配置...

    activiti6.0深度封装流程图像显示源码.rar

    这一步可以获取到所有活动节点和它们之间的连接线。 3. **匹配已执行节点**:将已执行的活动ID与流程图模型中的节点进行匹配,确定哪些节点需要高亮。 4. **高亮处理**:在流程图的渲染阶段,对匹配到的节点和连接...

    activiti的说明文档

    - **下一步**: 探索更多功能,例如流程设计、任务分配等。 **配置**: - **创建Process Engine**: 初始化流程引擎。 - **Process Engine Configuration bean**: 配置流程引擎的Bean。 - **数据库配置**: 设置数据库...

    test-activiti_activiti_DEMO_activitidemo_

    在 Activiti 中,可以利用 Actviti Explorer 或自定义的前端界面来展示流程实例的当前节点、历史路径以及可能的下一步动作。这些信息对于监控和优化业务流程至关重要。 综上所述,`test-activiti_activiti_DEMO_...

    activiti工作流实例

    3. **任务**:流程中的每一步都是一个任务,可以分配给不同的用户或角色来完成。 4. **活动**:流程图中的每一个节点代表一个活动,比如审批、填写表单等。 5. **泳道**:泳道用于分隔流程中的不同参与者或部门,...

    工作流Activiti的学习总结(九)Activiti手工执行的应用(ReceiveTask实现方式)

    4. **任务处理**:当收到信号后,Activiti会自动将流程推进到ReceiveTask的下一个节点。如果ReceiveTask后面没有其他任务,流程可能就结束了;如果有,流程会继续执行。 四、BankUserTaskActiviti示例 ...

    activiti-designer-5.15.0 myeclipse插件

    4. **调试支持**:在MyEclipse环境中,可以直接对流程进行调试,查看流程执行的每一步,帮助开发者快速定位问题。 5. **版本管理**:与MyEclipse的版本控制系统无缝集成,可以方便地对流程模型进行版本控制,便于...

    activiti 5.9 postgresql 安装手册

    这一步是为了确保Activiti能够在支持Java的环境中运行。 #### 三、下载与解压Activiti 1. **下载Activiti 5.9**:访问Activiti官方网站或GitHub仓库下载最新版本的Activiti压缩包(如activiti-5.9.zip)。 2. **...

    activiti文档

    - **下一步**:指导开发者进行更深入的学习。 #### 3. 配置 - **创建Process Engine**:创建流程引擎的核心对象。 - **Process Engine Configuration bean**:通过配置Bean来初始化流程引擎。 - **数据库配置**:...

    jfinal 和 activiti整合例子

    6. **Service层处理**:在Service层,通过Activiti的API操作流程实例,如完成任务、跳转流程节点、获取当前任务信息等。 7. **视图展示**:使用JFinal的模板引擎(如Freemarker或Velocity),设计前端页面,展示...

    Activiti工作流+Activiti帮助文档

    - 并行与会合:流程中的并行分支(多实例任务)最终会在某个网关处会合,决定流程下一步走向。 - 签署与审批:Activiti支持电子签名和审批,符合企业级流程管理需求。 5. Activiti帮助文档: - 用户指南:详细...

    整合activiti-5.21.0流程设计器

    首先,需要将activiti-explorer中的相关文件复制到项目的web工程-&gt;bpm目录下。这一步骤是为了确保所有必要的资源文件都已就位,便于后续的集成工作。 **2. 复制stencilset.json** 接着,将`stencilset.json`文件...

    activiti-5.8 安装activiti插件

    **步骤二:获取Activiti插件** 在“标题”中提到的压缩包文件“site”中,包含了Activiti插件的安装源。解压这个文件,你会找到包含插件信息的更新站点目录。 **步骤三:安装插件** 1. 在Eclipse中,选择“Help” &gt;...

    Activiti 5.13 用户手册(中文版)

    - **下一步**: 进一步探索如何使用Activiti来构建工作流应用程序。 #### 三、配置 - **创建ProcessEngine**: - **ProcessEngineConfiguration bean**: 配置Bean用于初始化流程引擎。 - **数据库配置**: - **...

    activiti 5.16 流程管理 中文版

    - **下一步**:指导如何进一步深入学习Activiti。 #### 3. 配置 - **创建ProcessEngine**:通过`ProcessEngineConfiguration`来构建。 - **ProcessEngineConfiguration bean**:通常通过Spring框架来配置。 - **...

Global site tag (gtag.js) - Google Analytics