activiti工作流引擎數據庫表結構


一、數據庫表的命名

acitiviti數據庫中表的命名都是以act_開頭的。

第二部分是一個兩個字符用例表的標識。此用例大體與服務api是匹配的。

 

act_re_*:’re’表示repository。帶此前綴的表包含的是靜態信息,如,流程定義,流程的資源(圖片,規則等)。
act_ru_*:’ru’表示runtime。這是運行時的表存儲着流程變量,用戶任務,變量,職責(job)等運行時的數據。activiti只存儲實例執行期間的運行時數據,當流程實例結束時,將刪除這些記錄。這就保證了這些運行時的表小且快。
act_id_*:’id’表示identity。這些表包含標識的信息,如用戶,用戶組,等等。
act_hi_*:’hi’表示history。就是這些表包含着歷史的相關數據,如結束的流程實例,變量,任務,等等。
act_ge_*:普通數據,各種情況都使用的數據。


二、數據庫表結構說明
1,act_ge_property:屬性數據表。存儲這個流程引擎級別的數據。
  name_:屬性名稱

  value_:屬性值

  rev_int:版本號

2,act_ge_bytearray:用來保存部署文件的大文本數據
  id_:資源文件編號,自增長

  rev_int:版本號

  name_:資源文件名稱

  deployment_id_:來自於父表act_re_deployment的主鍵

  bytes_:大文本類型,存儲文本字節流

3,act_re_deployment:用來存儲部署時需要持久化保存下來的信息
  id_:部署編號,自增長

  name_:部署包的名稱

  deploy_time_:部署時間

4,act_re_procdef:業務流程定義數據表
  id_:流程id,由“流程編號:流程版本號:自增長id”組成

  category_:流程命名空間(該編號就是流程文件targetnamespace的屬性值)

  name_:流程名稱(該編號就是流程文件process元素的name屬性值)

  key_:流程編號(該編號就是流程文件process元素的id屬性值)

  version_:流程版本號(由程序控制,新增即為1,修改后依次加1來完成的)

  deployment_id_:部署編號

  resource_name_:資源文件名稱

  dgrm_resource_name_:圖片資源文件名稱

  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_完成的,

  在數據庫表結構中沒有體現。

5,act_id_group:用來存儲用戶組信息。
  id_:用戶組名*

  rev_int:版本號

  name_:用戶組描述信息*

  type_:用戶組類型

6,act_id_membership:用來保存用戶的分組信息
  user_id_:用戶名

  group_id_:用戶組名

7,act_id_user:用戶信息表
  id_:用戶名

  rev_int:版本號

  first_:用戶名稱

  last_:用戶姓氏

  email_:郵箱

  pwd_:密碼

8,act_ru_execution:
  id_:主鍵

  rev_:版本號

  proc_inst_id_:流程實例編號

  business_key_:業務編號

  parent_id_:找到該執行實例的父級,最終會找到整個流程的執行實例

  proc_def_id_:流程id

  super_exec_: 引用的執行模板

  act_id_: 節點id

  is_active_: 是否訪問

  is_concurrent_:

  is_scope_:

9,act_ru_task:運行時任務數據表。
  id_:主鍵

  rev_:版本號

  execution_id_: 執行實例的id

  proc_inst_id_: 流程實例的id

  proc_def_id_: 流程定義的id,對應act_re_procdef 的id_

  name_: 任務名稱,對應 ***task 的name

  parent_task_id_ : 對應父任務

  description_:

  task_def_key_: ***task 的id

  owner_ : 發起人

  assignee_: 分配到任務的人

  delegation_ : 委托人

  priority_: 緊急程度

  create_time_: 發起時間

  due_time_:審批時長

10,act_ru_identitylink:任務參與者數據表。主要存儲當前節點參與者的信息。
  id_: 標識

  rev_: 版本

  group_id_: 組織id

  type_: 類型

  user_id_: 用戶id

  task_id_: 任務id

11,act_ru_variable:運行時流程變量數據表。
  id_:標識

  rev_:版本號

  type_:數據類型

  name_:變量名

  execution_id_: 執行實例id

  proc_inst_id_: 流程實例id

  task_id_: 任務id

  bytearray_id_:

  double_:若數據類型為double ,保存數據在此列

  long_: 若數據類型為long保存數據到此列

  text_: string 保存到此列

  text2_:

12,act_hi_procinst:
  id_ : 唯一標識

  proc_inst_id_ : 流程id

  business_key_ : 業務編號

  proc_def_id_ : 流程定義id

  start_time_ : 流程開始時間

  ent__time : 結束時間

  duration_ : 流程經過時間

  start_user_id_ : 開啟流程用戶id

  start_act_id_ : 開始節點

  end_act_id_: 結束節點

  super_process_instance_id_ : 父流程流程id

  delete_reason_ : 從運行中任務表中刪除原因

13,act_hi_actinst:
  id_ : 標識

  proc_def_id_ :流程定義id

  proc_inst_id_ : 流程實例id

  execution_id_ : 執行實例

  act_id_ : 節點id

  act_name_ : 節點名稱

  act_type_ : 節點類型

  assignee_ : 節點任務分配人

  start_time_ : 開始時間

  end_time_ : 結束時間

  duration : 經過時長

14,act_hi_taskinst:
  id_ : 標識

  proc_def_id_ : 流程定義id

  task_def_key_ : 任務定義id

  proc_inst_id_ : 流程實例id

  execution_id_ : 執行實例id

  parent_task_id_ : 父任務id

  name_ : 任務名稱

  description_ : 說明

  owner_ : 擁有人(發起人)

  assignee_ : 分配到任務的人

  start__time_ : 開始任務時間

  end_time_ : 結束任務時間

  duration_ : 時長

  delete_reason_ :從運行時任務表中刪除的原因

  priority_ : 緊急程度

  due_date_ :

15,act_hi_detail:啟動流程或者在任務complete之后,記錄歷史流程變量
  id_ : 標識

  type_ : variableupdate 和 formproperty 兩種值

  proc_inst_id_ : 對應流程實例id

  execution_id_ : 對應執行實例id

  task_id_ : 對應任務id

  act_inst_id : 對應節點id

  name_ : 歷史流程變量名稱,或者表單屬性的名稱

  var_type_ : 定義類型

  rev_ : 版本

  time_ : 導入時間

  bytearray_id_

  double_ : 如果定義的變量或者表單屬性的類型為double,他的值存在這里

  long_ : 如果定義的變量或者表單屬性的類型為long ,他的值存在這里

  text_ :  如果定義的變量或者表單屬性的類型為string,值存在這里

  text2_:

16,act_hi_comment 意見表
  id_ :標識

  type_ : 意見記錄類型 為comment 時 為處理意見

  time_ : 記錄時間

  user_id_ :

  task_id_ : 對應任務的id

  proc_inst_id_ : 對應的流程實例的id

  action_ : 為addcomment 時為處理意見

  message_ : 處理意見

  full_msg_ :

三、總結:
 1,流程文件部署主要涉及到3個表,分別是:act_ge_bytearray、act_re_deployment、act_re_procdef。

  主要完成“部署包”-->“流程定義文件”-->“所有包內文件”的解析部署關系。從表結構中可以看出,流程定義的元素需要每次從數據庫加載並解析,

  因為流程定義的元素沒有轉化成數據庫表來完成,當然流程元素解析后是放在緩存中的;

 2,流程定義中的java類文件不保存在數據庫里 。

 3,組織機構的管理相對較弱,如果要納入單點登錄體系內還需要改造完成。


結論及總結
l 流程文件部署主要涉及到3個表,分別是:act_ge_bytearray、act_re_deployment、act_re_procdef。主要完成“部署包”-->“流程定義文件”-->“所有包內文件”的解析部署關系。從表結構中可以看出,流程定義的元素需要每次從數據庫加載並解析,因為流程定義的元素沒有轉化成數據庫表來完成,當然流程元素解析后是放在緩存中的,具體的還需要后面詳細研究。
l 流程定義中的java類文件不保存在數據庫里 。
l 組織機構的管理相對較弱,如果要納入單點登錄體系內還需要改造完成,具體改造方法有待研究。
l 運行時對象的執行與數據庫記錄之間的關系需要繼續研究
l 歷史數據的保存及作用需要繼續研究。

 

activiti使用mybatis3做持久化工作,可以在配置中設置流程引擎啟動時創建表。
activiti使用到的表都是act_開頭的。
act_re_*:流程定義存儲。
act_ru_*:流程執行記錄,記錄流程啟動到結束的所有動作,流程結束后會清除相關記錄。
act_id_*:用戶記錄,流程中使用到的用戶和組。
act_hi_*:流程執行的歷史記錄。
act_ge_*:通用數據及設置。


使用到的表:
act_ge_bytearray:流程部署的數據。
act_ge_property:通用設置。
act_hi_actinst:流程活動的實例。
act_hi_attachment:
act_hi_comment:
act_hi_detail:
act_hi_procinst:流程實例。
act_hi_taskinst:任務實例。
act_id_group:用戶組。
act_id_info:
act_id_membership:
act_id_user:用戶。
act_re_deployment:部署記錄。
act_re_procdef:流程定義。
act_ru_execution:流程執行記錄。
act_ru_identitylink:
act_ru_job:
act_ru_task:執行的任務記錄。
act_ru_variable:執行中的變量記錄。


activiti-administrator
自帶的用戶管理系統,維護用戶和組,需要配置數據連接參數,在activiti-administrator\web-inf\applicationcontext.xml中,並加入jdbc驅動包。
activiti-cycle
pvm活動檢測的,由activiti-rest提供服務,不需配置。
activiti-explorer
可以查看用戶任務和啟動流程,由activiti-rest提供服務,不需配置。
activiti-kickstart
簡單的點對點流程定義維護工具,需要配置數據連接,把activiti.cfg.xml文件放在classes下,並加入驅動包。
activiti-modeler
在線編輯和維護流程定義的工具,最后以文件夾方式部署,需要配置activiti-modeler\web-inf\classes\configuration.properties文件。
activiti-probe
pvm的觀測服務,由activiti-rest提供服務,不需配置,可以查看deployment、processdefinition、processinstance、database。
activiti-rest
其他幾個應用的服務提供者,需要配置數據連接,把activiti.cfg.xml文件放在classes下,並加入驅動包。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM