天天看點

Activiti6系列(1)- 核心資料庫表及字段注釋說明

前言

本文是根據《瘋狂工作流講義-Activiti6.0》一書中提取過來的,有興趣的可以去當當網買這本書,講的很不錯,最後還有實戰案例。

雖然是提取過來的,但完全靠手打梳理,覺得有用的小夥伴可以給予一定支援,謝謝。      

共分為六大部分

1、通用資料表

2、流程存儲資料表

3、身份資料表

4、運作時資料表

5、曆史資料表

6、DMN規則引擎資料表

一、通用資料表

1、資源表,act_ge_bytearray

用于儲存和流程引擎相關的資源,隻要調用了Activiti存儲服務的API,涉及的資源均會被轉換為byte數組儲存到這個表中。

一般情況下,Activiti使用這個表來儲存字元串、流程檔案的内容、流程圖檔内容。

主要包含如下字段:

字段 注釋
REV_ 資料版本,Activiti為一些有可能會被頻繁修改的資料表,加入該字段,用來表示該資料被操作的次數。
Name_ 資源名稱,類型為varchar,長度為255位元組。
DEPLOYMENT_ID_ 一次部署可以添加多個資源,該字段與部署表act_re_deployment的主鍵相關聯。
BYTES_ 資源内容,資料類型為longblob,最大可存4GB資料。
GENERATED_ 是否由Activiti自動産生的資源,0表示false,1為true。

2、屬性表,act_ge_property

Activiti将全部的屬性抽象為key-value對,每個屬性都有名稱和值,使用act_ge_property來儲存這些屬性,該表有以下三個字段。

字段 注釋
NAME_ 屬性名稱,varchar類型。
VALUE_ 屬性值,varchar類型。
REV_ 資料的版本号。

二、流程存儲資料表

1、部署資料表,act_re_deployment。

部署資訊會被儲存在部署表中

主要包含字段:

字段 注釋
NAME_ 部署的名稱,可以調用Activiti的流程存儲API來設定,類型為varchar,長度為255位元組。
DEPLOYMENT_TIME_ 部署時間,類型為timestamp。

2、流程定義表,act_re_procdef。

Activiti在部署添加資源時,如果釋出部署的檔案是流程檔案(.bpmn或者.BPMN20.xml),則除了會解析這些流程檔案,将内容儲存到資源表外,還會解析流程檔案的内容,形成特定的流程定義資料,寫入流程定義表中。

主要包含字段:

字段 注釋
GATEGORY_ 流程定義的分類,讀取流程XML檔案中的targetNamespace值。
NAME_ 流程定義名稱,讀取流程檔案中process元素的name屬性。
KEY_ 流程定義的key,讀取流程檔案中process元素的id屬性。
DEPLOYMENT_ID_ 流程定義對應的部署資料ID
RESOURCE_NAME_ 流程定義對應的資源名稱,一般為流程檔案的相對路徑。
DGRM_RESOURCE_NAME_ 流程定義對應的流程圖資源名稱
SUSPENSION_STATE_ 表示流程定義的狀态是激活還是中止,激活狀态時該字段值為1,中止時字段值為2,如果流程定義被設定為中止狀态,那麼将不能啟動流程。

三、身份資料表

1、使用者表,act_id_user。

流程引擎的使用者資訊被儲存在act_id_user表中

主要包含字段:

字段 注釋
FIRST_ 人名
LAST_ 姓氏
EMAIL_ 使用者郵箱
PWD_ 使用者密碼
PICTURE_ID_ 使用者圖檔,對應資源中的資料ID。

2、使用者賬号資訊表,act_id_info。

Activiti将使用者、使用者賬号和使用者資訊分為三種資料,其中使用者表儲存使用者的資料,而使用者賬号和使用者資訊,則被儲存到act_id_info表中。

主要包含字段:

字段 注釋
USER_ID_ 對應使用者表的資料ID,但沒有強制做外鍵關聯。
TYPE_ 資訊類型,目前可以設定使用者賬号(account)、使用者資訊(userinfo)和NULL三種值。
KEY_ 資料的鍵,可以根據該鍵來查找使用者資訊的值。
VALUE_ 資料的值,類型為varchar,長度為255位元組。
PASSWORD_ 使用者賬号的密碼字段,不過目前版本的Activiti并沒有使用該字段。
PARENT_ID_ 該資訊的父資訊ID,如果一條資料設定了父資訊ID,則表示該資料時使用者賬号(資訊)的明細資料,例如一個賬号有激活日期,那麼激活日期就是該賬号的明細資料,此處使用了自關聯來實作。

3、使用者組表,act_id_group。

儲存使用者組的資料

主要包含字段:

字段 注釋
NAME_ 使用者組名稱
TYPE_ 使用者組類型,類型不由Activiti提供,但是在某些業務中,Activiti會根據該字段的值進行查詢,字段值由Activiti定義(如Activiti的webservice)。

4、關系表,act_id_membership。

一個使用者組下有多個使用者,一個使用者可以屬于不同的使用者組,那麼這種多對多的關系,就使用關系表來進行描述,關系表為act_id_membership。

主要包含字段:

PS:act_id_membership的兩個字段均做了外鍵限制,寫入該表的資料,必須要有使用者和使用者組資料與之關聯。      
字段 注釋
USER_ID_ 使用者ID,不能為NULL。
GROUP_ID_ 使用者組ID,不能為NULL。

四、運作時資料表

1、流程執行個體表,act_ru_execution。

流程啟動後,會産生一個流程執行個體,同時會産生相應的執行流,流程執行個體和執行流資料均被儲存在act_ru_execution表中,如果一個流程執行個體隻有一條執行流,那麼該表中隻産生一條資料,該資料既表示執行流,也表示流程執行個體。

主要包含字段:

字段 注釋
PROC_INST_ID_ 流程執行個體ID,一個流程執行個體有可能會産生多個執行流,該字段表示執行流所屬的流程執行個體。
BUSINESS_KEY_ 啟動流程時指定的業務主鍵
PARENT_ID_ 父執行流的ID,一個流程執行個體有可能會産生執行流,該字段儲存父執行流ID。
PROC_DEF_ID_ 流程定義資料的ID
ACT_ID_ 目前執行流行為的ID,ID在流程檔案中定義。
IS_ACTIVE_ 該執行流是否活躍的辨別
IS_CONCURRENT_ 執行流是否正在并行
SUSPENSION_STATE_ 辨別流程的中斷狀态

2、流程任務表,act_ru_task。

流程在運作過程中所産生的任務資料儲存在act_ru_task表中

主要包含字段:

字段 注釋
EXECUTION_ID_ 任務所在的執行流ID
PROC_INST_ID_ 對應的流程執行個體ID
PROC_DEF_ID_ 對應流程定義資料的ID
NAME_ 任務名稱,在流程檔案中配置。
DESCRIPTION_ 任務描述,在流程檔案中配置。
TASK_DEF_KEY_ 任務定義的ID值,在流程檔案中定義。
OWNER_ 任務擁有人,沒有做外鍵關聯。
ASSIGNEE_ 被指派執行該任務的人,沒有做外鍵關聯。
PRIORITY_ 任務優先級數值
DUE_DATE_ 任務預定日期,類型為datetime。

3、流程參數表,act_ru_variable。

存放流程中的參數,這類參數包括流程執行個體參數、執行流參數和任務參數,參數有可能會有多種類型,是以該表使用多個字段來存放參數值。

主要包含字段:

字段 注釋
TYPE_ 參數類型,該字段值可以為boolean、bytes、serializable、date、double、integer、jap-entity、long、null、short、string,這些字段值均為Activiti提供,還可以通過擴充來自定義參數類型。
NAME_ 參數名稱
EXECUTION_ID_ 該參數對應的執行ID,可以為null。
PROC_INST_ID 該參數對應的流程執行個體ID,可以為null。
TASK_ID_ 如果該參數是任務參數,就需要設定任務ID。
BYTEARRAY_ID_ 如果參數值是序列化對象,那麼可以将該對象作為資源儲存到資源表中,該字段儲存資源表中資料的ID。
DOUBLE_ 參數類型為double的話,則值會儲存到該字段中。
LONG_ 參數類型為long的話,則值會儲存到該字段中。
TEXT_ 使用者儲存文本類型的參數值,該字段為varchar類型,長度為4000位元組。
TEXT2_ 與TEXT_字段一樣,用于儲存文本類型的參數值、

4、流程與身份關系表,act_ru_identitylink。

使用者或者使用者組與流程資料之間的關系,使用act_ru_identitylink來儲存。

主要包含字段:

字段 注釋
GROUP_ID_ 該關系資料中的使用者組ID
TYPE_ 該關系資料的類型,目前提供了3個值:assignee、candidate和owner,表示流程資料的指派人(組)、候選人(組)和擁有人。
USER_ID_ 關系資料中的使用者ID
TASK_ID_ 關系資料中的人物ID
PROC_DEF_ID_ 關系資料中的流程定義ID

5、工作資料表,一共4個。

act_ru_job:一般工作表

act_ru_deadletter_job:無法執行工作表,用于存放無法執行的工作。

act_ru_suspended_job:中斷工作表,中斷工作産生後,會将工作儲存到該表中。

act_ru_timer_job:定時器工作表,用于存放定時器工作。

6、事件描述表,act_ru_event_subscr。

如果流程到達某類事件節點,Activiti會往act_ru_event_subscr表中加入事件描述資料,這些事件描述資料将會決定流程事件的觸發。

主要包含字段:

字段 注釋
EVENT_TYPE_ 事件類型,不同的事件會産生不同類型的事件描述,并不是所有的事件都會産生事件描述。
EVENT_NAME_ 事件名稱,在流程檔案中定義。
EXECUTION_ID_ 事件所在的執行流ID
PROC_INST_ID_ 事件所在的流程執行個體ID
ACTIVITY_ID_ 具體事件的ID,在流程檔案中定義。
CONFIGURATION_ 事件的配置屬性,該字段中有可能存放流程定義ID、執行流ID或者其他資料。

五、曆史資料表

1、流程執行個體表,act_hi_procinst。

流程執行個體的曆史資料會儲存在act_hi_procinst表中,隻要流程被啟動,就會将流程執行個體的資料寫入act_hi_procinst表中。除了基本的流程字段外,與運作時資料表不同的是,曆史流程執行個體表還會記錄流程的開始活動ID、結束活動ID等資訊。

主要包含字段:

PS:該表的其他字段含義與運作時的流程視力表字段類似,在此不再贅述。      
字段 注釋
START_ACT_ID_ 開始活動的ID,一般是流程開始事件的ID,在流程檔案中定義。
END_ACT_ID_ 流程最後一個活動的ID,一般是流程結束事件的ID,在流程檔案中定義。
DELETE_REASON_ 該流程執行個體被删除的原因

2、流程明細表,act_hi_detail。

記錄流程執行過程中的參數或者表單資料,由于在流程執行過程中,會産生大量這類資料,是以預設情況下,Activiti不會儲存流程明細資料,除非将流程引擎的曆史資料配置為null。

3、曆史任務表,act_hi_taskinst。

當流程到達某個任務節點時,就會向曆史任務表中寫入曆史任務資料,該表與運作時的任務表類似。

4、曆史行為表,act_hi_actinst。

記錄沒一個流程活動的執行個體,一個流程活動将會被記錄為一條資料,根據該表可以追蹤最完整的流程資訊。

5、附件表,act_hi_attachment。

使用任務服務(TaskService)的API,可以添加附件,這些附件的資料将會被儲存到act_hi_attachment表中。

主要包含字段:

字段 注釋
USER_ID_ 附件對應的使用者ID,可以為NULL。
NAME_ 附件名稱
DESCRIPTION_ 附件描述
TYPE_ 附件類型
TASK_ID_ 該附件對應的任務ID
PROC_INST_ID_ 對應的流程執行個體ID
URL_ 連接配接到該附件的URL
CONTENT_ID_ 附件内容ID,附件的内容将會被儲存到資源表中,該字段記錄資源資料ID。

6、評論表,act_hi_comment。

不隻儲存評論資料,還會儲存某些事件資料,但它的表名為COMMENT,是以更傾向把它叫做評論表。

主要包含字段:

字段 注釋
TYPE_ 評論的類型,可以設值為event或者comment,表示事件記錄資料或者評論資料。
TIME_ 資料産生的時間
USER_ID_ 産生評論資料的使用者ID
TASK_ID_ 該評論資料的任務ID
PROC_INST_ID_ 資料對應的流程執行個體ID
ACTION_ 該評論資料的操作辨別
MESSAGE_ 該評論資料的資訊
FULL_MSG_ 該字段同樣記錄評論資料的資訊

六、DMN規則引擎資料表

1、決策部署表,act_dmn_deployment。

儲存決策資料,類似于流程定義部署,每一次部署,可以添加多份決策檔案,向部署表中寫入一條部署資料。

主要包含字段:

PS:隻啟動流程引擎,并不會建立規則引擎表。      
字段 注釋
NAME_ 部署名稱
CATEGORY_ 部署的目錄名稱
PARENT_DEPLOYMENT_ID_ 父部署ID

2、決策表,act_dmn_decision_table。

可以先将決策看做流程定義,決策檔案中儲存着決策表,部署時會解析決策檔案中的決策模型并将其儲存到act_dmn_decision_table中。

主要包含字段:

字段 注釋
KEY_ 決策業務主鍵
DEPLOYMENT_ID_ 所屬的部署資料ID

3、部署資源表,act_dmn_deployment_resource。

規則引擎相關的資源,例如決策檔案、圖檔等,被儲存在act_dmn_deployment_resource表中,該表類似于流程引擎的資源表。

主要包含字段:

字段 注釋
NAME_ 資源名稱
DEPLOYMENT_ID_ 所屬的部署資料ID
RESOURCE_BYTES_ 資源内容,longblob類型。

結語