Activiti工做流總共包含23張數據表,全部的表名默認以「ACT_」開頭。java
而且表名的第二部分用兩個字母代表表的用例,而這個用例也基本上跟Service API匹配。mysql
u ACT_GE_* : 「GE」表明「General」(通用),用在各類狀況下;sql
u ACT_HI_* : 「HI」表明「History」(歷史),這些表中保存的都是歷史數據,好比執行過的流程實例、變量、任務,等等。Activit默認提供了4種歷史級別:數據庫
Ø none: 不保存任何歷史記錄,能夠提升系統性能;json
Ø activity:保存全部的流程實例、任務、活動信息;數組
Ø audit:也是Activiti的默認級別,保存全部的流程實例、任務、活動、表單屬性;緩存
Ø full:最完整的歷史記錄,除了包含audit級別的信息以外還能保存詳細,例如:流程變量。併發
對於幾種級別根據對功能的要求選擇,若是須要往後跟蹤詳細能夠開啓full。ide
u ACT_ID_* : 「ID」表明「Identity」(身份),這些表中保存的都是身份信息,如用戶和組以及二者之間的關係。若是Activiti被集成在某一系統當中的話,這些表能夠不用,能夠直接使用現有系統中的用戶或組信息;svn
u ACT_RE_* : 「RE」表明「Repository」(倉庫),這些表中保存一些‘靜態’信息,如流程定義和流程資源(如圖片、規則等);
u ACT_RU_* : 「RU」表明「Runtime」(運行時),這些表中保存一些流程實例、用戶任務、變量等的運行時數據。Activiti只保存流程實例在執行過程當中的運行時數據,而且當流程結束後會當即移除這些數據,這是爲了保證運行時表儘可能的小並運行的足夠快;
表分類 |
表名 |
解釋 |
通常數據 |
通用的流程定義和流程資源 |
|
系統相關屬性 |
||
歷史的流程實例 |
||
歷史的流程附件 |
||
歷史的說明性信息 |
||
歷史的流程運行中的細節信息 |
||
歷史的流程運行過程當中用戶關係 |
||
歷史的流程實例 |
||
歷史的任務實例 |
||
歷史的流程運行中的變量信息 |
||
身份信息-組信息 |
||
身份信息-組信息 |
||
身份信息-用戶和組關係的中間表 |
||
身份信息-用戶信息 |
||
部署單元信息 |
||
模型信息 |
||
已部署的流程定義 |
||
運行時事件 |
||
運行時流程執行實例 |
||
運行時用戶關係信息 |
||
運行時做業 |
||
運行時任務 |
||
運行時變量表 |
用來保存部署文件的大文本數據。
保存流程定義圖片和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生成 |
屬性數據表。存儲這個流程引擎級別的數據。
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 |
是 |
歷史活動信息。這裏記錄流程流轉過的全部節點,與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) |
是 |
毫秒值 |
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 |
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 |
是 |
歷史詳情表:流程中產生的變量詳細,包括控制流程流轉的變量,業務表單中填寫的流程須要用到的變量等。
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
任務參與者數據表。主要存儲歷史節點參與者的信息。
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 |
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 |
是 |
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屬性 |
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 |
是 |
用來存儲用戶組信息。
ACT_ID_GROUP(act_id_group) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
備註 |
是 |
ID_ |
用戶組ID |
VARCHAR(64) |
64 |
||||
REV_ |
版本號 |
INT(11) |
11 |
是 |
||||
NAME_ |
用戶組描述信息 |
VARCHAR(255) |
255 |
是 |
||||
TYPE_ |
VARCHAR(255) |
255 |
是 |
用戶擴展信息表。目前該表未用到。
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 |
是 |
用來保存用戶的分組信息
ACT_ID_MEMBERSHIP(act_id_membership) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
備註 |
是 |
USER_ID_ |
用戶Id |
VARCHAR(64) |
64 |
||||
是 |
GROUP_ID_ |
用戶組Id |
VARCHAR(64) |
64 |
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 |
是 |
用來存儲部署時須要持久化保存下來的信息
ACT_RE_DEPLOYMENT(act_re_deployment) |
||||||||
是否主鍵 |
字段名 |
字段描述 |
數據類型 |
長度 |
可空 |
約束 |
缺省值 |
備註 |
是 |
ID_ |
部署編號,自增加 |
VARCHAR(64) |
64 |
||||
NAME_ |
部署包的名稱 |
VARCHAR(255) |
255 |
是 |
||||
CATEGORY_ |
類型 |
VARCHAR(255) |
255 |
是 |
||||
TENANT_ID_ |
租戶 |
VARCHAR(255) |
255 |
是 |
多租戶一般是在軟件須要爲多個不一樣組織服務時產生的概念 |
|||
DEPLOY_TIME_ |
TIMESTAMP |
CURRENT_TIMESTAMP |
建立流程的設計模型時,保存在該數據表中。
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 |
是 |
流程解析表,解析成功了,在該表保存一條記錄。業務流程定義數據表
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_完成的,在數據庫表結構中沒有體現。
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 |
核心,個人×××任務查詢表
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 |
是 |
主要存儲當前節點參與者的信息,任務參與者數據表。
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 |
是 |
運行時定時任務數據表
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 |
是 |
標識 |
(執行中實時任務)×××任務查詢表
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表明掛起 |
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 |
本節主要介紹在工做流中出現的幾個對象及其之間的關係,以及在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表中的第三、4條數據)。
有些人認爲Activity和Task是多對一關係,其實不是,從上圖中能夠看出來根本沒有Task相關的字段。
結合請假流程來講,如Task中提到的當完成流程的時候全部下一步要執行的任務(包括各類分支)都會建立一個Activity記錄到數據庫中。例如領導審覈節點點擊「贊成」按鈕就會流轉到人事審批節點,若是「駁回」那就流轉到調整請假內容節點,每一次操做的Task背後實際記錄更詳細的活動(Activity)。