一、 核心七大接口
RepositoryService: 提供一系列管理流程部署和流程定義的API
RunntimeService: 在流程運作時對流程執行個體進行管理和控制
TaskService: 對流程任務進行管理,例如任務提醒,任務完成和建立任務等
IdentityService: 提供對流程角色資料進行管理的API,這些角色包括使用者組、使用者以及他們之間的關系
ManagementService: 提供對流程引擎進行管理和維護的服務
HistoryService: 對流程的曆史資料進行操作,包括查詢,删除這些曆史資料
FormService:提供操作流程流轉的表單填寫服務
二、28張表的資料結構
act_ge_開頭的代表通用表,ge是general的縮寫
act_hi_ 開頭的代表曆史資料表,hi是history的縮寫,對應HistoryService接口的API
act_id_ 開頭的代表身份認證資料,id是identity的縮寫,對應IdentityService接口的API
act_re_ 開頭的代表流程存儲表,re是repository的縮寫,對應RepositoryService接口的API,存儲流程部署和流程定義的靜态資料
act_ru_開頭的代表流程運作資料表,ru是runntime的縮寫,對應RunntimeService接口API,存儲流程執行個體和使用者任務等動态資料
表結構操作:
資源庫流程規則表
運作時資料庫表
- 1) act_re_deployment 部署資訊表
- 2) act_re_model 流程設計模型部署表
- 3) act_re_procdef 流程定義資料表
曆史資料庫表
- 1) act_ru_execution 運作時流程執行執行個體表
- 2) act_ru_identitylink 運作時流程人員表,主要存儲任務節點與參與者的相關資訊
- 3) act_ru_task 運作時任務節點表
- 4) act_ru_variable 運作時流程變量資料表
組織機構表
- 1) act_hi_actinst 曆史節點表
- 2) act_hi_attachment 曆史附件表
- 3) act_ih_comment 曆史意見表
- 4) act_hi_identitylink 曆史流程人員表
- 5) act_hi_detail 曆史詳情表,提供曆史變量的查詢
- 6) act_hi_procinst 曆史流程執行個體表
- 7) act_hi_taskinst 曆史任務執行個體表
- 8) act_hi_varinst 曆史變量表
- 1) act_id_group 使用者組資訊表
- 2) act_id_info 使用者擴充資訊表
- 3) act_id_membership 使用者與使用者組對應資訊表
- 4) act_id_user 使用者資訊表
這四張表很常見,基本的組織機構管理,關于使用者認證方面建議還是自己開發一套,元件自帶的功能太簡單,使用中有很多需求難以滿足
通用資料表
- 1) act_ge_bytearray 二進制資料表
- 2) act_ge_property 屬性資料表存儲整個流程引擎級别的資料,初始化表結構時,會預設插入三條記錄
activiti.cfg.xml(activiti的配置檔案)
Activiti核心配置檔案,配置流程引擎建立工具的基本參數和資料庫連接配接池參數。
定義資料庫配置參數:
基于JDBC參數配置的資料庫連接配接 會使用預設的MyBatis連接配接池。 下面的參數可以用來配置連接配接池(來自MyBatis參數):
- jdbcUrl: 資料庫的JDBC URL。
- jdbcDriver: 對應不同資料庫類型的驅動。
- jdbcUsername: 連接配接資料庫的使用者名。
- jdbcPassword: 連接配接資料庫的密碼。
- jdbcMaxActiveConnections: 連接配接池中處于被使用狀态的連接配接的最大值。預設為10。
- jdbcMaxIdleConnections: 連接配接池中處于空閑狀态的連接配接的最大值。
- jdbcMaxCheckoutTime: 連接配接被取出使用的最長時間,超過時間會被強制回收。 預設為20000(20秒)。
- jdbcMaxWaitTime: 這是一個底層配置,讓連接配接池可以在長時間無法獲得連接配接時, 列印一條日志,并重新嘗試擷取一個連接配接。(避免因為錯誤配置導緻沉默的操作失敗)。 預設為20000(20秒)。
流程部署相關表流程執行個體相關表
- act_re_deployement 部署對象表
- act_rep_procdef 流程定義表
- act_ge_bytearray 資源檔案表
- act_ge_prperty 主鍵生成政策表(對于部署對象表的主鍵ID)
Task 任務相關表
- act_ru_execution 正在執行的執行對象表(包含執行對象ID和流程執行個體ID,如果有多個線程可能流程執行個體ID不一樣)
- act_hi_procinst 流程執行個體曆史表
- act_hi_actinst 存放曆史所有完成的任務
流程變量表
- act_ru_task 代辦任務表 (隻對應節點是UserTask的)
- act_hi_taskinst 代辦任務曆史表 (隻對應節點是UserTask的)
- act_hi_actinst 所有節點活動曆史表 (對應流程的所有節點的活動曆史,從開始節點一直到結束節點中間的所有節點的活動都會被記錄)
- act_ru_variable 正在執行的流程變量表
- act_hi_variable 流程變量曆史表
三、資料字典
儲存流程定義圖檔和xml、Serializable(序列化)的變量,即儲存所有二進制資料,特别注意類路徑部署時候,不要把svn等隐藏檔案或者其他與流程無關的檔案也一起部署到該表中,會造成一些錯誤(可能導緻流程定義無法删除)
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | 主鍵 | varchar | ||
REV_ | 版本号 | int | version | |
NAME_ | 部署的檔案名稱 | varchar | ||
DEPLOYMENT_ID_ | 來自于父表ACT_RE_DEPLOYMENT 的主鍵 | varchar | 部署的ID | |
BYTES_ | 大文本類型,存儲文本字 節流 | LONGBLOB | ||
GENERATED_ | 是否是引擎生成 | int | 0為使用者生成 1為Activiti生成 |
屬性資料表。存儲這個流程引擎級别的資料
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
NAME_ | 屬性名稱 | varchar | schema.version schema.history next.dbid | |
VALUE_ | 屬性值 | varchar | 5.* create(5.*) | |
REV_INT | 版本号 | int |
曆史活動資訊。這裡記錄流程流轉過的所有節點,與HI_TASKINST不同的是,taskinst隻記錄usertask内容
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | 主鍵ID | varchar | ||
PROC_DEF_ID_ | 流程定義ID | varchar | ||
PROC_INST_ID_ | 流程執行個體ID | varchar | ||
EXECUTION_ID_ | 流程執行ID | varchar | ||
ACT_ID_ | 活動ID | varchar | 節點定義ID | |
TASK_ID_ | 任務ID | varchar | 任務執行個體ID ,其他節點類型執行個體ID在這裡為空 | |
CALL_PROC_INST_ID_ | 請求流程執行個體ID | varchar | 調用外部流程的流程執行個體ID | |
ACT_NAME_ | 活動名稱 | varchar | 節點定義名稱 | |
ACT_TYPE_ | 活動類型 | varchar | 如startEvent、userTask | |
ASSIGNEE_ | 代理人員 | varchar | 節點簽收人 | |
START_TIME_ | 開始時間 | datetime | ||
END_TIME_ | 結束時間 | datetime | ||
DURATION_ | 時長、耗時 | int | 毫秒值 |
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | 主鍵ID | varchar | ||
REV_ | 版本号 | int | ||
USER_ID_ | 使用者ID | varchar | ||
NAME_ | 附件名稱 | varchar | ||
DESCRIPTION_ | 附件描述 | varchar | ||
TYPE_ | 附件類型 | varchar | ||
TASK_ID_ | 任務ID | varchar | 節點執行個體ID | |
PROC_INST_ID_ | 流程執行個體ID | varchar | ||
URL_ | 附件連結 | varchar | ||
CONTENT_ID_ | 内容ID | varchar | ||
START_TIME_ | 開始時間 | datetime | ACT_GE_BYTEARRAY的ID |
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | 主鍵ID | varchar | ||
TYPE_ | 意見記錄類型,為comment時,為處理意見 | varchar | 類型:event(事件)、comment(意見) | |
TIME_ | 記錄時間 | datetime | ||
USER_ID_ | 使用者ID | varchar | ||
PROC_INST_ID_ | 流程執行個體ID | varchar | ||
ACTION_ | 行為類型。為addcomment時,為處理意見 | varchar | 值為下列内容中的 一種: AddUserLink、 DeleteUserLink、 AddGroupLink、 DeleteGroupLink、 AddComment、 AddAttachment、 DeleteAttachment | |
MESSAGE_ | 處理意見 | varchar | ||
FULL_MSG_ | 全部消息 | longblob |
曆史詳情表:流程中産生的變量詳細,包括控制流程流轉的變量,業務表單中填寫的流程需要用到的變量等
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | 主鍵ID | varchar | ||
TYPE_ | 資料類型 | varchar | 類型: FormProperty, //表單 VariableUpdate //參數 | |
PROC_INST_ID_ | 流程執行個體id | varchar | ||
EXECUTION_ID_ | 執行執行個體id | varchar | ||
TASK_ID_ | 任務ID | varchar | ||
ACT_INST_ID_ | 活動執行個體ID | varchar | ACT_HI_ACTINST表的ID | |
NAME_ | 名稱 | varchar | ||
VAR_TYPE_ | 變量類型 | longblob | jpa-entity、boolean、bytes、serializable(可序列化)、自定義type(根據你自身配置)、CustomVariableType、date、double、integer、long、null、 short、string | |
REV_ | 版本号 | int | ||
TIME_ | 建立時間 | datetime | ||
BYTEARRAY_ID_ | 位元組數組id | ACT_GE_BYTEARRAY表的ID | ||
DOUBLE_ | 存儲變量類型為Double | double | ||
LONG_ | 存儲變量類型為Long | long | ||
TEXT_ | 存儲變量類型為String | varchar | ||
TEXT2_ | 存儲變量類型為String | varchar | 此處存儲的是JPA持久化對象時,才會有值。此值為對象ID |
任務參與者資料表。主要存儲曆史節點參與者的資訊
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | 主鍵ID | varchar | ||
GROUP_ID_ | 使用者組ID | varchar | ||
TYPE_ | 使用者組類型 | datetime | 主要分為以下幾種:assignee、candidate、owner、starter 、participant | |
USER_ID_ | 使用者ID | varchar | ||
TASK_ID_ | 任務ID | varchar | ||
PROC_INST_ID_ | 流程執行個體ID | varchar |
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | 主鍵ID | varchar | ||
PROC_INST_ID_ | 流程執行個體ID | varchar | ||
BUSINESS_KEY_ | 業務Key | datetime | ||
PROC_DEF_ID_ | 流程定義Id | varchar | ||
START_TIME_ | 開始時間 | datetime | ||
END_TIME_ | 結束時間 | datetime | ||
DURATION_ | 時長 | int | ||
START_USER_ID_ | 發起人員ID | varchar | ||
START_ACT_ID_ | 開始節點 | varchar | ||
END_ACT_ID_ | 結束節點 | varchar | ||
SUPER_PROCESS_INSTANCE_ID_ | 超級流程執行個體Id | varchar | ||
DELETE_REASON_ | 删除理由 | varchar |
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | 主鍵ID | varchar | ||
PROC_DEF_ID_ | 流程定義ID | varchar | ||
TASK_DEF_KEY_ | 任務定義ID | varchar | ||
PROC_INST_ID_ | 流程執行個體ID | varchar | ||
EXECUTION_ID_ | 執行ID | varchar | ||
NAME_ | 名稱 | varchar | ||
PARENT_TASK_ID_ | 父任務ID | varchar | ||
DESCRIPTION_ | 描述 | varchar | ||
OWNER_ | 實際簽收人、任務的擁有者 | varchar | 簽收人(預設為空,隻有在委托時才有值) | |
ASSIGNEE_ | 代理人 | varchar | ||
START_TIME_ | 開始時間 | datetime | ||
CLAIM_TIME_ | 提醒時間 | datetime | ||
END_TIME_ | 結束時間 | datetime | ||
DURATION_ | 耗時 | bigint | ||
DELETE_REASON_ | 删除理由 | varchar | ||
PRIORITY_ | 優先級 | int | ||
DUE_DATE_ | 應完成時間 | datetime | 過期時間,表明任務應在多長時間内完成 | |
FORM_KEY_ | 表單key | varchar | desinger節點定義的form_key屬性 |
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | 主鍵ID | varchar | ||
PROC_INST_ID_ | 流程執行個體ID | varchar | ||
EXECUTION_ID_ | 執行ID | varchar | ||
TASK_ID_ | 任務ID | varchar | ||
NAME_ | 名稱 | varchar | ||
VAR_TYPE_ | 變量類型 | varchar | ||
REV_ | 版本 | int | ||
BYTEARRAY_ID_ | 位元組數組ID | varchar | ACT_GE_BYTEARRAY表的主鍵 | |
DOUBLE_ | 存儲變量類型為Double | double | ||
LONG_ | 存儲變量類型為Long | long | ||
TEXT_ | 存儲變量類型為String | varchar | ||
TEXT2_ | 存儲變量類型為String | varchar | 此處存儲的是JPA持久化對象時,才會有值。此值為對象ID |
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | 使用者組ID | varchar | ||
REV_ | 版本 | int | ||
NAME_ | 使用者組描述資訊 | varchar | ||
TYPE_ | 使用者組類型 | varchar |
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | varchar | |||
REV_ | 版本 | int | ||
USER_ID_ | 使用者ID | varchar | ||
KEY_ | formINPut名稱 | varchar | ||
VALUE_ | 值 | varchar | ||
PASSWORD_ | 密碼 | LONGBLOB | ||
PARENT_ID_ | 父節點 | varchar |
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | varchar | |||
GROUP_ID_ | 使用者組ID | varchar | ||
USER_ID_ | 使用者ID | varchar |
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | varchar | |||
REV_ | 版本号 | int | ||
FIRST_ | 使用者名稱 | varchar | ||
LAST_ | 使用者姓氏 | varchar | ||
EMAIL_ | 郵箱 | varchar | ||
PWD_ | 密碼 | varchar | ||
PICTURE_ID_ | 頭像ID | varchar |
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | 部署編号 | varchar | ||
NAME_ | 部署包的名稱 | varchar | ||
CATEGORY_ | 類型 | varchar | ||
TENANT_ID_ | 租戶 | varchar | 多租戶通常是在軟體需要為多個不同組織服務時産生的概念 | |
DEPLOY_TIME_ | 部署時間 | TIMESTAMP |
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | 部署編号 | varchar | ||
REV_ | 樂觀鎖 | int | ||
NAME_ | 模型的名稱 | varchar | ||
KEY_ | 模型的關鍵詞,流程引擎用到 | varchar | ||
CATEGORY_ | 類型,使用者自己對流程模型的分類 | varchar | ||
CREATE_TIME_ | 建立時間 | TIMESTAMP | ||
LAST_UPDATE_TIME_ | 最後修改時間 | TIMESTAMP | ||
VERSION_ | 版本,從1開始 | int | ||
META_INFO_ | 資料源資訊,比如:{"name":"FTOA_SWGL","revision":1,"description":"xx财政局OA,收文管理流程"} | varchar | 以json格式儲存流程定義資訊 | |
DEPLOYMENT_ID_ | 部署ID | varchar | ||
EDITOR_SOURCE_VALUE_ID_ | 編輯源值ID | varchar | ||
EDITOR_SOURCE_EXTRA_VALUE_ID_ | 編輯源額外值ID(外鍵ACT_GE_BYTEARRAY | varchar | ||
TENANT_ID_ | 租戶 | varchar |
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | 流程ID,由“流程編号:流程版本号:自增長ID”組成 | varchar | ||
REV_ | 版本号 | int | 樂觀鎖 | |
CATEGORY_ | 流程命名空間(該編号就是流程檔案targetNamespace的屬性值) | varchar | 流程定義的Namespace就是類别 | |
NAME_ | 流程名稱(該編号就是流程檔案process元素的name屬性值) | varchar | ||
KEY_ | 流程編号(該編号就是流程檔案process元素的id屬性值) | varchar | ||
VERSION_ | 流程版本号(由程式控制,新增即為1,修改後依次1來完成的 | int | ||
DEPLOYMENT_ID_ | 部署編号 | varchar | ||
RESOURCE_NAME_ | 資源檔案名稱 | varchar | ||
DGRM_RESOURCE_NAME_ | 圖檔資源名稱 | varchar | 以json格式儲存流程定義資訊 | |
DESCRIPTION_ | 描述 | varchar | ||
HAS_START_FORM_KEY_ | 是否從key啟動 | int | start節點是否存在formKey 0否 1是 | |
SUSPENSION_STATE_ | 是否挂起 | int | 1 激活 2挂起 |
注:此表和ACT_RE_DEPLOYMENT是多對一的關系,即,一個部署的war包裡可能包含多個流程定義檔案,每個流程定義檔案都會有一條記錄在ACT_RE_PROCDEF表内,每個流程定義的資料,都會對于ACT_GE_BYTEARRAY表内的一個資源檔案和PNG圖檔檔案。和ACT_GE_BYTEARRAY的關聯是通過程式用ACT_GE_BYTEARRAY.NAME與ACT_RE_PROCDEF.NAME_完成的,在資料庫表結構中沒有展現。
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | varchar | |||
REV_ | 版本号 | int | 樂觀鎖 | |
EVENT_TYPE_ | 事件類型 | varchar | ||
EVENT_NAME_ | 事件名稱 | varchar | ||
EXECUTION_ID_ | 流程執行ID | varchar | ||
PROC_INST_ID_ | 流程執行個體ID | varchar | ||
ACTIVITY_ID_ | 活動ID | varchar | ||
CONFIGURATION_ | 配置資訊 | varchar | ||
CREATED_ | 建立時間 | TIMESTAMP | CURRENT_TIMESTAMP |
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | varchar | |||
REV_ | 版本号 | int | 樂觀鎖 | |
PROC_INST_ID_ | 流程執行個體編号 | varchar | ||
BUSINESS_KEY_ | 業務編号 | varchar | ||
PARENT_ID_ | 父執行流程 | varchar | ||
PROC_DEF_ID_ | 流程定義ID | varchar | ||
SUPER_EXEC_ | varchar | |||
ACT_ID_ | 執行個體ID | varchar | ||
IS_ACTIVE_ | 激活狀态 | int | 是否激活 | |
IS_CONCURRENT_ | 并發狀态 | int | 是否并行 true、false | |
IS_SCOPE_ | int | |||
IS_EVENT_SCOPE_ | int | |||
SUSPENSION_STATE_ | 暫停狀态 | int | 挂起狀态:1激活 2挂起 | |
CACHED_ENT_STATE_ | 緩存結束狀态 | int |
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | varchar | |||
REV_ | 版本号 | int | 樂觀鎖 | |
GROUP_ID_ | 使用者組ID | varchar | ||
TYPE_ | 使用者組類型 | varchar | 主要分為以下幾種:assignee、candidate、owner、starter、participant。即:受讓人,候選人,所有者、起動器、參與者 | |
USER_ID_ | 使用者ID | varchar | ||
TASK_ID_ | 任務ID | varchar | ||
PROC_INST_ID_ | 流程執行個體ID | varchar | ||
PROC_DEF_ID_ | 流程定義ID | varchar |
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | varchar | |||
REV_ | 版本号 | int | 樂觀鎖 | |
TYPE_ | 類型 | varchar | 主要分為以下幾種:assignee、candidate、owner、starter、participant。即:受讓人,候選人,所有者、起動器、參與者 | |
LOCK_EXP_TIME_ | 鎖定釋放時間 | TIMESTAMP | ||
LOCK_OWNER_ | 挂起者 | varchar | ||
EXCLUSIVE_ | int | |||
EXECUTION_ID_ | 執行執行個體ID | varchar | ||
PROCESS_INSTANCE_ID_ | 流程執行個體ID | varchar | ||
PROC_DEF_ID_ | 流程定義id | varchar | ||
RETRIES_ | varchar | |||
EXCEPTION_STACK_ID_ | 異常資訊ID | varchar | ||
EXCEPTION_MSG_ | 異常資訊 | varchar | ||
DUEDATE_ | 到期時間 | TIMESTAMP | ||
REPEAT_ | 重複 | varchar | ||
HANDLER_TYPE_ | 處理類型 | varchar | ||
HANDLER_CFG_ | 辨別 | varchar |
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | varchar | |||
REV_ | 版本号 | int | 樂觀鎖 | |
EXECUTION_ID_ | 執行執行個體ID | varchar | ||
PROCESS_INSTANCE_ID_ | 流程執行個體ID | varchar | ||
PROC_DEF_ID_ | 流程定義id | varchar | ||
NAME_ | 任務名稱 | 節點定義名稱 | ||
PARENT_TASK_ID_ | 父節點任務ID | varchar | 父節點執行個體ID | |
DESCRIPTION_ | 任務描述 | varchar | ||
TASK_DEF_KEY_ | 任務定義key | varchar | ||
OWNER_ | 所屬人 | varchar | 擁有者(一般情況下為空,隻有在委托時才有值) | |
ASSIGNEE_ | 代理人 | varchar | ||
PRIORITY_ | 優先權 | int | 優先級别,預設為:50 | |
CREATE_TIME_ | 建立時間 | TIMESTAMP | ||
DUE_DATE_ | 執行時間 | DATETIME | 耗時 | |
SUSPENSION_STATE_ | 暫停狀态 | int | 1代表激活、2代表挂起 |
字段名 | 字段描述 | 資料類型 | 預設取值 | 取值說明(例子) |
ID_ | varchar | |||
REV_ | 版本号 | int | 樂觀鎖 | |
TYPE | 編碼類型 | varchar | ||
NAME_ | 變量名稱 | varchar | ||
EXECUTION_ID_ | 執行執行個體ID | varchar | ||
PROC_INST_ID_ | 流程執行個體id | varchar | ||
TASK_ID_ | 任務ID | |||
BYTEARRAY_ID_ | 位元組數組ID | varchar | ACT_GE_BYTEARRAY表的主鍵 | |
DOUBLE_ | 存儲變量類型為Double | double | ||
LONG_ | 存儲變量類型為Long | long | ||
TEXT_ | 存儲變量類型為String | varchar | ||
TEXT2_ | 存儲變量類型為String | varchar | 此處存儲的是JPA持久化對象時,才會有值。此值為對象ID |