1. 程式人生 > >activiti如何獲取當前節點以及下一步路徑或節點

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

這就是獲取當前節點以及下一步路徑或節點的整個過程了

相關推薦

activiti如何獲取當前節點以及路徑節點

ACTIVITI相對於JBPM來說,比較年輕,用的人少,中文方面的資料更少,我根據網上到處找得資料以及看官方文件總結出來了程式碼,非常不容易啊。廢話不多說,直接上程式碼吧: 首先是根據流程ID獲取當前任務: List<Task> tasks = task

如何能夠精準獲取粉絲,進行裂變?

自己 寶媽 經驗 分享 時也 什麽 介紹 的人 需要 在去年我做過一個產品,是賣女性化妝品這一類的產品,主要就是針對寶媽群體,幹了一年多,賺了二十多萬,寶媽粉絲有一萬多,因為貨源的問題,後來就不做了,在這裏我分享下當時我是怎麽做的,最好教你怎麽根據直接的產品加到精準粉絲!

SQL查詢當前資料以及條和條三條記錄

想查詢某個表當前資料以及上一條和下一條的記錄,網上找了一下解決辦法都不如意,按網上的方法可以查詢出三條資料,但是當查詢的這條資料沒有上一條或下一條記錄時就不行了。現在我把解決問題的sql語句放上 : 理一下思路,明確的查詢三條語句: SELECT * FROM 表名

ARP協議以及獲取當前局域主機MAC地址

一、什麼是ARP協議、 ARP被稱為地址解析協議,在區域網內通過IP地址查詢目標主機的MAC地址。ARP協議是實現IP地址到MAC地址的轉化。 二、ARP協議的工作原理 為什麼使用ARP協議?

jquery實現點選步驟條變色,以及點選變色

     最近做專案需要用到步驟條,看了很多不是自己想要的,就借鑑了一下別人的,然後自己總結了一下,感覺可以用到很多專案上使用了。下面是同種風格的步驟條,兩種變色方案: 1.先引入jquery的js <script src="jquery.min.js" type="

檢測端口並進行

腳本腳本功能:檢測8080和8081端口是否在運行,如果沒在運行,則/opt/tomcat-background/bin/startup.shvi /root/aa.sh#!/bin/bashi1=`nmap -sS 127.0.0.1 -p 8080 | grep $8080 | awk ‘{printf

robotframework 判斷拉框是否存在,如果存在就執行拉框操作,不存在就跳過執行拉框操作,進行操作;

新頁面 存在 robot sel log 是否 work val image #本人新手,僅做學習記錄之用 因為工作要求,打開的ui頁面,根據前面篩選的條件不同,跳轉的新頁面不同,本記錄涉及的就是有下拉框和沒有下拉框,所以要對新打開的頁面進行判斷;run keyword

linux 安裝odb

sta dual hit c++ option ubun packages sim before Introduction This guide presents step-by-step instructions for installing the ODB system

java如何獲取當前時間以及如何進行格式化?

rule gettime .get println lis get asi cal days 起因:寫代碼的時候經常會用到獲取當前時間戳和日期,現總結如下 public void testDate() { //SimpleDateFormat df = new

js中為什麽非要alert一下才會執行

syn b- alert 下一步 sync 函數 原因 cnblogs 技術分享 多數原因為界面ajax中動態添加的元素還沒被添加上,就執行了js函數(js函數要調用動態元素),解決辦法:ajax方法中添加 async:false,同步,作用為,在ajax執行完畢後才執行之

調度 engine._next_request_from_scheduler() 取出request交給handler,結果是request,執行engine.craw(),結果是resp/fail,看scraper.enqueue_scrape()

put left com nal manager cep time() erro inline 0.def _next_request_from_scheduler(self, spider): C:\Program Files\Anaconda2\Lib\site-pac

在MWC發布史上最尬AI手機,LG可能想放棄全球手機市場

LG在今年的MWC大會前夕,三星新機S9幾乎包攬了中國手機行業80%的關註度,不過同樣來自韓國的LG卻相對遇冷。LG每年都會在MWC左右發布旗艦機,今年則帶來了主打AI功能的LG V30s ThinQ。中國媒體對ThinQ的冷淡也在意料之中,畢竟LG這幾年在中國市場節節挫敗,近半年來還反復傳聞已經退出中國手機

PHP獲取當前時間,計算天、周、一月、年的後時間

clas col time class nbsp years spa 分鐘 code 獲取當前時間: $now = date(‘Y-m-d H:i:s‘,time()); 獲取當前時間一分鐘的時間: date("Y-m-d H:i:s",strtotime("+

高危群體:開發者的自白,躲坑,迷茫,和

打工 精通 報名時間 培訓 自我 可能 網上 何事 推薦 今天結束了,項目仍未完成。走出大廈,逃避思考任何事情,思維中充斥著無力感,但身體卻想發泄,想一吐胸郁,想健身至力竭。我是做開發的,想轉行當力工,立個牌子,一天300日結。不知道有沒有人雇我。我包餃子賊6,想去餃子店打

中國正攜區塊鏈新金融的大棋,深圳極可能成為落子的第一

當眾人還在為加密貨幣的漲跌而喋喋不休時,中國已悄然攜區塊鏈下一盤關乎中國新金融新經濟的大棋,而深圳極有可能成為落子的第一步。   金融業務一直被視為區塊鏈技術的第一大應用,8月中旬以來,儘管監管層接連收緊了對加密貨幣的監管,但對區塊鏈在金融創新上的推動卻始終低調而急促,國

js獲取當前時間以及30s後的時間

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div

Linux shell指令碼 自動輸入提示資訊回車進行操作

1.應用場景 有的時候執行安裝或操作第三方軟體時,需要輸入Yes 或者回車 才能進行下一步 例如操作sqlite [[email protected] sh]# sqlite3 anhui.db SQLite version 3.6.20 Enter ".help" fo

在建立server的時候,選擇tomcat8後,server name為空,並且無法手動輸入,同時無法進行操作。

解決方案如下: 1.退出eclipse。 2.找到eclipse[工作空間][當前專案].metadata/.plugins/org.eclipse.core.runtime/.settings/下 3.刪除兩個檔案,檔名是org.eclipse.wst.server.core.pref

javascript獲取當前時間以及修改時間

只設置到小時,可自行更改 //獲取時間 time傳入毫秒值,24*60*60*1000就代表前一天的時間 function getFormatDate(time) { var date = new Date(

js獲取當前域名、Url、相對路徑和引數以及指定引數 js獲取當前域名、Url、相對路徑和引數以及指定引數

js獲取當前域名、Url、相對路徑和引數以及指定引數    一、js獲取當前域名有2種方法   二、獲取當前Url的4種方法