activiti如何获取当前节点以及下一步路径或节点

转载 2016年05月31日 13:51:58

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

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

activiti根据当前节点获取下一个UseTask节点

以前写过一篇文章activiti根据当前节点获取下一个节点信息,当时的需求只是需要获取下一个节点而已,并没有要求获得什么类型的节点,所以下一个节点可能是任何节点,在最近的项目中的需求是根据当前的节点获...
  • chenfengdejuanlian
  • chenfengdejuanlian
  • 2017年08月10日 17:15
  • 3367

activiti根据当前节点获取下一个节点信息

在流程中使用监听器判断当前节点是否需要经过,否则跳转到下一个节点,如下图 当提交申请之后,当前提交人为部门负责人,那么部门负责人节点就不需要走了,直接到下一个节点,但是下一个节点是什么并不知道,就可...
  • chenfengdejuanlian
  • chenfengdejuanlian
  • 2017年05月04日 14:50
  • 5694

activiti 如何获取下一步节点

ACTIVITI相对于JBPM来说,比较年轻,用的人少,中文方面的资料更少,我根据网上到处找得资料以及看官方文档总结出来了代码,非常不容易啊。废话不多说,直接上代码吧: 首先是根据流程ID获...
  • superdog007
  • superdog007
  • 2014年05月04日 18:30
  • 13974

activiti根据当前节点获取下一步任务节点

思路:根据当前节点的ID获取,当前节点所连线的所有终点节点。 递归调用当前方法。得到想要的TaskDefinition 直接上代码。 /** * 根据与流程定义key获取当前节点的下一个任务节点 * ...
  • java_Xianfeng
  • java_Xianfeng
  • 2015年01月14日 15:43
  • 3163

Activiti工作流之获取流程定义中所有的节点

方法一(流程部署至服务器上之后可使用): BpmnModel model = repositoryService.getBpmnModel(processDefinitionId); if(mo...
  • luman1991
  • luman1991
  • 2016年12月18日 16:22
  • 1168

Activiti获得下一个节点

用PvmTransition表示箭头的类。而这些类是从 List list = ActivityImpl.getOutgoingTransitions() ; 从任务id获得指向外面的连接线 ...
  • lan12334321234
  • lan12334321234
  • 2017年04月11日 11:00
  • 303

activiti中有任务id,获取当前流程节点的信息

/** * 查询当前流程图 * @param taskId * @param response * @return * @throws Excepti...
  • huangbaokang
  • huangbaokang
  • 2017年08月28日 15:08
  • 2452

activiti5.22获取下一个流程节点

activiti5.22linux环境获取下一流程节点方法。
  • mubi1990
  • mubi1990
  • 2017年09月15日 09:19
  • 269

activiti 任务节点 处理人设置

分享牛,activiti任务节点,activiti任务节点权限配置,activiti5入门,activiti5任务节点扩展。activiti任务节点扩展,activiti分享牛。因为在OA系统、审批系...
  • qq_30739519
  • qq_30739519
  • 2016年04月23日 10:37
  • 34069

扩展Activiti流程定义文件,实现自定义节点属性

为了满足业务需要,流程设计阶段需对设计产物流程定义文件中节点属性进行扩展,譬如:任务是否支持退回、退回方式、退回的节点,任务转派人、任务可跳转的节点范围等属性信息。为了保证扩展后的流程定义文件能够正常...
  • nimeijian
  • nimeijian
  • 2016年08月01日 13:39
  • 3956
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:activiti如何获取当前节点以及下一步路径或节点
举报原因:
原因补充:

(最多只允许输入30个字)