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

下載本文檔

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

文檔簡介

1、Activiti 數據表結構和核心對象關系西安創富電子科技有限公司二0三年九月版本歷史日期版本說明(文檔修改描述)作者審核人2013.9文檔初稿焦劍波目錄1 ACTIVITI 數據庫表結構 41.1 數據庫表名說明 41.2 數據庫表結構 42 ACTIVITI 中主要對象的關系 51 Activiti數據庫表結構1.1數據庫表名說明Activiti工作流總共包含23張數據表,所有的表名默認以“ ACT_開頭。并且表名的第二部分用兩個字母表明表的用例, 而這個用例也基本上跟Service API匹配。ACT_GE_*“GE代表“ General” (通用),用在各種情況下;ACT_HI_*:

2、“HI”代表“ History ” (歷史),這些表中保存的都是歷史數 據,比如執行過的流程實例、變量、任務,等等。當系統中配置history的信息記錄級別為“ none”時,這一類表也可以不用;ACT_ID_* : “ID”代表“ Identity ” (身份),這些表中保存的都身份信 息,如用戶和組以及兩者之間的關系。如果 Activiti 被集成在某一系統當 中的話,這些表可以不用,可以直接使用現有系統中的用戶或組信息;ACT_RE_* “RE代表“ Repository ” (倉庫),這些表中保存一些靜態信息,如流程定義和流程資源(如圖片、規則等);ACT_RU_* “ RU代表“ R

3、un time” (運行時),這些表中保存一些流程實 例、用戶任務、變量等的運行時數據。Activiti只保存流程實例在執行過程中的運行時數據,并且當流程結束后會立即移除這些數據,這是為了保證運 行時表盡量的小并運行的足夠快;1.2數據庫表結構Activiti 數據表清單:表名解釋ACT_GE_BYTEARRAY通用的流程定義和流程資源ACT_GE_PROPERTY系統相關屬性ACT_HI_ACTINST歷史的流程實例ACT_HI_ATTACHMENT歷史的流程附件ACT_HI_COMMENT歷史的說明性信息ACT_HI_DETAIL歷史的流程運行中的細節信息ACT_HI_IDENTITYLI

4、NK歷史的流程運行過程中用戶關系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_EXECUTION運行時流程執行實例ACT RU IDENT

5、ITYLINK運行時用戶關系信息ACT RU JOB運行時作業ACT RU TASK運行時任務ACT RU VARIABLE運行時變量表2 Activiti中主要對象的關系本節主要介紹在工作流中出現的幾個對象及其之間的關系,以及在Activiti中各個對象是如何關聯的。在開始之前先看看下圖,對整個對象結構有個了解,再結合實例詳細介紹理圖1. Activiti 中幾個對象之間的關系我們模擬一個請假的流程進行分析介紹,該流程主要包含以下幾個步驟:員工申請請假部門領導審批人事審批員工銷假Process In sta nee 對象員工開始申請請假流程,通過runtimeService.startPro

6、cesslnstance()方法啟動,引擎會創建一個流程實例(Processlnstanee )。簡單來說流程實例就是根據一次(一條)業務數據用流程驅動的入口,兩者 之間是一對一的關系。流程引擎會創建一條數據到 ACT_RU_EXECUTI表|同時 也會根據history 的級別決定是否查詢相同的歷史數據到 ACT_HI_PROCINS表。啟動完流程之后業務和流程已經建立了關聯關系,第一步結束。啟動流程和業務關聯區別:對于自定義表單來說啟動的時候會傳入businessKey作為業務和流程的 關聯屬性對于動態表單來說不需要使用bus in essKey關聯,因為所有的數據都保存 在引擎的表中對于

7、外部表單來說businessKey是可選的,但是一般不會為空,和自定義 表單類似Execution 對象對于初學者來說,最難理解的地方就是ProcessInstanee與Execution之間 的關系,要分兩種情況說明。Execution的含義就是一個流程實例(ProcessInstanee )具體要執行的過程對象。不過在說明之前先聲明兩者的對象映射關系:Process In sta nee (1) Executi on( N),(其中 N= 1 )。1)值相等的情況:除了在流程中啟動的子流程之外,流程啟動之后在表ACT_RU_EXECUTI中N的字段ID_和PROC_INST_I字段值是相同

8、的。li ID,|U REV, IBl/5IM5S_KEY_ PARENT| ffiQC_PEF_|D_ 5UPER_EXEC_ ACTJP,| IS_AtTIVE_3442 5441 蛀I eave;: 1:34(null)Deport Back1圖 2. ID_和 PROC_INST_ID相等2)值不相等的情況:不相等的情況目前只會出現在子流程中(包含:嵌套、引入),例如一個購物流程中除了下單、出庫節點之外可能還有一個付款子流程,在實際企業應用中付款流程通常是作為公用的,所以使用子流程作為主流程(購物流程)的一部分。當任務到達子流程時引擎會自動創建一個付款流程,但是這個流程有一個特殊的地方

9、,在數據庫可以直觀體現,如下圖。FrJ13 IDl |9 REV.|i ROC.WSTIDIl BU5nE5S.KEY_| TOREMT_D_| ITOCDEFJD.|j5UFEJtJEJ(EC. ACT.ID.| E.4CTNE.|39196223HQ LI JULfiSCLOSQres| HJl 11(W1L|03H45159196null)鶉 U百fiLesCLosQre:L:34piTHtSilbFroceas1圖 3. ID_ 和 PROC_INST_ID不相等上圖中有兩條數據,第二條數據(嵌入的子流程)的PARENT_ID等于第一條數據的ID_和PROC_INST_ID_并且兩條數

10、據的 PROC_INST_IDg同。上圖中還有一點特殊的地方,字段IS_ACTIVE_勺值分別是0和1,說明正在 執行子流程主流程掛起。Task對象前面說了 Process In sta nee和業務是一對一關聯的,和業務數據最親密;而 Task則和用戶最親密的(UserTask),用戶每天的待辦事項就是一個個的 Task 對象。從圖1中看得出Exeeution和Task是一對一關系,Task可以是任何類型的 Task實現,可以是用戶任務(UserTask)、Java 服務(Java ServiceTask )等, 在實際流程運行中只不過面向對象不同,用戶任務(UserTask)需要有人為參與

11、完 成(complete), Java服務需要由系統自動執行(execution )。8仇SiREL 7 EXEC WTlON rtJ3 PROC DEF lpBl rtANf.| PAHEMT rA5K lDLg oescp pnozlg T-*5k tRF ltf-al時狀M ft7.irjrF1225ledTeali11J41 aULLt(QllJJulrepDxLb&jJiInJull |2923沾,JlWIhM-ki 11 J4EUdllji上 EpDXt&IJLEkI null Rnolnulli11!i 111MlCacfwti I? Jinullji(A Li 111IflullifD44HLTCUUlflf l!lf丁37UlwftOklID21011D2yIHttlii圖 5表 ACT_HI_ACTINSTActivity 包含了流程中所有的活動數據,例如開始事件(圖 5表中的第1 條數據)、各種分支(排他分支、并行分支等,圖 5表中的第2條數據)、以及 剛剛提到的Task執行記錄(如圖5表中的第3、4條數據)。有些人認為Activity 和Task是多對一

溫馨提示

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

評論

0/150

提交評論