日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

activiti 如何获取下一步节点

發(fā)布時間:2025/3/16 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 activiti 如何获取下一步节点 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
activiti如何獲取下一步節(jié)點

ACTIVITI相對于JBPM來說,比較年輕,用的人少,中文方面的資料更少,我根據(jù)網(wǎng)上到處找得資料以及看官方文檔總結(jié)出來了代碼,非常不容易啊。廢話不多說,直接上代碼吧:?

首先是根據(jù)流程ID獲取當前任務:?

Java代碼?
  • List<Task> tasks = taskService.createTaskQuery().processInstanceId(procInstanceId).list();


  • 然后根據(jù)當前任務獲取當前流程的流程定義,然后根據(jù)流程定義獲得所有的節(jié)點:?

    Java代碼?
  • ProcessDefinitionEntity def = (ProcessDefinitionEntity) ((RepositoryServiceImpl)rs).getDeployedProcessDefinition(task.getProcessDefinitionId());

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


  • 根據(jù)任務獲取當前流程執(zhí)行ID,執(zhí)行實例以及當前流程節(jié)點的ID:?

    Java代碼?
  • String excId = task.getExecutionId();
  • ExecutionEntity execution = (ExecutionEntity) runtimeService.createExecutionQuery().executionId(excId).singleResult();
  • String activitiId = execution.getActivityId();


  • 然后循環(huán)activitiList 并判斷出當前流程所處節(jié)點,然后得到當前節(jié)點實例,根據(jù)節(jié)點實例獲取所有從當前節(jié)點出發(fā)的路徑,然后根據(jù)路徑獲得下一個節(jié)點實例:?

    Java代碼?
  • for(ActivityImpl activityImpl:activitiList){
  • String id = activityImpl.getId();
  • if(activitiId.equals(id)){
  • System.out.println("當前任務:"+activityImpl.getProperty("name"));?//輸出某個節(jié)點的某種屬性
  • List<PvmTransition> outTransitions = activityImpl.getOutgoingTransitions();//獲取從某個節(jié)點出來的所有線路
  • for(PvmTransition tr:outTransitions){
  • PvmActivity ac = tr.getDestination();?//獲取線路的終點節(jié)點
  • System.out.println("下一步任務任務:"+ac.getProperty("name"));
  • }
  • break;
  • }
  • }
  • 總結(jié)

    以上是生活随笔為你收集整理的activiti 如何获取下一步节点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。