activiti 如何获取下一步节点
生活随笔
收集整理的這篇文章主要介紹了
activiti 如何获取下一步节点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
activiti如何獲取下一步節點
List<Task> tasks = taskService.createTaskQuery().processInstanceId(procInstanceId).list();
然后根據當前任務獲取當前流程的流程定義,然后根據流程定義獲得所有的節點:?
Java代碼?ProcessDefinitionEntity def = (ProcessDefinitionEntity) ((RepositoryServiceImpl)rs).getDeployedProcessDefinition(task.getProcessDefinitionId());
List<ActivityImpl> activitiList = def.getActivities();?//rs是指RepositoryService的實例
根據任務獲取當前流程執行ID,執行實例以及當前流程節點的ID:?
Java代碼?String excId = task.getExecutionId(); ExecutionEntity execution = (ExecutionEntity) runtimeService.createExecutionQuery().executionId(excId).singleResult(); String activitiId = execution.getActivityId();
然后循環activitiList 并判斷出當前流程所處節點,然后得到當前節點實例,根據節點實例獲取所有從當前節點出發的路徑,然后根據路徑獲得下一個節點實例:?
Java代碼?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相對于JBPM來說,比較年輕,用的人少,中文方面的資料更少,我根據網上到處找得資料以及看官方文檔總結出來了代碼,非常不容易啊。廢話不多說,直接上代碼吧:?
首先是根據流程ID獲取當前任務:?
然后根據當前任務獲取當前流程的流程定義,然后根據流程定義獲得所有的節點:?
Java代碼?
根據任務獲取當前流程執行ID,執行實例以及當前流程節點的ID:?
Java代碼?
然后循環activitiList 并判斷出當前流程所處節點,然后得到當前節點實例,根據節點實例獲取所有從當前節點出發的路徑,然后根據路徑獲得下一個節點實例:?
Java代碼?
總結
以上是生活随笔為你收集整理的activiti 如何获取下一步节点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库查找基本语句
- 下一篇: JEECG 树列表操作总刷新列表,需要重