activity一共23張表
表的命名第一部分都是以 ACT_開頭的。
表的命名第二部分是一個兩個字符用例表的標識
act_ge_*:
‘ge’代表general(一般)。普通數據,各種情況都使用的數據。
act_ge_bytearray:二進制數據表,用來保存部署文件的大文本數據
1.ID_:資源文件編號,自增長
2.REV_INT:版本號
3.NAME_:資源文件名稱
4.DEPLOYMENT_ID_:來自于父表act_re_deployment的主鍵
5.BYTES_:大文本類型,存儲文本字節流act_ge_property:屬性數據表,存儲這整個流程引擎級別的數據。在初始化表結構時,會默認插入三條記錄。
1.NAME_:屬性名稱
2.VALUE_:屬性值
3.REV_INT:版本號
act_hi_*:
’hi’代表 history(歷史)。就是這些表包含著歷史的相關數據,如結束的流程實例、變量、任務、等等。
act_hi_actinst:歷史節點表
1.ID_ : 標識
2.PROC_DEF_ID_ :流程定義id
3.PROC_INST_ID_ : 流程實例id
4.EXECUTION_ID_ : 執行實例
5.ACT_ID_ : 節點id
6.ACT_NAME_ : 節點名稱
7.ACT_TYPE_ : 節點類型
8.ASSIGNEE_ : 節點任務分配人
9.START_TIME_ : 開始時間
10.END_TIME_ : 結束時間
11.DURATION : 經過時長act_hi_attachment:歷史附件表
act_hi_comment:歷史意見表
1.ID_ :標識
2.TYPE_ : 意見記錄類型 為comment 時 為處理意見
3.TIME_ : 記錄時間
4.USER_ID_ :
5.TASK_ID_ : 對應任務的id
6.PROC_INST_ID_ : 對應的流程實例的id
7.ACTION_ : 為AddComment 時為處理意見
8.MESSAGE_ : 處理意見
9.FULL_MSG_ :act_hi_detail:歷史詳情表,啟動流程或者在任務complete之后,記錄歷史流程變量
1.ID_ : 標識
2.TYPE_ : variableUpdate 和 formProperty 兩種值
3.PROC_INST_ID_ : 對應流程實例id
4.EXECUTION_ID_ : 對應執行實例id
5.TASK_ID_ : 對應任務id
6.ACT_INST_ID : 對應節點id
7.NAME_ : 歷史流程變量名稱,或者表單屬性的名稱
8.VAR_TYPE_ : 定義類型
9.REV_ : 版本
10.TIME_ : 導入時間
11.BYTEARRAY_ID_
12.DOUBLE_ : 如果定義的變量或者表單屬性的類型為double,他的值存在這里
13.LONG_ : 如果定義的變量或者表單屬性的類型為LONG ,他的值存在這里
14.TEXT_ : 如果定義的變量或者表單屬性的類型為string,值存在這里
15.TEXT2_:act_hi_identitylink:歷史流程人員表
act_hi_procinst: 歷史流程實例表
1.ID_ : 唯一標識
2.PROC_INST_ID_ : 流程ID
3.BUSINESS_KEY_ : 業務編號
4.PROC_DEF_ID_ : 流程定義id
5.START_TIME_ : 流程開始時間
6.ENT__TIME : 結束時間
7.DURATION_ : 流程經過時間
8.START_USER_ID_ : 開啟流程用戶id
9.START_ACT_ID_ : 開始節點
10.END_ACT_ID_: 結束節點
11.SUPER_PROCESS_INSTANCE_ID_ : 父流程流程id
12.DELETE_REASON_ : 從運行中任務表中刪除原因act_hi_taskinst: 歷史任務實例表
1.ID_ : 標識
2.PROC_DEF_ID_ : 流程定義id
3.TASK_DEF_KEY_ : 任務定義id
4.PROC_INST_ID_ : 流程實例id
5.EXECUTION_ID_ : 執行實例id
6.PARENT_TASK_ID_ : 父任務id
7.NAME_ : 任務名稱
8.DESCRIPTION_ : 說明
9.OWNER_ : 擁有人(發起人)
10.ASSIGNEE_ : 分配到任務的人
11.START__TIME_ : 開始任務時間
12.END_TIME_ : 結束任務時間
13.DURATION_ : 時長
14.DELETE_REASON_ :從運行時任務表中刪除的原因
15.PRIORITY_ : 緊急程度
16.DUE_DATE_ :act_hi_varinst:歷史變量表
act_id_*:
’id’代表 identity(身份)。這些表包含著標識的信息,如用戶、用戶組、等等。
act_id_group:用戶組信息表,用來存儲用戶組信息。
1.ID_:用戶組名*
2.REV_INT:版本號
3.NAME_:用戶組描述信息*
4.TYPE_:用戶組類型act_id_info:用戶擴展信息表
act_id_membership:用戶與用戶組對應信息表,用來保存用戶的分組信息
1.USER_ID_:用戶名
2.GROUP_ID_:用戶組名act_id_user:用戶信息表
1.ID_:用戶名
2.REV_INT:版本號
3.FIRST_:用戶名稱
4.LAST_:用戶姓氏
5.EMAIL_:郵箱
6.PWD_:密碼
act_re_*:
’re’代表 repository(倉庫)。帶此前綴的表包含的是靜態信息,如,流程定義、流程的資源(圖片、規則,等)。
act_re_deployment:部署信息表,用來存儲部署時需要持久化保存下來的信息
1.ID_:部署編號,自增長
2.NAME_:部署包的名稱
3.DEPLOY_TIME_:部署時間act_re_model 流程設計模型部署表
act_re_procdef:業務流程定義數據表
1.ID_:流程ID,由“流程編號:流程版本號:自增長ID”組成
2.CATEGORY_:流程命名空間(該編號就是流程文件targetNamespace的屬性值)
3.NAME_:流程名稱(該編號就是流程文件process元素的name屬性值)
4.KEY_:流程編號(該編號就是流程文件process元素的id屬性值)
5.VERSION_:流程版本號(由程序控制,新增即為1,修改后依次加1來完成的)
6.DEPLOYMENT_ID_:部署編號
7.RESOURCE_NAME_:資源文件名稱
8.DGRM_RESOURCE_NAME_:圖片資源文件名稱
9.HAS_START_FROM_KEY_:是否有Start From Key
注:此表和ACT_RE_DEPLOYMENT是多對一的關系,即,一個部署的bar包里可能包含多個流程定義文件,每個流程定義文件都會有一條記錄在ACT_REPROCDEF表內,每個流程定義的數據,都會對于ACT_GE_BYTEARRAY表內的一個資源文件和PNG圖片文件。和ACT_GE_BYTEARRAY的關聯是通過程序用ACT_GE_BYTEARRAY.NAME與ACT_RE_PROCDEF.NAME_完成的,在數據庫表結構中沒有體現。
act_ru_*:
’ru’代表 runtime(運行時)。就是這個運行時的表存儲著流程變量、用戶任務、變量、作業,等中的運行時的數據。 activiti 只存儲流程實例執行期間的運行時數據,當流程實例結束時,將刪除這些記錄。這就使這些運行時的表保持 的小且快。
act_ru_event_subscr
act_ru_execution:運行時流程執行實例表
1.ID_:主鍵,這個主鍵有可能和PROC_INST_ID_相同,相同的情況表示這條記錄為主實例記錄。
2.REV_:版本,表示數據庫表更新次數。
3.PROC_INST_ID_:流程實例編號,一個流程實例不管有多少條分支實例,這個ID都是一致的。
4.BUSINESS_KEY_:業務編號,業務主鍵,主流程才會使用業務主鍵,另外這個業務主鍵字段在表中有唯一約束。
5.PARENT_ID_:找到該執行實例的父級,最終會找到整個流程的執行實例
6.PROC_DEF_ID_:流程定義ID
7.SUPER_EXEC_: 引用的執行模板,這個如果存在表示這個實例記錄為一個外部子流程記錄,對應主流程的主鍵ID。
8.ACT_ID_: 節點id,表示流程運行到哪個節點
9.IS_ACTIVE_: 是否活動流程實例
10.IS_CONCURRENT_:是否并發。上圖同步節點后為并發,如果是并發多實例也是為1。
11.IS_SCOPE_: 主實例為1,子實例為0。
12.TENANT_ID_ : 這個字段表示租戶ID。可以應對多租戶的設計。
13.IS_EVENT_SCOPE: 沒有使用到事件的情況下,一般都為0。
14.SUSPENSION_STATE_:是否暫停。
act_ru_identitylink:運行時流程人員表,主要存儲任務節點與參與者的相關信息
1.ID_: 標識
2.REV_: 版本
3.GROUP_ID_: 組織id
4.TYPE_: 類型
5.USER_ID_: 用戶id
6.TASK_ID_: 任務idact_ru_job
act_ru_task:運行時任務節點表
1.ID_:
2.REV_:
3.EXECUTION_ID_: 執行實例的id
4.PROC_INST_ID_: 流程實例的id
5.PROC_DEF_ID_: 流程定義的id,對應act_re_procdef 的id_
6.NAME_: 任務名稱,對應 ***task 的name
7.PARENT_TASK_ID_ : 對應父任務
8.DESCRIPTION_:
9.TASK_DEF_KEY_: ***task 的id
10.OWNER_ : 發起人
11.ASSIGNEE_: 分配到任務的人
12.DELEGATION_ : 委托人
13.PRIORITY_: 緊急程度
14.CREATE_TIME_: 發起時間
15.DUE_TIME_:審批時長act_ru_variable:運行時流程變量數據表
1.ID_:標識
2.REV_:版本號
3.TYPE_:數據類型
4.NAME_:變量名
5.EXECUTION_ID_: 執行實例id
6.PROC_INST_ID_: 流程實例id
7.TASK_ID_: 任務id
8.BYTEARRAY_ID_:
9.DOUBLE_:若數據類型為double ,保存數據在此列
10.LONG_: 若數據類型為Long保存數據到此列
11.TEXT_: string 保存到此列
12.TEXT2_:
結論及總結:
*流程文件部署主要涉及到3個表,分別是:ACT_GE_BYTEARRAY、ACT_RE_DEPLOYMENT、ACT_RE_PROCDEF。主要完成“部署包”-->“流程定義文件”-->“所有包內文件”的解析部署關系。從表結構中可以看出,流程定義的元素需要每次從數據庫加載并解析,因為流程定義的元素沒有轉化成數據庫表來完成,當然流程元素解析后是放在緩存中的,具體的還需要后面詳細研究。 *
*流程定義中的java類文件不保存在數據庫里 。 *
*組織機構的管理相對較弱,如果要納入單點登錄體系內還需要改造完成,具體改造方法有待研究。 *
*運行時對象的執行與數據庫記錄之間的關系需要繼續研究 *
歷史數據的保存及作用需要繼續研究。