Activiti工作流對象關系及表結構_第1頁
Activiti工作流對象關系及表結構_第2頁
Activiti工作流對象關系及表結構_第3頁
Activiti工作流對象關系及表結構_第4頁
Activiti工作流對象關系及表結構_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、西安創(chuàng)富電子科技有限公司 activiti數(shù)據(jù)表結構和核心對象關系activiti數(shù)據(jù)表結構和核心對象關系西安創(chuàng)富電子科技有限公司二一三年九月版本歷史日期版本說明(文檔修改描述)作者審核人2013.9文檔初稿焦劍波目錄1activiti數(shù)據(jù)庫表結構41.1數(shù)據(jù)庫表名說明41.2數(shù)據(jù)庫表結構42activiti中主要對象的關系161 activiti數(shù)據(jù)庫表結構1.1 數(shù)據(jù)庫表名說明 activiti工作流總共包含23張數(shù)據(jù)表,所有的表名默認以“act_”開頭。并且表名的第二部分用兩個字母表明表的用例,而這個用例也基本上跟service api匹配。u act_ge_* : “ge”代表“gen

2、eral”(通用),用在各種情況下;u act_hi_* : “hi”代表“history”(歷史),這些表中保存的都是歷史數(shù)據(jù),比如執(zhí)行過的流程實例、變量、任務,等等。當系統(tǒng)中配置history的信息記錄級別為“none”時,這一類表也可以不用;u act_id_* : “id”代表“identity”(身份),這些表中保存的都身份信息,如用戶和組以及兩者之間的關系。如果activiti被集成在某一系統(tǒng)當中的話,這些表可以不用,可以直接使用現(xiàn)有系統(tǒng)中的用戶或組信息;u act_re_* : “re”代表“repository”(倉庫),這些表中保存一些 靜態(tài)信息,如流程定義和流程資源(如圖片

3、、規(guī)則等);u act_ru_* : “ru”代表“runtime”(運行時),這些表中保存一些流程實例、用戶任務、變量等的運行時數(shù)據(jù)。activiti只保存流程實例在執(zhí)行過程中的運行時數(shù)據(jù),并且當流程結束后會立即移除這些數(shù)據(jù),這是為了保證運行時表盡量的小并運行的足夠快;1.2 數(shù)據(jù)庫表結構activiti數(shù)據(jù)表清單:表名解釋act_ge_bytearray通用的流程定義和流程資源act_ge_property系統(tǒng)相關屬性act_hi_actinst歷史的流程實例act_hi_attachment歷史的流程附件act_hi_comment歷史的說明性信息act_hi_detail歷史的流程運行

4、中的細節(jié)信息act_hi_identitylink歷史的流程運行過程中用戶關系act_hi_procinst歷史的流程實例act_hi_taskinst歷史的任務實例act_hi_varinst歷史的流程運行中的變量信息act_id_group身份信息-組信息act_id_info身份信息-組信息act_id_membership身份信息-用戶和組關系的中間表act_id_user身份信息-用戶信息act_re_deployment部署單元信息act_re_model模型信息act_re_procdef已部署的流程定義act_ru_event_subscr運行時事件act_ru_executi

5、on運行時流程執(zhí)行實例act_ru_identitylink運行時用戶關系信息act_ru_job運行時作業(yè)act_ru_task運行時任務act_ru_variable運行時變量表2 activiti中主要對象的關系本節(jié)主要介紹在工作流中出現(xiàn)的幾個對象及其之間的關系,以及在activiti中各個對象是如何關聯(lián)的。在開始之前先看看下圖,對整個對象結構有個了解,再結合實例詳細介紹理解。圖1. activiti中幾個對象之間的關系我們模擬一個請假的流程進行分析介紹,該流程主要包含以下幾個步驟:u 員工申請請假u 部門領導審批u 人事審批u 員工銷假processinstance對象員工開始申請請假

6、流程,通過runtimeservice.startprocessinstance()方法啟動,引擎會創(chuàng)建一個流程實例(processinstance)。簡單來說流程實例就是根據(jù)一次(一條)業(yè)務數(shù)據(jù)用流程驅(qū)動的入口,兩者之間是一對一的關系。流程引擎會創(chuàng)建一條數(shù)據(jù)到act_ru_execution表,同時也會根據(jù)history的級別決定是否查詢相同的歷史數(shù)據(jù)到act_hi_procinst表。啟動完流程之后業(yè)務和流程已經(jīng)建立了關聯(lián)關系,第一步結束。啟動流程和業(yè)務關聯(lián)區(qū)別:u 對于自定義表單來說啟動的時候會傳入businesskey作為業(yè)務和流程的關聯(lián)屬性u 對于動態(tài)表單來說不需要使用busines

7、skey關聯(lián),因為所有的數(shù)據(jù)都保存在引擎的表中u 對于外部表單來說businesskey是可選的,但是一般不會為空,和自定義表單類似execution對象對于初學者來說,最難理解的地方就是processinstance與execution之間的關系,要分兩種情況說明。execution的含義就是一個流程實例(processinstance)具體要執(zhí)行的過程對象。不過在說明之前先聲明兩者的對象映射關系:processinstance(1) execution(n),(其中n >= 1)。1) 值相等的情況:除了在流程中啟動的子流程之外,流程啟動之后在表act_ru_execution中的字

8、段id_和proc_inst_id_字段值是相同的。圖2. id_和proc_inst_id_相等2) 值不相等的情況:不相等的情況目前只會出現(xiàn)在子流程中(包含:嵌套、引入),例如一個購物流程中除了下單、出庫節(jié)點之外可能還有一個付款子流程,在實際企業(yè)應用中付款流程通常是作為公用的,所以使用子流程作為主流程(購物流程)的一部分。當任務到達子流程時引擎會自動創(chuàng)建一個付款流程,但是這個流程有一個特殊的地方,在數(shù)據(jù)庫可以直觀體現(xiàn),如下圖。圖3. id_和proc_inst_id_不相等上圖中有兩條數(shù)據(jù),第二條數(shù)據(jù)(嵌入的子流程)的parent_id_等于第一條數(shù)據(jù)的id_和proc_inst_id_,

9、并且兩條數(shù)據(jù)的proc_inst_id_相同。上圖中還有一點特殊的地方,字段is_active_的值分別是0和1,說明正在執(zhí)行子流程主流程掛起。task對象前面說了processinstance和業(yè)務是一對一關聯(lián)的,和業(yè)務數(shù)據(jù)最親密;而task則和用戶最親密的(usertask),用戶每天的待辦事項就是一個個的task對象。從圖1中看得出execution和task是一對一關系,task可以是任何類型的task實現(xiàn),可以是用戶任務(usertask)、java服務(java servicetask)等,在實際流程運行中只不過面向?qū)ο蟛煌?,用戶任?usertask)需要有人為參與完成(comp

10、lete),java服務需要由系統(tǒng)自動執(zhí)行(execution)。圖4. 表act_ru_tasktask是在流程定義中看到的最大單位,每當一個task完成的時候會引擎會把當前的任務移動到歷史中,然后插入下一個任務插入到表act_ru_task中。結合請假流程來說就是讓用戶點擊“完成”按鈕提交當前任務是的動作,引擎自動根據(jù)任務的順序流或者排他分支判斷走向。historyactivity(歷史活動)圖5. 表act_hi_actinstactivity包含了流程中所有的活動數(shù)據(jù),例如開始事件(圖5表中的第1條數(shù)據(jù))、各種分支(排他分支、并行分支等,圖5表中的第2條數(shù)據(jù))、以及剛剛提到的task執(zhí)行記錄(如圖5表中的第3、4條數(shù)據(jù))。有些人認為activity和task是多對一關系,其實不是,從上圖中可以看出來根

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論