activiti操作之組任務與閘道器

2021-10-21 18:49:21 字數 2824 閱讀 3314

組任務的存在是指定給特定的一批人去操作任務,例如班長審核,既可以是正班長,也可以是副班長,但是並沒有指定某乙個人,只要符合條件的都可以去拾取任務,然後完成任務。

;// 任務查詢

list

tasklist = taskservice.

createtaskquery()

.processdefinitionkey

(definitionkey)

.taskcandidateuser

(assignee)

.list()

;拾取任務的本質將任務負責人指定為拾取人,歸還任務的本質是將任務負責人置為空。

// 拾取任務

taskservice.

claim

(taskid,

"wang");

// 歸還任務

taskservice.

setassignee

(taskid,null)

;

變更任務負責人本質是轉辦,將任務指定給辦理人為負責人。

// 變更負責人

taskservice.

setassignee

(taskid,

"chen"

);

完成任務與之前一樣。

string assignee =

"wang"

; string definitionkey =

"calssask"

;// 查詢任務

task task = taskservice.

createtaskquery()

.taskassignee

(assignee)

.processdefinitionkey

(definitionkey)

.singleresult()

;// 完成任務

taskservice.

complete

(task.

getid()

);

閘道器的目的是為了控制流程流向,它可以提供更精細的流程控制。

當執行到排它閘道器時,會進行條件判斷,如果為true,則會執行該分支。

注意:只會執行乙個條件為true的分支,如果幾個條件都為true,會執行id值較小的分支。

為什麼使用排它閘道器?

排它閘道器能實現的通過條件判斷一樣可以實現,為什麼需要採用排它閘道器?

使用連線條件判斷:如果條件判斷不滿足任何一種條件,該流程直接結束(異常結束)

使用排它閘道器:丟擲系統異常,方便定位解決。

例:填寫班費使用申請的時候,花費超過100需要班長審批,不足100需要生活委員審批,就可以使用排它閘道器。

分支:為每乙個流程都建立乙個分支,且都會執行。即使定義了條件,系統也會忽略。

匯聚:所有分支全部操作完成,才會進行到下一步。每個流程的最終結果匯聚到一起。

例:填寫班費使用申請的時候,花費需要班長與生活委員同時審批同意才能走到下一步,可以使用並行閘道器。

具有排它閘道器與並行閘道器共同的性質,既會判斷條件進入流程,也會在分支匯聚點等待匯聚完成後進入下乙個節點。

例如,一次申請費用超過100,需要班長與生活委員審批,不超過100需要生活委員與副班長審批,這種需求可以使用包含閘道器。

什麼是事件閘道器?

基於事件的閘道器,允許基於事件做選擇。

事件閘道器的執行原理?

閘道器的每一條出口順序流,都需要連線至乙個捕獲中間事件。當流程執行到達基於事件的閘道器時,閘道器類似等待狀態地動作:執行被暫停。並且,為每一條出口順序流,建立乙個事件訂閱。流程的走向完全是由於中間事件的選擇。而由哪乙個事件來決定流程的走向則是由最先觸發的事件來決定的。

事件閘道器和其他閘道器的區別

請注意基於事件的閘道器,其出口順序流與一般的順序流不同。這些順序流從不實際被執行。相反,它們允許流程引擎決定,當執行到達乙個基於事件的閘道器時,需要訂閱什麼事件。

1.定時器事件

到達閘道器執行乙個定時任務,通過cron表示式配置週期執行條件。

2.訊息事件

在流程定義裡面定義乙個訊息事件,並在訊息事件裡面去引用。

3.訊號事件

在流程裡面定義新增乙個訊號引用,並在訊號事件裡面引用。

Activiti組任務 十

在流程定義中在任務結點的 assignee 固定設定任務負責人,在流程定義時將參與者固定設定 在.bpmn 檔案中,如果臨時任務負責人變更則需要修改流程定義,系統可擴充套件性差。針對這種情況可以給任務設定多個候選人,可以從候選人中選擇參與者來完成任務。設定任務候選人 在流程圖中任務節點的配置中設定 ...

Activiti之對使用者任務簽收辦理操作

下文先介紹下使用者任務的辦理相關操作 使用者任務分類 分為4中狀態 未簽收 待辦理 已簽收 辦理中 執行中 辦理中 已完成 已辦結 首先,我們要了解下 taskservice 這個服務的作用 從類 org.activiti.engine.impl.serviceimpl 繼承的字段 所有已實現的介面...

Activiti工作流之任務

回顧 activiti工作流之簡介與環境搭建 activiti工作流之流程部署和相關操作 activiti工作流之任務的執行 查詢 完成 activiti工作流之流程變數 activiti工作流之歷史查詢 activiti工作流之流程分支 activiti工作流之閘道器 11張表 select fr...