activiti流程引擎使用總結

2022-04-11 09:56:09 字數 1110 閱讀 2913

最近在專案中使用到了activiti,用於業務的審核流程管理。

為了避免與業務過多耦合且能夠支撐後續的其他業務流程,所以將activiti單獨部署為乙個服務,使用feign來呼叫。其中流程配置的web介面使用alfresco提供的流程配置介面:

其本質是生成符合bpmn規範的xml檔案,並由activiti讀取解析並儲存到資料庫。資料庫使用activiti預設的表,沒有做相關修改。

下面是在使用過程中遇到的幾個問題:

這也是使用流程引擎的初衷,只需要配置相關步驟,而不修改**就可以達到配置和修改業務流程的目的。由於某乙個流程一定是和業務資料相關聯的,那麼為了滿足可擴充套件的配置,就需要將業務引數注入到流程中,也就是之注入到流程變數中。關於流程變數,有兩種型別,一種是全域性的流程變數,這種變數資料存在於整個流程例項中,在任何乙個任務節點都可以獲取和修改這些值;另乙個是區域性流程變數,只存在於某個任務節點上。目前只用到了全域性流程變數。我們在流程啟動時就注入流程所需的變數,這樣在配置流程時就可以通過變數名來獲取到值,從而控制流程動作和走向。

所謂自動完成一些事情,即不需要人工干預,滿足或不滿足某個條件時自動完成節點的功能。這種功能即「服務任務」

通過這個服務任務,配置「監聽類」或者「表示式」便可以自動完成某些事情,比如修改流程變數的值等等。

多個條件同時滿足,即且的關係,在剛開始時,是使用了乙個任務節點,對條件進行判斷,然後寫入流程變數進行流向控制,這樣雖然可以完成功能,但是與**耦合,不可取。後來使用閘道器的方式來解決這個問題。閘道器的作用就是條件控制,它是自動完成的,不要要人工干預。常用的閘道器有互斥閘道器和並行閘道器,分別對應異或操作和與操作。

閘道器相關參考:

流程結束對應的結束任務,即有乙個小圓圈(開始任務也是),結束任務節點有3個事件可以選擇:end、start和take,我們選擇take事件,並配置其監聽類,即可完成業務邏輯的處理。

Activiti流程引擎使用要點整理

activiti的後台是有資料庫的支援,所有的表都以act 開頭。第二部分是表示表的用途的兩個字母標識。用途也和服務的api對應。1 act re re 表示repository。這個字首的表包含了流程定義和流程靜態資源 規則,等等 2 act ru ru 表示runtime。這些執行時的表,包含流...

Activiti流程任務

任務候選人 組 public class candidatetest 任務持有人 public class ownertest 任務 人 public class claimtest 任務引數 public class vartest public class servartest 引數作用域 pu...

activiti 查詢流程定義啟動流程

要啟動流程就必須要知道有哪些流程,可能會涉及到許可權的問題,所以啟動流程前先查詢流程定義的資訊 流程定義的資訊放在 act re procdef 的表中 所以用repositoryservice中的方法查詢,可以根據act re procdef 表的索引去查詢 流程定義資訊查詢 repository...