http://blog.csdn.net/hj7jay/article/details/51302829
1 Activiti數據庫表結構
1.1 數據庫表名說明
Activiti工作流總共包含23張數據表,所有的表名默認以“ACT_”開頭。
並且表名的第二部分用兩個字母表明表的用例,而這個用例也基本上跟Service API匹配。
u ACT_GE_* : “GE”代表“General”(通用),用在各種情況下;
u ACT_HI_* : “HI”代表“History”(歷史),這些表中保存的都是歷史數據,比如執行過的流程實例、變量、任務,等等。Activit默認提供了4種歷史級別:
Ø none: 不保存任何歷史記錄,可以提高系統性能;
Ø activity:保存所有的流程實例、任務、活動信息;
Ø audit:也是Activiti的默認級別,保存所有的流程實例、任務、活動、表單屬性;
Ø full:最完整的歷史記錄,除了包含audit級別的信息之外還能保存詳細,例如:流程變量。
對於幾種級別根據對功能的要求選擇,如果需要日後跟蹤詳細可以開啓full。
u ACT_ID_* : “ID”代表“Identity”(身份),這些表中保存的都是身份信息,如用戶和組以及兩者之間的關係。如果Activiti被集成在某一系統當中的話,這些表可以不用,可以直接使用現有系統中的用戶或組信息;
u ACT_RE_* : “RE”代表“Repository”(倉庫),這些表中保存一些‘靜態’信息,如流程定義和流程資源(如圖片、規則等);
u ACT_RU_* : “RU”代表“Runtime”(運行時),這些表中保存一些流程實例、用戶任務、變量等的運行時數據。Activiti只保存流程實例在執行過程中的運行時數據,並且當流程結束後會立即移除這些數據,這是爲了保證運行時表儘量的小並運行的足夠快;
1.2 數據庫表結構
1.2.1 Activiti數據表清單:
表分類 |
表名 |
解釋 |
一般數據 |
通用的流程定義和流程資源 |
|
系統相關屬性 |
||
|
歷史的流程實例 |
|
歷史的流程附件 |
||
歷史的說明性信息 |
||
歷史的流程運行中的細節信息 |
||
歷史的流程運行過程中用戶關係 |
||
歷史的流程實例 |
||
歷史的任務實例 |
||
歷史的流程運行中的變量信息 |
||
身份信息-組信息 |
||
身份信息-組信息 |
||
身份信息-用戶和組關係的中間表 |
||
身份信息-用戶信息 |
||
部署單元信息 |
||
模型信息 |
||
已部署的流程定義 |
||
運行時事件 |
||
運行時流程執行實例 |
||
運行時用戶關係信息 |
||
運行時作業 |
||
運行時任務 |
||
運行時變量表 |
1.2.2表名:ACT_GE_BYTEARRAY(通用的流程定義和流程資源)
用來保存部署文件的大文本數據。
保存流程定義圖片和xml、Serializable(序列化)的變量,即保存所有二進制數據,特別注意類路徑部署時候,不要把svn等隱藏文件或者其他與流程無關的文件也一起部署到該表中,會造成一些錯誤(可能導致流程定義無法刪除)。
ACT_GE_BYTEARRAY(act_ge_bytearray) |
|||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
可空 |
約束 |
缺省值 |
取值說明 |
是 |
ID_ |
主鍵ID,資源文件編號,自增長 |
VARCHAR(64) |
|
|||
REV_ |
版本號 |
INT(11) |
是 |
Version |
|||
NAME_ |
部署的文件名稱, |
VARCHAR(255) |
是 |
mail.bpmn、mail.png 、mail.bpmn20.xml |
|||
DEPLOYMENT_ID_ |
來自於父表ACT_RE_DEPLOYMENT的主鍵 |
VARCHAR(64) |
是 |
部署的ID |
|||
BYTES_ |
大文本類型,存儲文本字節流 |
LONGBLOB |
是 |
||||
GENERATED_ |
是否是引擎生成。 |
TINYINT(4) |
是 |
0爲用戶生成 1爲Activiti生成 |
1.2.3 表名:ACT_GE_PROPERTY(系統相關屬性)
屬性數據表。存儲這個流程引擎級別的數據。
ACT_GE_PROPERTY(act_ge_property) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
取值說明 |
是 |
NAME_ |
VARCHAR(64) |
64 |
schema.version schema.history next.dbid |
||||
VALUE_ |
屬性值 |
VARCHAR(300) |
300 |
是 |
5.* create(5.*) |
|||
REV_INT |
版本號 |
INT(11) |
11 |
是 |
1.2.4表名:ACT_HI_ACTINST(歷史節點表)
歷史活動信息。這裏記錄流程流轉過的所有節點,與HI_TASKINST不同的是,taskinst只記錄usertask內容。
ACT_HI_ACTINST(act_hi_actinst) |
||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
可空 |
約束 |
取值說明 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
|
||
PROC_DEF_ID_ |
流程定義ID |
VARCHAR(64) |
|
|||
PROC_INST_ID_ |
VARCHAR(64) |
|
||||
EXECUTION_ID_ |
流程執行ID |
VARCHAR(64) |
|
|||
ACT_ID_ |
活動ID |
VARCHAR(255) |
|
節點定義ID |
||
TASK_ID_ |
任務ID |
VARCHAR(64) |
是 |
任務實例ID 其他節點類型實例ID在這裏爲空 |
||
CALL_PROC_INST_ID_ |
請求流程實例ID |
VARCHAR(64) |
是 |
調用外部流程的流程實例ID' |
||
ACT_NAME_ |
活動名稱 |
VARCHAR(255) |
是 |
節點定義名稱 |
||
ACT_TYPE_ |
活動類型 |
VARCHAR(255) |
|
如startEvent、userTask |
||
ASSIGNEE_ |
代理人員 |
VARCHAR(64) |
是 |
節點簽收人 |
||
START_TIME_ |
開始時間 |
DATETIME |
|
2013-09-15 11:30:00 |
||
END_TIME_ |
結束時間 |
DATETIME |
是 |
2013-09-15 11:30:00 |
||
DURATION_ |
時長,耗時 |
BIGINT(20) |
是 |
毫秒值 |
1.2.5 表名:ACT_HI_ATTACHMENT(附件信息)
ACT_HI_ATTACHMENT(act_hi_attachment) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
取值說明 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
主鍵ID |
|||
REV_ |
REV_ |
INT(11) |
11 |
是 |
Version |
|||
USER_ID_ |
用戶id |
VARCHAR(255) |
255 |
是 |
用戶ID |
|||
NAME_ |
名稱 |
VARCHAR(255) |
255 |
是 |
附件名稱 |
|||
DESCRIPTION_ |
描述 |
VARCHAR(4000) |
4000 |
是 |
描述 |
|||
TYPE_ |
類型 |
VARCHAR(255) |
255 |
是 |
附件類型 |
|||
TASK_ID_ |
VARCHAR(64) |
64 |
是 |
|||||
PROC_INST_ID_ |
流程實例ID |
VARCHAR(64) |
64 |
是 |
流程實例ID |
|||
URL_ |
連接 |
VARCHAR(4000) |
4000 |
是 |
附件地址 |
|||
CONTENT_ID_ |
內容Id 字節表的ID |
VARCHAR(64) |
64 |
是 |
ACT_GE_BYTEARRAY的ID |
1.2.6 表名:ACT_HI_COMMENT(歷史審批意見表)
ACT_HI_COMMENT(act_hi_comment) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
取值說明 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
主鍵ID |
|||
TYPE_ |
意見記錄類型,爲comment時,爲處理意見 |
VARCHAR(255) |
255 |
是 |
類型:event(事件) comment(意見) |
|||
TIME_ |
記錄時間 |
DATETIME |
填寫時間 |
|||||
USER_ID_ |
用戶Id |
VARCHAR(255) |
255 |
是 |
填寫人 |
|||
TASK_ID_ |
任務Id |
VARCHAR(64) |
64 |
是 |
節點實例ID |
|||
PROC_INST_ID_ |
流程實例Id |
VARCHAR(64) |
64 |
是 |
流程實例ID |
|||
ACTION_ |
行爲類型。 |
VARCHAR(255) |
255 |
是 |
值爲下列內容中的一種: AddUserLink、DeleteUserLink、AddGroupLink、DeleteGroupLink、AddComment、AddAttachment、DeleteAttachment |
|||
MESSAGE_ |
處理意見 |
VARCHAR(4000) |
4000 |
是 |
用於存放流程產生的信息,比如審批意見 |
|||
FULL_MSG_ |
全部消息 |
LONGBLOB |
是 |
1.2.7表名:ACT_HI_DETAIL(歷史詳細信息)
歷史詳情表:流程中產生的變量詳細,包括控制流程流轉的變量,業務表單中填寫的流程需要用到的變量等。
ACT_HI_DETAIL(act_hi_detail) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
取值說明 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
主鍵 |
|||
TYPE_ |
數據類型 |
VARCHAR(255) |
255 |
FormProperty, //表單 VariableUpdate //參數 |
||||
PROC_INST_ID_ |
流程實例ID |
VARCHAR(64) |
64 |
是 |
流程實例ID |
|||
EXECUTION_ID_ |
執行實例Id |
VARCHAR(64) |
64 |
是 |
執行實例ID |
|||
TASK_ID_ |
任務Id |
VARCHAR(64) |
64 |
是 |
任務實例ID |
|||
ACT_INST_ID_ |
活動實例Id |
VARCHAR(64) |
64 |
是 |
ACT_HI_ACTINST表的ID |
|||
NAME_ |
名稱 |
VARCHAR(255) |
255 |
名稱 |
||||
VAR_TYPE_ |
變量類型 |
VARCHAR(255) |
255 |
是 |
參見VAR_TYPE_類型說明 |
|||
REV_ |
REV_ |
INT(11) |
11 |
是 |
Version |
|||
TIME_ |
創建時間 |
DATETIME |
創建時間 |
|||||
BYTEARRAY_ID_ |
字節數組Id |
VARCHAR(64) |
64 |
是 |
ACT_GE_BYTEARRAY表的ID |
|||
DOUBLE_ |
DOUBLE_ |
DOUBLE |
是 |
存儲變量類型爲Double |
||||
LONG_ |
LONG_ |
BIGINT(20) |
20 |
是 |
存儲變量類型爲long |
|||
TEXT_ |
值 |
VARCHAR(4000) |
4000 |
是 |
||||
TEXT2_ |
值2 |
VARCHAR(4000) |
4000 |
是 |
此處存儲的是JPA持久化對象時,纔會有值。此值爲對象ID |
備註:VAR_TYPE_類型說明: jpa-entity、boolean、bytes、serializable(可序列化)、自定義type(根據你自身配置)、 CustomVariableType、date、double、integer、long、null、short、string
1.2.8 表名:ACT_HI_IDENTITYLINK (歷史流程人員表)
任務參與者數據表。主要存儲歷史節點參與者的信息。
ACT_HI_IDENTITYLINK(act_hi_identitylink) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
取值說明 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
ID_ |
|||
GROUP_ID_ |
用戶組ID |
VARCHAR(255) |
255 |
是 |
組ID |
|||
TYPE_ |
用戶組類型 |
VARCHAR(255) |
255 |
是 |
類型,主要分爲以下幾種: assignee、 candidate、 owner、starter 、participant |
|||
USER_ID_ |
用戶ID |
VARCHAR(255) |
255 |
是 |
用戶ID |
|||
TASK_ID_ |
任務Id |
VARCHAR(64) |
64 |
是 |
節點實例ID |
|||
PROC_INST_ID_ |
VARCHAR(64) |
64 |
是 |
流程實例ID |
1.2.9 表名:ACT_HI_PROCINST(歷史流程實例信息)核心表
ACT_HI_PROCINST(act_hi_procinst) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
備註 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
||||
PROC_INST_ID_ |
流程實例ID |
VARCHAR(64) |
64 |
|||||
BUSINESS_KEY_ |
業務Key |
VARCHAR(255) |
255 |
是 |
||||
PROC_DEF_ID_ |
流程定義Id |
VARCHAR(64) |
64 |
|||||
START_TIME_ |
開始時間 |
DATETIME |
||||||
END_TIME_ |
結束時間 |
DATETIME |
是 |
|||||
DURATION_ |
時長 |
BIGINT(20) |
20 |
是 |
||||
START_USER_ID_ |
發起人員Id |
VARCHAR(255) |
255 |
是 |
||||
START_ACT_ID_ |
開始節點 |
VARCHAR(255) |
255 |
是 |
||||
END_ACT_ID_ |
結束節點 |
VARCHAR(255) |
255 |
是 |
||||
SUPER_PROCESS_INSTANCE_ID_ |
超級流程實例Id |
VARCHAR(64) |
64 |
是 |
||||
DELETE_REASON_ |
刪除理由 |
VARCHAR(4000) |
4000 |
是 |
1.2.10 表名:ACT_HI_TASKINST(歷史任務流程實例信息)核心表
ACT_HI_TASKINST(act_hi_taskinst) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
備註 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
主鍵ID |
|||
PROC_DEF_ID_ |
VARCHAR(64) |
64 |
是 |
流程定義ID |
||||
TASK_DEF_KEY_ |
任務定義Key |
VARCHAR(255) |
255 |
是 |
節點定義ID |
|||
PROC_INST_ID_ |
流程實例ID |
VARCHAR(64) |
64 |
是 |
流程實例ID |
|||
EXECUTION_ID_ |
執行ID |
VARCHAR(64) |
64 |
是 |
執行實例ID |
|||
NAME_ |
名稱 |
VARCHAR(255) |
255 |
是 |
名稱 |
|||
PARENT_TASK_ID_ |
父任務iD |
VARCHAR(64) |
64 |
是 |
父節點實例ID |
|||
DESCRIPTION_ |
描述 |
VARCHAR(4000) |
4000 |
是 |
描述 |
|||
OWNER_ |
實際簽收人 任務的擁有者 |
VARCHAR(255) |
255 |
是 |
簽收人(默認爲空,只有在委託時纔有值) |
|||
ASSIGNEE_ |
代理人 |
VARCHAR(255) |
255 |
是 |
簽收人或被委託 |
|||
START_TIME_ |
開始時間 |
DATETIME |
開始時間 |
|||||
CLAIM_TIME_ |
提醒時間 |
DATETIME |
是 |
提醒時間 |
||||
END_TIME_ |
結束時間 |
DATETIME |
是 |
結束時間 |
||||
DURATION_ |
時長 |
BIGINT(20) |
20 |
是 |
耗時 |
|||
DELETE_REASON_ |
刪除理由 |
VARCHAR(4000) |
4000 |
是 |
刪除原因(completed,deleted) |
|||
PRIORITY_ |
優先級 |
INT(11) |
11 |
是 |
優先級別 |
|||
DUE_DATE_ |
應完成時間 |
DATETIME |
是 |
過期時間,表明任務應在多長時間內完成 |
||||
FORM_KEY_ |
表單key |
VARCHAR(255) |
255 |
是 |
desinger節點定義的 form_key屬性 |
1.2.11 表名:ACT_HI_VARINST(歷史變量信息)
ACT_HI_VARINST(act_hi_varinst) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
備註 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
ID_ |
|||
PROC_INST_ID_ |
流程實例ID |
VARCHAR(64) |
64 |
是 |
流程實例ID |
|||
EXECUTION_ID_ |
執行ID |
VARCHAR(64) |
64 |
是 |
執行實例ID |
|||
TASK_ID_ |
任務Id |
VARCHAR(64) |
64 |
是 |
任務實例ID |
|||
NAME_ |
名稱 |
VARCHAR(255) |
255 |
參數名稱(英文) |
||||
VAR_TYPE_ |
變量類型 |
VARCHAR(100) |
100 |
是 |
參見VAR_TYPE_類型說明 |
|||
REV_ |
REV_ |
INT(11) |
11 |
是 |
Version |
|||
BYTEARRAY_ID_ |
字節數組ID |
VARCHAR(64) |
64 |
是 |
ACT_GE_BYTEARRAY表的主鍵 |
|||
DOUBLE_ |
DOUBLE_ |
DOUBLE |
是 |
存儲DoubleType類型的數據 |
||||
LONG_ |
LONG_ |
BIGINT(20) |
20 |
是 |
存儲LongType類型的數據 |
|||
TEXT_ |
TEXT_ |
VARCHAR(4000) |
4000 |
是 |
存儲變量值類型爲String,如此處存儲持久化對象時,值jpa對象的class |
|||
TEXT2_ |
TEXT2_ |
VARCHAR(4000) |
4000 |
是 |
1.2.12 表名:ACT_ID_GROUP(用戶組表)
用來存儲用戶組信息。
ACT_ID_GROUP(act_id_group) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
備註 |
是 |
ID_ |
用戶組ID |
VARCHAR(64) |
64 |
||||
REV_ |
版本號 |
INT(11) |
11 |
是 |
||||
NAME_ |
用戶組描述信息 |
VARCHAR(255) |
255 |
是 |
||||
TYPE_ |
VARCHAR(255) |
255 |
是 |
1.2.13 表名:ACT_ID_INFO(用戶擴展信息表)
用戶擴展信息表。目前該表未用到。
ACT_ID_INFO(act_id_info) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
備註 |
是 |
ID_ |
VARCHAR(64) |
64 |
|||||
REV_ |
版本號 |
INT(11) |
11 |
是 |
||||
USER_ID_ |
用戶ID |
VARCHAR(64) |
64 |
是 |
||||
TYPE_ |
類型 |
VARCHAR(64) |
64 |
是 |
||||
KEY_ |
formINPut名稱 |
VARCHAR(255) |
255 |
是 |
||||
VALUE_ |
值 |
VARCHAR(255) |
255 |
是 |
||||
PASSWORD_ |
密碼 |
LONGBLOB |
是 |
|||||
PARENT_ID_ |
父節點 |
VARCHAR(255) |
255 |
是 |
1.2.14 表名:ACT_ID_MEMBERSHIP(用戶用戶組關聯表)
用來保存用戶的分組信息
ACT_ID_MEMBERSHIP(act_id_membership) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
備註 |
是 |
USER_ID_ |
用戶Id |
VARCHAR(64) |
64 |
||||
是 |
GROUP_ID_ |
用戶組Id |
VARCHAR(64) |
64 |
1.2.15 表名:ACT_ID_USER(用戶信息表)
ACT_ID_USER(act_id_user) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
備註 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
||||
REV_ |
版本號 |
INT(11) |
11 |
是 |
||||
FIRST_ |
用戶名稱 |
VARCHAR(255) |
255 |
是 |
||||
LAST_ |
用戶姓氏 |
VARCHAR(255) |
255 |
是 |
||||
EMAIL_ |
郵箱 |
VARCHAR(255) |
255 |
是 |
||||
PWD_ |
密碼 |
VARCHAR(255) |
255 |
是 |
||||
PICTURE_ID_ |
VARCHAR(64) |
64 |
是 |
1.2.16 表名:ACT_RE_DEPLOYMENT(部署信息表)
用來存儲部署時需要持久化保存下來的信息
1.2.17 表名:ACT_RE_MODEL(流程設計模型表)
創建流程的設計模型時,保存在該數據表中。
ACT_RE_MODEL(act_re_model) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
備註 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
ID_ |
|||
REV_ |
INT(11) |
11 |
是 |
樂觀鎖 |
||||
NAME_ |
模型的名稱: 比如:收文管理 |
VARCHAR(255) |
255 |
是 |
名稱 |
|||
KEY_ |
模型的關鍵字,流程引擎用到。 比如:FTOA_SWGL |
VARCHAR(255) |
255 |
是 |
||||
CATEGORY_ |
類型,用戶自己對流程模型的分類。 |
VARCHAR(255) |
255 |
是 |
分類 |
|||
CREATE_TIME_ |
創建時間 |
TIMESTAMP |
是 |
創建時間 |
||||
LAST_UPDATE_TIME_ |
最後修改時間 |
TIMESTAMP |
是 |
最新修改時間 |
||||
VERSION_ |
版本,從1開始。 |
INT(11) |
11 |
是 |
版本 |
|||
META_INFO_ |
數據源信息,比如: {"name":"FTOA_SWGL","revision":1,"description":"豐臺財政局OA,收文管理流程"} |
VARCHAR(4000) |
4000 |
是 |
以json格式保存流程定義的信息 |
|||
DEPLOYMENT_ID_ |
部署ID |
VARCHAR(64) |
64 |
是 |
部署ID |
|||
EDITOR_SOURCE_VALUE_ID_ |
VARCHAR(64) |
64 |
是 |
|||||
EDITOR_SOURCE_EXTRA_VALUE_ID_ |
VARCHAR(64) |
64 |
是 |
是 ACT_GE_BYTEARRAY 表中的ID_值。 |
||||
|
TENANT_ID_ |
租戶 |
VARCHAR(255) |
255 |
是 |
|
|
|
1.2.18 表名:ACT_RE_PROCDEF(流程定義:解析表)
流程解析表,解析成功了,在該表保存一條記錄。業務流程定義數據表
ACT_RE_PROCDEF(act_re_procdef) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省 |
備註 |
是 |
ID_ |
流程ID,由“流程編號:流程版本號:自增長ID”組成 |
VARCHAR(64) |
64 |
ID_ |
|||
REV_ |
版本號 |
INT(11) |
11 |
是 |
樂觀鎖 |
|||
CATEGORY_ |
流程命名空間(該編號就是流程文件targetNamespace的屬性值) |
VARCHAR(255) |
255 |
是 |
流程定義的Namespace就是類別 |
|||
NAME_ |
流程名稱(該編號就是流程文件process元素的name屬性值) |
VARCHAR(255) |
255 |
是 |
名稱 |
|||
KEY_ |
流程編號(該編號就是流程文件process元素的id屬性值) |
VARCHAR(255) |
255 |
流程定義ID |
||||
VERSION_ |
流程版本號(由程序控制,新增即爲1,修改後依次加1來完成的) |
INT(11) |
11 |
版本 |
||||
DEPLOYMENT_ID_ |
部署編號 |
VARCHAR(64) |
64 |
是 |
部署表ID |
|||
RESOURCE_NAME_ |
資源文件名稱 |
VARCHAR(4000) |
4000 |
是 |
流程bpmn文件名稱 |
|||
DGRM_RESOURCE_NAME_ |
圖片資源文件名稱 |
VARCHAR(4000) |
4000 |
是 |
png流程圖片名稱 |
|||
DESCRIPTION_ |
描述信息 |
VARCHAR(4000) |
4000 |
是 |
描述 |
|||
HAS_START_FORM_KEY_ |
是否從key啓動 |
TINYINT(4) |
4 |
是 |
start節點是否存在formKey 0否 1是 |
|||
SUSPENSION_STATE_ |
是否掛起 |
INT(11) |
11 |
是 |
注:此表和ACT_RE_DEPLOYMENT是多對一的關係,即,一個部署的bar包裏可能包含多個流程定義文件,每個流程定義文件都會有一條記錄在ACT_RE_PROCDEF表內,每個流程定義的數據,都會對於ACT_GE_BYTEARRAY表內的一個資源文件和PNG圖片文件。和ACT_GE_BYTEARRAY的關聯是通過程序用ACT_GE_BYTEARRAY.NAME與ACT_RE_PROCDEF.NAME_完成的,在數據庫表結構中沒有體現。
1.2.19 表名:ACT_RU_EVENT_SUBSCR(運行時事件)
ACT_RU_EVENT_SUBSCR(act_ru_event_subscr) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
備註 |
是 |
ID_ |
ID |
VARCHAR(64) |
64 |
||||
REV_ |
版本號 |
INT(11) |
11 |
是 |
||||
EVENT_TYPE_ |
事件類型 |
VARCHAR(255) |
255 |
|||||
EVENT_NAME_ |
事件名稱 |
VARCHAR(255) |
255 |
是 |
||||
EXECUTION_ID_ |
流程執行ID |
VARCHAR(64) |
64 |
是 |
||||
PROC_INST_ID_ |
流程實例ID |
VARCHAR(64) |
64 |
是 |
||||
ACTIVITY_ID_ |
活動ID |
VARCHAR(64) |
64 |
是 |
||||
CONFIGURATION_ |
配置信息 |
VARCHAR(255) |
255 |
是 |
||||
CREATED_ |
創建時間 |
TIMESTAMP |
CURRENT_TIMESTAMP |
1.2.20 表名:ACT_RU_EXECUTION(運行時流程執行實例)
核心,我的代辦任務查詢表
ACT_RU_EXECUTION(act_ru_execution) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
備註 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
ID_ |
|||
REV_ |
版本號 |
INT(11) |
11 |
是 |
樂觀鎖 |
|||
PROC_INST_ID_ |
流程實例編號 |
VARCHAR(64) |
64 |
是 |
流程實例ID |
|||
BUSINESS_KEY_ |
業務編號 |
VARCHAR(255) |
255 |
是 |
業務主鍵ID |
|||
PARENT_ID_ |
父執行流程 |
VARCHAR(64) |
64 |
是 |
父節點實例ID |
|||
PROC_DEF_ID_ |
流程定義Id |
VARCHAR(64) |
64 |
是 |
流程定義ID |
|||
SUPER_EXEC_ |
VARCHAR(64) |
64 |
是 |
|||||
ACT_ID_ |
實例id |
VARCHAR(255) |
255 |
是 |
ACT_HI_ACTINST中ID |
|||
IS_ACTIVE_ |
激活狀態 |
TINYINT(4) |
4 |
是 |
是否存活 |
|||
IS_CONCURRENT_ |
併發狀態 |
TINYINT(4) |
4 |
是 |
是否爲並行(true/false) |
|||
IS_SCOPE_ |
|
TINYINT(4) |
4 |
是 |
|
|||
IS_EVENT_SCOPE_ |
|
TINYINT(4) |
4 |
是 |
|
|||
SUSPENSION_STATE_ |
暫停狀態_ |
INT(11) |
11 |
是 |
掛起狀態 1激活 2掛起 |
|||
CACHED_ENT_STATE_ |
緩存結束狀態_ |
INT(11) |
11 |
是 |
1.2.21 表名:ACT_RU_IDENTITYLINK(身份聯繫)
主要存儲當前節點參與者的信息,任務參與者數據表。
ACT_RU_IDENTITYLINK(act_ru_identitylink) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
取值說明 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
|
|||
REV_ |
版本號 |
INT(11) |
11 |
是 |
|
|||
GROUP_ID_ |
用戶組ID |
VARCHAR(255) |
255 |
是 |
|
|||
TYPE_ |
用戶組類型 |
VARCHAR(255) |
255 |
是 |
owner、starter、participant。即:受讓人,候選人,所有者、起動器、參與者 |
|||
USER_ID_ |
用戶ID |
VARCHAR(255) |
255 |
是 |
|
|||
TASK_ID_ |
任務Id |
VARCHAR(64) |
64 |
是 |
|
|||
PROC_INST_ID_ |
流程實例ID |
VARCHAR(64) |
64 |
是 |
|
|||
PROC_DEF_ID_ |
流程定義Id |
VARCHAR(64) |
64 |
是 |
|
1.2.22 表名:ACT_RU_JOB(運行中的任務)
運行時定時任務數據表
ACT_RU_JOB(act_ru_job) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
取值說明 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
標識 |
|||
REV_ |
版本號 |
INT(11) |
11 |
是 |
版本 |
|||
TYPE_ |
TYPE_ |
VARCHAR(255) |
255 |
類型 |
||||
LOCK_EXP_TIME_ |
LOCK_EXP_TIME_ |
TIMESTAMP |
是 |
鎖定釋放時間 |
||||
LOCK_OWNER_ |
LOCK_OWNER_ |
VARCHAR(255) |
255 |
是 |
掛起者 |
|||
EXCLUSIVE_ |
EXCLUSIVE_ |
TINYINT(1) |
1 |
是 |
|
|||
EXECUTION_ID_ |
EXECUTION_ID_ |
VARCHAR(64) |
64 |
是 |
執行實例ID |
|||
PROCESS_INSTANCE_ID_ |
PROCESS_INSTANCE_ID_ |
VARCHAR(64) |
64 |
是 |
流程實例ID |
|||
PROC_DEF_ID_ |
PROC_DEF_ID_ |
VARCHAR(64) |
64 |
是 |
流程定義ID |
|||
RETRIES_ |
RETRIES_ |
INT(11) |
11 |
是 |
|
|||
EXCEPTION_STACK_ID_ |
EXCEPTION_STACK_ID_ |
VARCHAR(64) |
64 |
是 |
異常信息ID |
|||
EXCEPTION_MSG_ |
EXCEPTION_MSG_ |
VARCHAR(4000) |
4000 |
是 |
異常信息 |
|||
DUEDATE_ |
DUEDATE_ |
TIMESTAMP |
是 |
到期時間 |
||||
REPEAT_ |
REPEAT_ |
VARCHAR(255) |
255 |
是 |
重複 |
|||
HANDLER_TYPE_ |
HANDLER_TYPE_ |
VARCHAR(255) |
255 |
是 |
處理類型 |
|||
HANDLER_CFG_ |
HANDLER_CFG_ |
VARCHAR(4000) |
4000 |
是 |
標識 |
1.2.23 表名:ACT_RU_TASK(運行時任務數據表)
(執行中實時任務)代辦任務查詢表
ACT_RU_TASK(act_ru_task) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
取值說明 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
ID_ |
|||
REV_ |
版本號 |
INT(11) |
11 |
是 |
樂觀鎖 |
|||
EXECUTION_ID_ |
VARCHAR(64) |
64 |
是 |
執行實例ID |
||||
PROC_INST_ID_ |
流程實例ID(外鍵PROC_INST_ID_) |
VARCHAR(64) |
64 |
是 |
流程實例ID |
|||
PROC_DEF_ID_ |
流程定義ID |
VARCHAR(64) |
64 |
是 |
流程定義ID |
|||
NAME_ |
任務名稱 |
VARCHAR(255) |
255 |
是 |
節點定義名稱 |
|||
PARENT_TASK_ID_ |
父節任務ID |
VARCHAR(64) |
64 |
是 |
父節點實例ID |
|||
DESCRIPTION_ |
任務描述 |
VARCHAR(4000) |
4000 |
是 |
節點定義描述 |
|||
TASK_DEF_KEY_ |
任務定義key |
VARCHAR(255) |
255 |
是 |
任務定義的ID |
|||
OWNER_ |
所屬人(老闆) |
VARCHAR(255) |
255 |
是 |
擁有者(一般情況下爲空,只有在委託時纔有值) |
|||
ASSIGNEE_ |
代理人員 (受讓人) |
VARCHAR(255) |
255 |
是 |
簽收人或委託人 |
|||
DELEGATION_ |
代理團 |
VARCHAR(64) |
64 |
是 |
委託類型,DelegationState分爲兩種:PENDING,RESOLVED。如無委託則爲空 |
|||
PRIORITY_ |
優先權 |
INT(11) |
11 |
是 |
優先級別,默認爲:50 |
|||
CREATE_TIME_ |
創建時間 |
TIMESTAMP |
創建時間,CURRENT_TIMESTAMP |
|||||
DUE_DATE_ |
執行時間 |
DATETIME |
是 |
耗時 |
||||
SUSPENSION_STATE_ |
暫停狀態 |
INT(11) |
11 |
是 |
1代表激活 2代表掛起 |
1.2.24 表名:ACT_RU_VARIABLE(運行時流程變量數據表)
ACT_RU_VARIABLE(act_ru_variable) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
備註 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
主鍵標識 |
|||
REV_ |
版本號 |
INT(11) |
11 |
是 |
樂觀鎖 |
|||
TYPE |
編碼類型 |
VARCHAR(255) |
255 |
|||||
NAME_ |
變量名稱 |
VARCHAR(255) |
255 |
變量名稱 |
||||
EXECUTION_ID_ |
執行實例ID |
VARCHAR(64) |
64 |
是 |
執行的ID |
|||
PROC_INST_ID_ |
流程實例Id |
VARCHAR(64) |
64 |
是 |
流程實例ID |
|||
TASK_ID_ |
任務id |
VARCHAR(64) |
64 |
是 |
節點實例ID(Local) |
|||
BYTEARRAY_ID_ |
字節組ID |
VARCHAR(64) |
64 |
是 |
字節表的ID (ACT_GE_BYTEARRAY) |
|||
DOUBLE_ |
DOUBLE_ |
DOUBLE |
是 |
存儲變量類型爲Double |
||||
LONG_ |
LONG_ |
BIGINT(20) |
20 |
是 |
存儲變量類型爲long |
|||
TEXT_ |
TEXT_ |
VARCHAR(4000) |
4000 |
是 |
存儲變量值類型爲String 如此處存儲持久化對象時,值jpa對象的class |
|||
TEXT2_ |
TEXT2_ |
VARCHAR(4000) |
4000 |
是 |
此處存儲的是JPA持久化對象時,纔會有值。此值爲對象ID |
2 Activiti中主要對象的關係
本節主要介紹在工作流中出現的幾個對象及其之間的關係,以及在Activiti中各個對象是如何關聯的。
在開始之前先看看下圖,對整個對象結構有個瞭解,再結合實例詳細介紹理解。
圖1.Activiti中幾個對象之間的關係
我們模擬一個請假的流程進行分析介紹,該流程主要包含以下幾個步驟:
u 員工申請請假
u 部門領導審批
u 人事審批
u 員工銷假
ProcessInstance對象
員工開始申請請假流程,通過runtimeService.startProcessInstance()方法啓動,引擎會創建一個流程實例(ProcessInstance)。
簡單來說流程實例就是根據一次(一條)業務數據用流程驅動的入口,兩者之間是一對一的關係。流程引擎會創建一條數據到ACT_RU_EXECUTION表,同時也會根據history的級別決定是否查詢相同的歷史數據到ACT_HI_PROCINST表。
啓動完流程之後業務和流程已經建立了關聯關係,第一步結束。
啓動流程和業務關聯區別:
u 對於自定義表單來說啓動的時候會傳入businessKey作爲業務和流程的關聯屬性
u 對於動態表單來說不需要使用businessKey關聯,因爲所有的數據都保存在引擎的表中
u 對於外部表單來說businessKey是可選的,但是一般不會爲空,和自定義表單類似
Execution對象
對於初學者來說,最難理解的地方就是ProcessInstance與Execution之間的關係,要分兩種情況說明。Execution的含義就是一個流程實例(ProcessInstance)具體要執行的過程對象。
不過在說明之前先聲明兩者的對象映射關係:
ProcessInstance(1)→ Execution(N),(其中N>=1)。
1) 值相等的情況:
除了在流程中啓動的子流程之外,流程啓動之後在表ACT_RU_EXECUTION中的字段ID_和PROC_INST_ID_字段值是相同的。
圖2.ID_和PROC_INST_ID_相等
2) 值不相等的情況:
不相等的情況目前只會出現在子流程中(包含:嵌套、引入),例如一個購物流程中除了下單、出庫節點之外可能還有一個付款子流程,在實際企業應用中付款流程通常是作爲公用的,所以使用子流程作爲主流程(購物流程)的一部分。
當任務到達子流程時引擎會自動創建一個付款流程,但是這個流程有一個特殊的地方,在數據庫可以直觀體現,如下圖。
圖3.ID_和PROC_INST_ID_不相等
上圖中有兩條數據,第二條數據(嵌入的子流程)的PARENT_ID_等於第一條數據的ID_和PROC_INST_ID_,並且兩條數據的PROC_INST_ID_相同。
上圖中還有一點特殊的地方,字段IS_ACTIVE_的值分別是0和1,說明正在執行子流程主流程掛起。
Task對象
前面說了ProcessInstance和業務是一對一關聯的,和業務數據最親密;而Task則和用戶最親密的(UserTask),用戶每天的待辦事項就是一個個的Task對象。
從圖1中看得出Execution和Task是一對一關係,Task可以是任何類型的Task實現,可以是用戶任務(UserTask)、Java服務(JavaServiceTask)等,在實際流程運行中只不過面向對象不同,用戶任務(UserTask)需要有人爲參與完成(complete),Java服務需要由系統自動執行(execution)。
圖4. 表ACT_RU_TASK
Task是在流程定義中看到的最大單位,每當一個Task完成的時候引擎會把當前的任務移動到歷史中,然後插入下一個任務插入到表ACT_RU_TASK中。結合請假流程來說就是讓用戶點擊“完成”按鈕提交當前任務是的動作,引擎自動根據任務的順序流或者排他分支判斷走向。
HistoryActivity(歷史活動)
圖5. 表ACT_HI_ACTINST
Activity包含了流程中所有的活動數據,例如開始事件(圖5表中的第1條數據)、各種分支(排他分支、並行分支等,圖5表中的第2條數據)、以及剛剛提到的Task執行記錄(如圖5表中的第3、4條數據)。
有些人認爲Activity和Task是多對一關係,其實不是,從上圖中可以看出來根本沒有Task相關的字段。
結合請假流程來說,如Task中提到的當完成流程的時候所有下一步要執行的任務(包括各種分支)都會創建一個Activity記錄到數據庫中。例如領導審覈節點點擊“同意”按鈕就會流轉到人事審批節點,如果“駁回”那就流轉到調整請假內容節點,每一次操作的Task背後實際記錄更詳細的活動(Activity)。