Activiti工作流框架——數據庫表結構說明

activity一共23張表

23張表.png

表的命名第一部分都是以 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_: 任務id

  • act_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類文件不保存在數據庫里 。 *

  • *組織機構的管理相對較弱,如果要納入單點登錄體系內還需要改造完成,具體改造方法有待研究。 *

  • *運行時對象的執行與數據庫記錄之間的關系需要繼續研究 *

  • 歷史數據的保存及作用需要繼續研究。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容