天天看點

activity 工作流 學習

一、 核心七大接口

RepositoryService: 提供一系列管理流程部署和流程定義的API

RunntimeService: 在流程運作時對流程執行個體進行管理和控制

TaskService: 對流程任務進行管理,例如任務提醒,任務完成和建立任務等

IdentityService: 提供對流程角色資料進行管理的API,這些角色包括使用者組、使用者以及他們之間的關系

ManagementService:  提供對流程引擎進行管理和維護的服務

HistoryService: 對流程的曆史資料進行操作,包括查詢,删除這些曆史資料

FormService:提供操作流程流轉的表單填寫服務

二、28張表的資料結構

activity 工作流 學習

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核心配置檔案,配置流程引擎建立工具的基本參數和資料庫連接配接池參數。 

定義資料庫配置參數: 

  • jdbcUrl: 資料庫的JDBC URL。 
  • jdbcDriver: 對應不同資料庫類型的驅動。 
  • jdbcUsername: 連接配接資料庫的使用者名。 
  • jdbcPassword: 連接配接資料庫的密碼。 
基于JDBC參數配置的資料庫連接配接 會使用預設的MyBatis連接配接池。 下面的參數可以用來配置連接配接池(來自MyBatis參數): 
  • jdbcMaxActiveConnections: 連接配接池中處于被使用狀态的連接配接的最大值。預設為10。 
  • jdbcMaxIdleConnections: 連接配接池中處于空閑狀态的連接配接的最大值。 
  • jdbcMaxCheckoutTime: 連接配接被取出使用的最長時間,超過時間會被強制回收。 預設為20000(20秒)。 
  • jdbcMaxWaitTime: 這是一個底層配置,讓連接配接池可以在長時間無法獲得連接配接時, 列印一條日志,并重新嘗試擷取一個連接配接。(避免因為錯誤配置導緻沉默的操作失敗)。 預設為20000(20秒)。
 流程部署相關表 
  • act_re_deployement 部署對象表 
  • act_rep_procdef  流程定義表 
  • act_ge_bytearray 資源檔案表 
  • act_ge_prperty  主鍵生成政策表(對于部署對象表的主鍵ID)
 流程執行個體相關表
  •  act_ru_execution 正在執行的執行對象表(包含執行對象ID和流程執行個體ID,如果有多個線程可能流程執行個體ID不一樣)
  •  act_hi_procinst 流程執行個體曆史表
  •  act_hi_actinst 存放曆史所有完成的任務
 Task 任務相關表
  •  act_ru_task 代辦任務表 (隻對應節點是UserTask的)
  •  act_hi_taskinst 代辦任務曆史表 (隻對應節點是UserTask的) 
  •  act_hi_actinst  所有節點活動曆史表 (對應流程的所有節點的活動曆史,從開始節點一直到結束節點中間的所有節點的活動都會被記錄)
流程變量表
  •  act_ru_variable 正在執行的流程變量表
  •  act_hi_variable 流程變量曆史表

三、資料字典

        儲存流程定義圖檔和xml、Serializable(序列化)的變量,即儲存所有二進制資料,特别注意類路徑部署時候,不要把svn等隐藏檔案或者其他與流程無關的檔案也一起部署到該表中,會造成一些錯誤(可能導緻流程定義無法删除) 

ACT_GE_BYTEARRAY(act_ge_bytearray) 通用的流程定義和流程資源

字段名 字段描述 資料類型 預設取值 取值說明(例子)
ID_     主鍵 varchar
REV_   版本号 int version       
NAME_ 部署的檔案名稱 varchar
DEPLOYMENT_ID_

來自于父表ACT_RE_DEPLOYMENT 

的主鍵

varchar 部署的ID
BYTES_

大文本類型,存儲文本字

節流

LONGBLOB 
GENERATED_ 是否是引擎生成 int

0為使用者生成

1為Activiti生成

        屬性資料表。存儲這個流程引擎級别的資料

ACT_GE_PROPERTY (系統相關屬性)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
NAME_     屬性名稱 varchar

schema.version 

schema.history 

next.dbid

VALUE_ 屬性值 varchar

5.* 

create(5.*)

REV_INT 版本号 int

        曆史活動資訊。這裡記錄流程流轉過的所有節點,與HI_TASKINST不同的是,taskinst隻記錄usertask内容

ACT_HI_ACTINST (曆史節點表)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
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 毫秒值

ACT_HI_ATTACHMENT (附件資訊)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
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

ACT_HI_COMMENT (曆史審批意見表)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
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

               曆史詳情表:流程中産生的變量詳細,包括控制流程流轉的變量,業務表單中填寫的流程需要用到的變量等

ACT_HI_DETAIL (曆史詳細資訊)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
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

任務參與者資料表。主要存儲曆史節點參與者的資訊

ACT_HI_IDENTITYLINK (曆史流程人員表)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
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

ACT_HI_PROCINST(曆史流程執行個體資訊)核心表

字段名 字段描述 資料類型 預設取值 取值說明(例子)
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

ACT_HI_TASKINST(曆史任務流程執行個體資訊)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
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屬性

ACT_HI_VARINST(曆史變量資訊)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
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

ACT_ID_GROUP(使用者組表)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
ID_   使用者組ID varchar
REV_ 版本 int
NAME_ 使用者組描述資訊 varchar
TYPE_  使用者組類型 varchar

ACT_ID_INFO (使用者擴充資訊表)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
ID_   varchar
REV_ 版本 int
USER_ID_ 使用者ID varchar
KEY_  formINPut名稱 varchar
VALUE_ varchar
PASSWORD_ 密碼 LONGBLOB
PARENT_ID_ 父節點    varchar

ACT_ID_MEMBERSHIP(使用者使用者組關聯表)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
ID_   varchar
GROUP_ID_ 使用者組ID varchar
USER_ID_ 使用者ID varchar

ACT_ID_USER(使用者資訊表)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
ID_   varchar
REV_ 版本号 int
FIRST_ 使用者名稱 varchar
LAST_ 使用者姓氏  varchar
EMAIL_ 郵箱 varchar
PWD_ 密碼 varchar
PICTURE_ID_ 頭像ID varchar

ACT_RE_DEPLOYMENT(部署資訊表)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
ID_   部署編号 varchar
NAME_ 部署包的名稱 varchar
CATEGORY_ 類型 varchar
TENANT_ID_ 租戶 varchar 多租戶通常是在軟體需要為多個不同組織服務時産生的概念
DEPLOY_TIME_ 部署時間 TIMESTAMP 

ACT_RE_MODEL (流程設計模型表)- 建立流程的設計模型時,儲存在該資料表中

字段名 字段描述 資料類型 預設取值 取值說明(例子)
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

ACT_RE_PROCDEF (流程定義:解析表)流程解析表,解析成功了,在該表儲存一條記錄

字段名 字段描述 資料類型 預設取值 取值說明(例子)
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_完成的,在資料庫表結構中沒有展現。

ACT_RU_EVENT_SUBSCR (運作時事件)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
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 

ACT_RU_EXECUTION (運作時流程執行執行個體)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
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

ACT_RU_IDENTITYLINK(身份聯系)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
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

ACT_RU_JOB(運作中的任務)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
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

ACT_RU_TASK(運作時任務資料表)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
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代表挂起

ACT_RU_VARIABLE(運作時流程變量資料表)

字段名 字段描述 資料類型 預設取值 取值說明(例子)
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

繼續閱讀