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