Activiti的流程例項及掛起啟用 七

2021-10-01 20:03:32 字數 2673 閱讀 3661

參與者(可以是使用者也可以是程式)按照流程定義內容發起乙個流程,這就是乙個流程例項。是動

態的。流程定義和流程例項的**:

流程定義部署在 activiti 後,就可以在系統中通過 activiti 去管理該流程的執行,執行流程表示流

程的一次執行。比如部署系統請假流程後,如果某使用者要申請請假這時就需要執行這個流程,如果

另外乙個使用者也要申請請假則也需要執行該流程,每個執行互不影響,每個執行是單獨的流程例項

執行流程首先需要啟動流程例項。

@test

public

void

startprocessinstance()

啟動流程例項時,指定的businesskey,就會在act_ru_execution #流程例項的執行表中儲存businesskey。

businesskey:業務標識,通常為業務表的主鍵,業務標識和流程例項一一對應。業務標識**於業

務系統。儲存業務標識就是根據業務標識來關聯查詢業務系統的資料。

比如: 請假流程啟動乙個流程例項,就可以將請假單的 id 作為業務標識儲存到 activiti 中,將來查詢

activiti 的流程例項資訊就可以獲取請假單的 id 從而關聯查詢業務系統資料庫得到請假單資訊。

/**

* 啟動流程例項,新增進businesskey

* * 本質:act_ru_execution表中的businesskey的字段要存入業務標識 */

啟動流程例項,操作如下資料庫表:

select * from act_ru_execution #流程例項執行表,記錄當前流程例項的執**況

說明:流程例項執行,如果當前只有乙個分支時,乙個流程例項只有一條記錄且執行表的主鍵 id 和流程實

例 id 相同,如果當前有多個分支正在執行則該執行表中有多條記錄,存在執行表的主鍵和流程例項

id 不相同的記錄。 不論當前有幾個分支總會有一條記錄的執行表的主鍵和流程例項 id 相同

乙個流程例項執行完成,此表中與流程例項相關的記錄刪除。

select * from act_ru_task #任務執行表,記錄當前執行的任務

說明:啟動流程例項,流程當前執行到第乙個任務結點,此表會插入一條記錄表示當前任務的執行

情況,如果任務完成則記錄刪除。

select * from act_ru_identitylink #任務參與者,記錄當前參與任務的使用者或組

select * from act_hi_procinst #流程例項歷史表

流程例項啟動,會在此表插入一條記錄,流程例項執行完成記錄也不會刪除。

select * from act_hi_taskinst #任務歷史表,記錄所有任務

開始乙個任務,不僅在 act_ru_task 表插入記錄,也會在歷史任務表插入一條記錄,任務歷史表的主

鍵就是任務 id,任務完成此表記錄不刪除。

select * from act_hi_actinst #活動歷史表,記錄所有活動

活動包括任務,所以此表中不僅記錄了任務,還記錄了流程執行過程的其它活動,比如開始事件、

結束事件

1.5查詢流程例項

流程在執行過程中可以查詢流程例項的狀態,當前執行結點等資訊。

@test

public

void

queryprocessinstance()

}

某些情況可能由於流程變更需要將當前執行的流程暫停而不是直接刪除,流程暫停後將不會繼續執

行。1.6.1 全部流程例項掛起

操作流程定義為掛起狀態,該流程定義下邊所有的流程例項全部暫停:

流程定義為掛起狀態該流程定義將不允許啟動新的流程例項,同時該流程定義下所有的流程例項將

全部掛起暫停執行

/**

* 全部流程例項掛起與啟用

在執行一次

1.6.2 單個流程例項掛起

操作流程例項物件,針對單個流程執行掛起操作,某個流程例項掛起則此流程不再繼續執行, 完成

該流程例項的當前任務將報異常。

/**

* 單個流程例項掛起與啟用

* * */

public

class

suspendprocessinstance2

else}}

Activiti 查詢歷史流程例項

使用者和管理員有時候需要統計,有多少個業務例項通過了審核,這個時候需要查詢指定流程下的已完成的流程例項,用做後期的統計 public map processstate requestparam integer num,requestparam string processdefinitionkey,...

Activiti (三)啟動流程例項

流程的啟動 前提是已經完成部署工作 獲取processengine 物件獲取 runtimeservice 物件建立流程例項,流程定義的key需要知道 public class activitistartinstance 流程部署的id null 流程定義的id day 1 3 流程例項的id 25...

Activiti獲取某個流程例項已經審批的節點記錄

已知businessid即eventid獲得對應的審批記錄 某個流程例項的節點資訊都是存放在act hi actinst表中 business key存放在act hi procinst中,得到historicprocessinstance後獲得對應的流程例項id。然後根據流程例項id獲得act h...