前言:
是要對flowable的表先有全面的認識,對深入研究flowable作個鋪墊。網上的内容也不是很全,是以整合網上各個來源,加上自己實踐過程中的認識整理出來以下内容。
表名規則:
目前一共38張表
Activiti 使用到的表都是 ACT_ 開頭的。表名的第二部分用兩個字母表明表的用途。
- ACT_GE_ (GE) 表示 general 全局通用資料及設定,各種情況都使用的資料。
- ACT_HI_ (HI) 表示 history 曆史資料表,包含着程執行的曆史相關資料,如結束的流程執行個體,變量,任務,等等
- ACT_ID_ (ID) 表示 identity 組織機構,使用者記錄,流程中使用到的使用者群組。這些表包含辨別的資訊,如使用者,使用者組,等等。
- ACT_RE_ (RE) 表示 repository 存儲,包含的是靜态資訊,如,流程定義,流程的資源(圖檔,規則等)。
- ACT_RU_ (RU) 表示 runtime 運作時,運作時的流程變量,使用者任務,變量,職責(job)等運作時的資料。Activiti 隻存儲執行個體執行期間的運作時資料,當流程執行個體結束時,将删除這些記錄。這就保證了這些運作時的表小且快。
act_evt_log
Flowable引入了事件日志機制。日志機制基于Flowable引擎的事件機制,并預設禁用。總的來說,來源于引擎的事件會被捕獲,并建立一個包含了所有事件資料(甚至更多)的map,提供給org.flowable.engine.impl.event.logger.EventFlusher,由它将這些資料儲存其他地方。預設情況下,使用簡單的基于資料庫的事件處理器/儲存器,用Jackson将上述map序列化為JSON,并将其作為EventLogEntryEntity執行個體存入資料庫。預設會在資料庫中建立ACT_EVT_LOG表儲存事件日志。如果不使用事件日志,可以删除這個表。
act_ge_bytearray
每個流程的部署記錄,bytes_字段中存儲流程的具體内容。每次啟動時都會預設部署process目錄下的流程檔案,執行
repositoryService.createDeployment().deploy方法也會部署流程。
act_ge_property
flowable自身的一些變量,主要是版本号。
act_hi_actinst
曆史執行的所有流程節點的内容。
act_hi_attachment
流程曆史附件表。
附件自身主要是帶上了url。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL5NmeNhXQ650MNpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL0cTMzEDO1ADMyETMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
可以對任務添加附件。
act_hi_comment
流程的曆史評論表
評論嘛,就帶了個string的fullMessage
act_hi_detail
流程中曆史産生的變量詳情。
(在流程中指定變量,流程流轉時傳入變量,作業務處理,比如判斷稽核通過還是拒絕)
act_hi_entitylink
曆史參與的人員表
内部是維護一個scopeId及其關聯的scopeId。
每一個task任務屬于一個scopeId(需要再研究一下)
act_hi_identitylink
記錄每一個曆史節點的使用者(可能是group可能是user)。
act_hi_procinst
每一個曆史流程,建立時就生成,一條流程實(process)例對應一個記錄。
act_hi_taskinst
記錄每一個曆史節點,一個task對應一個記錄。
act_hi_tsk_log
每一次執行(execution)可能會帶上資料,存在這裡(data),沒有生成過。
HistoricTaskLogEntry類
act_hi_varinst
維護所有的曆史變量
act_id_bytearray
使用者組的部署内容
act_id_group
所有使用者組的資訊
act_id_info
所有使用者的資訊,賬号密碼
act_id_membership
使用者和使用者組的關系
act_id_priv
權限表
act_id_priv_mapping
使用者權限關系表
act_id_property
使用者的變量,存了版本号。
act_id_token
使用者通路記錄
act_id_user
使用者基本資訊,包括郵箱等
以上幾張使用者表是對flowable idm的使用者管理體系,可以配置使用者對api的調用權限。
act_procdef_info
流程定義資訊,對流程的說明
act_re_deployment
流程部署記錄,每次服務重新開機會部署一次,這邊新增一條記錄。
act_re_model
建立模型時,額外定義的一些模型相關資訊,存在這張表,預設不存。
act_re_procdef
記錄流程的變更,流程每變更一次存一條,version_加1
act_ru_suspended_job
act_ru_deadletter_job
act_ru_timer_job
- ServiceTask異步任務會産生異步任務,存放在一般工作表act_ru_job中。
- 定時任務會産生定時的任務,在定時時間未到達之前會存放在定時工作表act_ru_timer_job中。
- 挂起任務,比如将未到時間的定時任務手動暫停,則會存放在挂起任務表act_ru_suspended_job中。
- 不可執行任務,如果任務執行失敗,并且在重試次數用完的情況下也沒有成功執行,則任務會存放到不可執行任務表act_ru_deadletter_job中。
- 激活後會把資料再放回act_ru_timer_job表中。
- https://blog.csdn.net/ldqchat/article/details/81837121
act_ru_history_job
目前流程所有曆史執行的任務
但是因為如果流程結束,就查不到這些任務
是以雖然是曆史,但是也命名成了act_ru。
https://forum.flowable.org/t/what-act-ru-history-job-is-used-for/5383
act_ru_job
運作時的定時任務記錄表
act_ru_event_subscr
運作時事件 throwEvent、catchEvent 時間監聽資訊表(目前我們這邊都沒用到過哈。。)
act_ru_execution
act_ru_entitylink
act_ru_identitylink
act_ru_task
act_ru_variable
同上act_hi對應表。
總結:
通過整理表,發現flowable還:
對task提供了很多配置,包括添加附件、評論,以及設定tenant多租戶區分權限;
對自動任務作了完善的機制(包括多次失敗、重新激活等類型任務的記錄維護);
同時也維護了一套使用者管理權限,可以基于它實作一套工作流建構的服務。
參考:
https://www.devdoc.cn/activiti-table-summary.html
https://blog.csdn.net/hj7jay/article/details/51302829