博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
activiti如何获取当前节点以及下一步路径或节点(转)
阅读量:6448 次
发布时间:2019-06-23

本文共 1227 字,大约阅读时间需要 4 分钟。

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;
}
}

这就是获取当前节点以及下一步路径或节点的整个过程了

转载地址:http://yylwo.baihongyu.com/

你可能感兴趣的文章
锁定10月10日,九州云Animbus7.0与你不见不散
查看>>
事务 C#中TransactionScope的使用方法和原理
查看>>
如何在NGINX中重定向一个网址(301 跳转)
查看>>
CentOS 6.4 关闭 selinux
查看>>
Android数据存储方式
查看>>
使用 Fonty Python 管理你的字体
查看>>
VMware Workstation 14 Pro黑屏
查看>>
《Effective Java》2nd 笔记
查看>>
The connection to adb is down, and a severe error has occured.
查看>>
什么是重构,什么不是重构
查看>>
我的友情链接
查看>>
Python中用matplotlib.pyplot画图总结
查看>>
图解css3:核心技术与案例实战
查看>>
NLB+DFS实现高可靠性WEB服务器
查看>>
Java8中Lambda表达式的10个例子
查看>>
sublime text 2 实现java编辑器环境
查看>>
Redis Cluster在线迁移
查看>>
EXCHANGE 2013 接收连接器
查看>>
inotify+rsync
查看>>
我的友情链接
查看>>