Activiti繼承自jBPM4,在表結構設計方面也遵循運行時與歷史數據的分離,這樣的設計可以快速讀取運行時數據,僅當需要查詢歷史數據時再從專門的歷史數據表中讀取
1、通用數據表(RepositoryService)
以“act_ge”開頭(general)
1.1、 act_ge_bytearray (資源表)
保存字符串、流程文件內容、流程圖片。一次部署可以添加多個資源,資源會被保存到資源表(act_ge_bytearray)中。
1.2、act_ge_property(屬性表)
工作流的id算法和版本 用來生成下一個主鍵信息
2、流程存儲表(RepositoryService)
以"act_re"開頭 (repository)
2.1、act_re_deployment(部署表)
流程部署表,一次部署可以添加多個資源,資源會被保存到資源表(act_ge_bytearray)中;而部署的信息,則保存到部署表中
2.2、act_re_procdef(流程定義表)
流程定義表,如果發佈部署的文件是流程文件,除了將內容保存到資源表外,還會解析流程文件的內容,形成特定的流程定義數據,保存到此表中
3、身份表(identityService)
身份表以"act_id"開頭 (identity)
3.1、act_id_user(用戶表)
保存用戶數據
3.2、act_id_info(用戶信息表)
保存用戶信息和用戶賬號
3.3、act_id_group(用戶組)
用於保存用戶組信息
3.4、act_id_membership(用戶用戶組關係表)
表格字段:
USER_ID 用戶id 非空
GROUP_ID 用戶組id 非空
4、流程運行時的數據表
以"act_ru"開頭(runtime)
用來保存流程在運行過程中產生的數據,例如 流程實例、執行流、任務
4.1、act_ru_execution(流程實例表)
當流程啓動後,會產生一個流程實例,同時會產生相應的執行流,那麼流程實例和執行流數據均會被保存到act_ru_execution表中流程啓動一次只要沒有執行完,就會有一條數據
本次任務完成則會刪除在act_ru_execution表中的數據
4.2、act_ru_task(流程任務表)
保存流程在運行過程中所產生的任務數據
4.3、act_ru_variable( 正在執行的流程變量表)
用來保存在整個流程執行過程中用到的變量信息。例如流程實例參數、執行流參數和任務參數
5、歷史數據表(HistoryService)
5.1、act_hi_procinst(流程實例表)
保存流程的歷史數據。只要流程被啓動,就會將流程實例的數據寫入act_hi_procinst。act_hi_procinst除了記錄基本的流程字段外,還會記錄流程的開始活動的id、結束活動的id、開始時間、結束時間。有結束時間也是可以作爲判斷流程已經結束的標誌。
5.2、act_hi_detail(流程明細表)
記錄流程執行過程中的參數或者表單數據。將流程引擎的歷史數據配置爲full,Activiti則會保存流程明細數據
5.3、act_hi_taskinst(歷史任務表)
5.4、act_hi_actinst(歷史行爲表)
5.5、act_hi_attachment(附件表)
5.6、act_hi_comment(評論表)
6、DMN規則引擎表
6.1、act_dmn_deployment(決策部署表)
保存決策數據,類似於流程定義部署,每一次部署,可以添加多份決策文件,向部署表中寫入一條部署數據
6.2、act_dmn_decision_table(決策表)
可以將決策看做流程定義,決策文件中保存着決策表,部署時會解析決策文件中的決策模型並將其保存到act_dmn_decision_table中
6.3、act_dmn_deployment_resource(部署資源部)
類似於流程引擎資源部
Activiti在刪除流程定義、刪除任務和刪除流程實例時,均會將刪除的數據保存到歷史數據中,初次外,已經完成的流程實例以及相關數據,都會保持到歷史數據中,如果要對這些數據進行管理的話,就需要用到HistoryService組件了。
,Activiti在整個流程執行過程中,會把所有相關的信息,都向歷史表中保存,因此HistoryService該組件的查詢方法特別的豐富
使用HistoryService的createHistoricProcessInstanceQuery()方法就可以得到HistoricProcessInstanceQuery對象,該對象主要用於流程實例的歷史數據查詢。對於流程實例,不管流程是否完成,都會保存到ACT_HI_PROCINST表中