已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
西安創(chuàng)富電子科技有限公司 Activiti數(shù)據(jù)表結(jié)構(gòu)和核心對象關(guān)系A(chǔ)ctiviti數(shù)據(jù)表結(jié)構(gòu)和核心對象關(guān)系西安創(chuàng)富電子科技有限公司二一三年九月版本歷史日期版本說明(文檔修改描述)作者審核人2013.9文檔初稿焦劍波目錄1ACTIVITI數(shù)據(jù)庫表結(jié)構(gòu)41.1數(shù)據(jù)庫表名說明41.2數(shù)據(jù)庫表結(jié)構(gòu)42ACTIVITI中主要對象的關(guān)系161 Activiti數(shù)據(jù)庫表結(jié)構(gòu)1.1 數(shù)據(jù)庫表名說明 Activiti工作流總共包含23張數(shù)據(jù)表,所有的表名默認(rèn)以“ACT_”開頭。并且表名的第二部分用兩個字母表明表的用例,而這個用例也基本上跟Service API匹配。u ACT_GE_* : “GE”代表“General”(通用),用在各種情況下;u ACT_HI_* : “HI”代表“History”(歷史),這些表中保存的都是歷史數(shù)據(jù),比如執(zhí)行過的流程實(shí)例、變量、任務(wù),等等。當(dāng)系統(tǒng)中配置history的信息記錄級別為“none”時,這一類表也可以不用;u ACT_ID_* : “ID”代表“Identity”(身份),這些表中保存的都身份信息,如用戶和組以及兩者之間的關(guān)系。如果Activiti被集成在某一系統(tǒng)當(dāng)中的話,這些表可以不用,可以直接使用現(xiàn)有系統(tǒng)中的用戶或組信息;u ACT_RE_* : “RE”代表“Repository”(倉庫),這些表中保存一些 靜態(tài)信息,如流程定義和流程資源(如圖片、規(guī)則等);u ACT_RU_* : “RU”代表“Runtime”(運(yùn)行時),這些表中保存一些流程實(shí)例、用戶任務(wù)、變量等的運(yùn)行時數(shù)據(jù)。Activiti只保存流程實(shí)例在執(zhí)行過程中的運(yùn)行時數(shù)據(jù),并且當(dāng)流程結(jié)束后會立即移除這些數(shù)據(jù),這是為了保證運(yùn)行時表盡量的小并運(yùn)行的足夠快;1.2 數(shù)據(jù)庫表結(jié)構(gòu)Activiti數(shù)據(jù)表清單:表名解釋ACT_GE_BYTEARRAY通用的流程定義和流程資源ACT_GE_PROPERTY系統(tǒng)相關(guān)屬性ACT_HI_ACTINST歷史的流程實(shí)例ACT_HI_ATTACHMENT歷史的流程附件ACT_HI_COMMENT歷史的說明性信息ACT_HI_DETAIL歷史的流程運(yùn)行中的細(xì)節(jié)信息ACT_HI_IDENTITYLINK歷史的流程運(yùn)行過程中用戶關(guān)系A(chǔ)CT_HI_PROCINST歷史的流程實(shí)例ACT_HI_TASKINST歷史的任務(wù)實(shí)例ACT_HI_VARINST歷史的流程運(yùn)行中的變量信息ACT_ID_GROUP身份信息-組信息ACT_ID_INFO身份信息-組信息ACT_ID_MEMBERSHIP身份信息-用戶和組關(guān)系的中間表ACT_ID_USER身份信息-用戶信息ACT_RE_DEPLOYMENT部署單元信息ACT_RE_MODEL模型信息ACT_RE_PROCDEF已部署的流程定義ACT_RU_EVENT_SUBSCR運(yùn)行時事件ACT_RU_EXECUTION運(yùn)行時流程執(zhí)行實(shí)例ACT_RU_IDENTITYLINK運(yùn)行時用戶關(guān)系信息ACT_RU_JOB運(yùn)行時作業(yè)ACT_RU_TASK運(yùn)行時任務(wù)ACT_RU_VARIABLE運(yùn)行時變量表2 Activiti中主要對象的關(guān)系本節(jié)主要介紹在工作流中出現(xiàn)的幾個對象及其之間的關(guān)系,以及在Activiti中各個對象是如何關(guān)聯(lián)的。在開始之前先看看下圖,對整個對象結(jié)構(gòu)有個了解,再結(jié)合實(shí)例詳細(xì)介紹理解。圖1. Activiti中幾個對象之間的關(guān)系我們模擬一個請假的流程進(jìn)行分析介紹,該流程主要包含以下幾個步驟:u 員工申請請假u 部門領(lǐng)導(dǎo)審批u 人事審批u 員工銷假ProcessInstance對象員工開始申請請假流程,通過runtimeService.startProcessInstance()方法啟動,引擎會創(chuàng)建一個流程實(shí)例(ProcessInstance)。簡單來說流程實(shí)例就是根據(jù)一次(一條)業(yè)務(wù)數(shù)據(jù)用流程驅(qū)動的入口,兩者之間是一對一的關(guān)系。流程引擎會創(chuàng)建一條數(shù)據(jù)到ACT_RU_EXECUTION表,同時也會根據(jù)history的級別決定是否查詢相同的歷史數(shù)據(jù)到ACT_HI_PROCINST表。啟動完流程之后業(yè)務(wù)和流程已經(jīng)建立了關(guān)聯(lián)關(guān)系,第一步結(jié)束。啟動流程和業(yè)務(wù)關(guān)聯(lián)區(qū)別:u 對于自定義表單來說啟動的時候會傳入businessKey作為業(yè)務(wù)和流程的關(guān)聯(lián)屬性u 對于動態(tài)表單來說不需要使用businessKey關(guān)聯(lián),因?yàn)樗械臄?shù)據(jù)都保存在引擎的表中u 對于外部表單來說businessKey是可選的,但是一般不會為空,和自定義表單類似Execution對象對于初學(xué)者來說,最難理解的地方就是ProcessInstance與Execution之間的關(guān)系,要分兩種情況說明。Execution的含義就是一個流程實(shí)例(ProcessInstance)具體要執(zhí)行的過程對象。不過在說明之前先聲明兩者的對象映射關(guān)系:ProcessInstance(1) Execution(N),(其中N = 1)。1) 值相等的情況:除了在流程中啟動的子流程之外,流程啟動之后在表ACT_RU_EXECUTION中的字段ID_和PROC_INST_ID_字段值是相同的。圖2. ID_和PROC_INST_ID_相等2) 值不相等的情況:不相等的情況目前只會出現(xiàn)在子流程中(包含:嵌套、引入),例如一個購物流程中除了下單、出庫節(jié)點(diǎn)之外可能還有一個付款子流程,在實(shí)際企業(yè)應(yīng)用中付款流程通常是作為公用的,所以使用子流程作為主流程(購物流程)的一部分。當(dāng)任務(wù)到達(dá)子流程時引擎會自動創(chuàng)建一個付款流程,但是這個流程有一個特殊的地方,在數(shù)據(jù)庫可以直觀體現(xiàn),如下圖。圖3. ID_和PROC_INST_ID_不相等上圖中有兩條數(shù)據(jù),第二條數(shù)據(jù)(嵌入的子流程)的PARENT_ID_等于第一條數(shù)據(jù)的ID_和PROC_INST_ID_,并且兩條數(shù)據(jù)的PROC_INST_ID_相同。上圖中還有一點(diǎn)特殊的地方,字段IS_ACTIVE_的值分別是0和1,說明正在執(zhí)行子流程主流程掛起。Task對象前面說了ProcessInstance和業(yè)務(wù)是一對一關(guān)聯(lián)的,和業(yè)務(wù)數(shù)據(jù)最親密;而Task則和用戶最親密的(UserTask),用戶每天的待辦事項(xiàng)就是一個個的Task對象。從圖1中看得出Execution和Task是一對一關(guān)系,Task可以是任何類型的Task實(shí)現(xiàn),可以是用戶任務(wù)(UserTask)、Java服務(wù)(Java ServiceTask)等,在實(shí)際流程運(yùn)行中只不過面向?qū)ο蟛煌?,用戶任?wù)(UserTask)需要有人為參與完成(complete),Java服務(wù)需要由系統(tǒng)自動執(zhí)行(execution)。圖4. 表ACT_RU_TASKTask是在流程定義中看到的最大單位,每當(dāng)一個Task完成的時候會引擎會把當(dāng)前的任務(wù)移動到歷史中,然后插入下一個任務(wù)插入到表ACT_RU_TASK中。結(jié)合請假流程來說就是讓用戶點(diǎn)擊“完成”按鈕提交當(dāng)前任務(wù)是的動作,引擎自動根據(jù)任務(wù)的順序流或者排他分支判斷走向。HistoryActivity(歷史活動)圖5. 表ACT_HI_ACTINSTActivity包含了流程中所有的活動數(shù)據(jù),例如開始事件(圖5表中的第1條數(shù)據(jù))、各種分支(排他分支、并行分支等,圖5表中的第2條數(shù)據(jù))、以及剛剛提到的Task執(zhí)行記錄(如圖5表中的第3、4條數(shù)據(jù))。有些人認(rèn)為Activity和Task是多對一關(guān)系,其實(shí)不是,從上圖中可以看出來根本
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院老人康復(fù)訓(xùn)練指導(dǎo)制度
- 《服務(wù)成就價值》課件
- 技術(shù)合同范本
- 2024年塔吊司機(jī)安全操作培訓(xùn)與勞動權(quán)益保障協(xié)議3篇
- 6 《哈姆萊特(節(jié)選)》(學(xué)案)-教案課件-部編高中語文必修下冊
- 2024年生日蛋糕定制與航空旅行禮品合作合同2篇
- 《脊柱區(qū)局部解剖學(xué)》課件
- 2025年湖北貨運(yùn)上崗證模擬考試題
- 2024年水路貨物運(yùn)輸節(jié)能減排管理細(xì)則合同3篇
- 2025年太原貨運(yùn)從業(yè)資格考試模擬考試題目及答案
- GB/T 15256-2014硫化橡膠或熱塑性橡膠低溫脆性的測定(多試樣法)
- 結(jié)核菌素(PPD)試驗(yàn)詳解課件
- 皖醫(yī)大內(nèi)科學(xué)習(xí)題及答案
- 領(lǐng)導(dǎo)干部政治素質(zhì)考察測評表(示范填寫表)
- 醫(yī)療機(jī)構(gòu)工作人員廉潔從業(yè)九項(xiàng)準(zhǔn)則培訓(xùn)考核試題附答案
- 幼兒園中班數(shù)學(xué):《水果列車》 課件
- 風(fēng)濕免疫科醫(yī)療質(zhì)量控制指標(biāo)(2022版)
- 光伏電站危險(xiǎn)及有害因素辨識
- 辦公用品請購單
- 花卉分類與識別
- 我們身邊的人工智能-完整精講版課件
評論
0/150
提交評論