這種方式是通過當前節點與當前節點之後的節點中間的連線物件(sequenceflow 類)中的outgoingflows屬性 (標識輸出的物件) , 之後對輸出的物件進行判斷 , 判斷其是否是排他閘道器 (exclusivegateway) , 如果是排他閘道器 , 再通過自己程式的邏輯處理來判斷下一節點是哪乙個節點。
每行**後面都有注釋。
**
* 獲取下一usertask任務節點
* task 當前任務task物件
* data 表單資料 (主要為了排他閘道器分支節點做判斷用, 例如:請假2天需要提交至專案經理, 請假5天需要提交至部門經理)*/
public usertask getnextusertasknode
(task task,map data)
else
if(exclusivegateway.
class
.isinstance
(nextflowelement)
)else
if(exclusiveoutgoingflows.
size()
>1)
eldata eldata =
disposeexitcondition
(branchcondition.
getexitcondition()
,data)
;//這個方法是我通過規則和資料,來判斷是否符合轉入節點的條件if(
iscondition
(eldata.
getel()
,eldata.
getelvaluedata()
))}}
}}return resulttask;
}
解析el表示式方法 iscondition
/**
* 通過el表示式 與 data集合 判斷是否符合條件
* @param el
* @param data
* @return
*/public
boolean
iscondition
(string el,map
data)
valueexpression e = expressionfactory.
createvalueexpression
(******context, el,
boolean
.class);
return
(boolean) e.
getvalue
(******context)
;}
獲取下一節點的方法有很多,但核心就是對bpmnmodel物件和flowelement節點物件的操作。 activiti獲取下乙個節點資訊
在實際的工作流業務開發中,當使用者完成當前使用者任務時,需要指定下乙個使用者任務的審核人。此時我們需要獲取下乙個節點的一些資訊,來確定下乙個使用者任務的審核人有哪些。在實際工作流程中,當前使用者任務後的節點可能為使用者任務,也可能為閘道器。如果下乙個節點為閘道器我們需要判斷流程線路。獲取下乙個使用者...
activiti獲取下乙個節點資訊
在實際的工作流業務開發中,當使用者完成當前使用者任務時,需要指定下乙個使用者任務的審核人。此時我們需要獲取下乙個節點的一些資訊,來確定下乙個使用者任務的審核人有哪些。在實際工作流程中,當前使用者任務後的節點可能為使用者任務,也可能為閘道器。如果下乙個節點為閘道器我們需要判斷流程線路。獲取下乙個使用者...
activiti學習資料 獲取下一步節點
activ iti相對於jb pm來說,比較年輕,用的人少,中文方面的 資料更少,我根據網上到處找得資料以及看官方文件 總結出來了 非常不 容易啊。廢話不多說,直接上 吧 首先是根據流程id 獲取當前任務 listtasks taskservice.createtaskquery processin...