Spring boot 整合activiti以及大量例項
1,Spring boot 整合activiti modeler:
感謝其他作者,參考:http://blog.csdn.net/chenhai201/article/details/72668275一、首先從官方下載activiti5.22.0版本的全程式碼包,並在本地解壓待用
從activiti-webapp-explorer2中複製src\main\java\org\activiti\explorer\servlet路徑下的檔案(圖中的A部分)到本地專案中
從activiti-webapp-explorer2中複製src\main\resources路徑下的stencilset.json檔案到本地專案的resources目錄下
從activiti-webapp-explorer2中複製src\main\webapp路徑下的檔案(圖中C部分)到本地專案的resources/public/static目錄下
從activiti-modeler中複製src\main\java\org\activiti\rest\editor路徑下的檔案(圖中的B部分)到本地專案中
二、修改檔案:
a) 修改本地專案的pom.xml,增加如下依賴
b) 修改圖中標紅的類,專案中已修改
我們可以看到一個空白的編輯器,裡面什麼也木有。原因是什麼呢,是因為我們的modelId=1是亂輸入的,他應該要和資料庫表ACT_RE_MODEL對應起來才對。
使用方法:
* 1,呼叫newModel新建一個modelId
* 2,呼叫modelList獲取model資訊
2,實戰片
具體程式碼firstFlow資料夾
1. 啟動程式,自動載入表和初始化流程資料
2. 檢視流程定義和流程資源 ACT_GE_BYTEARRAY:
3. 檢視compy和person:
4. 我們當前模擬一個簡單的工作流程,某人想加入某個公司,[對應流程:test20171114.bpmn],然後有許可權審批的人審批,審批同意後將此人加入組織並輸出“加入組織成功”,不同意輸出“加入組織失敗”。
a) 4.1,此時我們要加入的公司compId=為1,申請加入的人的personId=2,使用PostMan訪問http://localhost:8888/process/2/1/joinProcess此時資料庫發生如下變化:
b) 4.2,此時使用者admin和wtr具備審批申請的權利
,此時我們訪問http://localhost:8888/tasks?assignee=admin 檢視admin使用者的任務,返回結果為:
c) 4.3,我們現在通過訪問http://localhost:8888/complete/true/12513完成任務,true為同意(可以選擇false),12513為task的id,任務完成後會自動呼叫Service Task,此時wyf這條記錄的comp_compId為更新為當前公司的id。
附:涉及的資料庫表
ACT_GE_* : “GE”代表“General”(通用),用在各種情況下;
ACT_HI_* : “HI”代表“History”(歷史),這些表中儲存的都是歷史資料
ACT_ID_* : “ID”代表“Identity”(身份),這些表中儲存的都是身份資訊,如使用者和組以及兩者之間的關係。可以直接使用現有系統中的使用者或組資訊
ACT_RE_* : “RE”代表“Repository”(倉庫),這些表中儲存一些‘靜態’資訊,如流程定義和流程資源(如圖片、規則等);
ACT_RU_* : “RU”代表“Runtime”(執行時),這些表中儲存一些流程例項、使用者任務、變數等的執行時資料。Activiti只儲存流程例項在執行過程中的執行時資料,並且當流程結束後會立即移除這些資料,這是為了保證執行時表儘量的小並執行的足夠快;
--通用的流程定義和流程資源
SELECT *FROM `ACT_GE_BYTEARRAY`;
--歷史流程
SELECT *FROM ACT_HI_ACTINST;
--歷史的流程執行過程中使用者關係,許可權
SELECT *FROM ACT_HI_IDENTITYLINK;
--已部署的流程定義
SELECT *FROM ACT_RE_PROCDEF;
--執行時任務
SELECT *FROM `ACT_RU_TASK`;
--執行時使用者關係資訊,流程結束即刪除
SELECT * FROM `ACT_RU_IDENTITYLINK` WHERE TASK_ID_ ='12513';
附上具體原始碼:http://download.csdn.net/download/lgllionky/10118046