




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、activiti學(xué)習(xí)筆記:Activiti工作流教程Activiti5流程實(shí)例覺得activiti設(shè)計(jì)得簡(jiǎn)單而強(qiáng)大,嘗試翻譯一下他的10分鐘入門指南:10分鐘入門指南通過一個(gè)(非常簡(jiǎn)單的)業(yè)務(wù)流程,介紹一些基本的Activiti工作流感念和API接口。使用案例這個(gè)用例叫干脆(straightfoward):有一個(gè)公司,暫且叫它BPMCorp。在BPMCop內(nèi)部,會(huì)計(jì)部門每 個(gè)月都要寫一份財(cái)務(wù)報(bào)告給公司的股東。但在發(fā)送給所有股東之前必須經(jīng)過上級(jí)部門的批準(zhǔn)。下面涉及的所有文件及代碼片段均可以通過Activiti分發(fā)的examples范例包中找到,請(qǐng)查看包org.activiti.examples.
2、bpmn.usertask 的 內(nèi)容。推薦Activiti工作流教程:基于Activiti5工作流實(shí)戰(zhàn)企業(yè)協(xié)同OA辦公系統(tǒng)(spring-data-jpa、uur前臺(tái)組件) HYPERLINK /goods-343.html /goods-343.html流程圖如上所述的業(yè)務(wù)流程可以使用Activiti的可視化流程編輯器Activiti Modeler查看及編輯。使用BPMN2.0的標(biāo)準(zhǔn)符號(hào)則如下圖所示:這里沒有什么特殊的東西,圖中看到的是一個(gè)none start event (左邊的圓圈),其次是兩個(gè)tasks:,撰寫財(cái)務(wù)報(bào)告和”批準(zhǔn)財(cái)務(wù)報(bào)告,以none end event (右邊邊框加粗型
3、的圓圈)結(jié)束。XML表示上述業(yè)務(wù)流程的XML表示形式如下所示(FinancialReportProcess.bpmn20.xml).流程中包含一些主要的元素(通過點(diǎn)擊鏈接可以查看更詳細(xì)的BPMN 2.0元素的說明):none start event讓我們認(rèn)識(shí)到要開始一個(gè)流程。user tasks聲明一個(gè)基于用戶操作的流程任務(wù).注意第一個(gè)任務(wù)是分派用戶組accountancy的,而第二個(gè)任務(wù)是分派到用戶組management的.查看分派用戶任務(wù)章節(jié)可以得到更多怎樣分派任務(wù)到用戶或組的信息。_當(dāng)?shù)竭_(dá)none end event節(jié)點(diǎn)后流程就結(jié)束。process id=financialReport
4、name=每月財(cái)務(wù)報(bào)告處理流程documentation撰寫要發(fā)送給公司股東的每月財(cái)務(wù)報(bào)告。/documentationaccountancy核實(shí)并批準(zhǔn)會(huì)計(jì)部門提交的每月財(cái)務(wù)報(bào)告,報(bào)告將發(fā)送給公司的所有股東 們。management開始一個(gè)流程實(shí)例現(xiàn)在我們有了業(yè)務(wù)流程的流程定義(process definition)0通過這個(gè)流程定義我們就 可以創(chuàng)建一個(gè)流程實(shí)例(process instances)了。在這個(gè)用例中,一個(gè)流程實(shí)例將和 每月財(cái)務(wù)報(bào)告的創(chuàng)建和批準(zhǔn)項(xiàng)匹配。為了能夠通過一個(gè)流程定義創(chuàng)建一個(gè)流程實(shí)例,我們必須先將定義的流程發(fā)布(deploy),發(fā)布流程意味著兩件事:流程定義保存到Acti
5、viti引擎的持久化數(shù)據(jù)庫中。通過發(fā)布業(yè)務(wù)流程,我們就能 確保就算在引擎重啟后也能夠找到該流程的定義。BPMN2.0流程定義文件將被解釋到內(nèi)存中,從而可以通過activiti的API執(zhí)行相 應(yīng)的操作。更詳細(xì)的信息可以通過專門的發(fā)布流程章節(jié)獲取。就像專門的發(fā)布流程章節(jié)中提及的,可以通過多種方式來發(fā)布流程,以下是其中的一種:Deployment deployment = repositoryService. createDeployment().addClasspathResource(org/activiti/examples/bpmn/usertask/FinancialRepor tProc
6、ess.bpmn20.xml).deploy();現(xiàn)在我們可以通過在流程id (看XML流程定義文件中的第一行)來初始化一個(gè)流程實(shí) 例了。注意這個(gè)id在Activiti的術(shù)語中稱為key。ProcessInstance processInstance =runtimeService. startProcessInstanceByKey(financialReport);一經(jīng)上面的初始化將立即通過流程的start event,在start event.之后,緊跟著就是流出 流向(在這個(gè)用例中只有一條)和到達(dá)第一個(gè)任務(wù)(撰寫財(cái)務(wù)報(bào)告)。Activiti引擎將保 存一個(gè)任務(wù)到數(shù)據(jù)庫中。這時(shí)候附屬于該
7、任務(wù)的相關(guān)用戶或用戶組的作業(yè)也會(huì)被保存到 數(shù)據(jù)庫中。activiti5流程實(shí)例任務(wù)創(chuàng)建后,處于等待接收狀態(tài),引擎將僅在下次接收到而外的觸發(fā)調(diào)用后才會(huì)繼續(xù)下 去。在這個(gè)節(jié)點(diǎn),任務(wù)是分派到用戶組的,意指該用戶組中的任何人都可以作為這個(gè)任 務(wù)的候選者來執(zhí)行這個(gè)任務(wù)。任務(wù)列表現(xiàn)在我們可以通過taskService來獲取用戶的任務(wù)列表了。List tasks = taskService.createTaskQuery().taskCandidateUser(fozzie).list(); 因?yàn)榱鞒潭x中這個(gè)任務(wù)是定義為分派到用戶組accountancy的,因此方法中傳入的用 戶名參數(shù)”fozzie”必須
8、是屬于該用戶組的用戶:accountancy 也可以通過任務(wù)的查詢API,如下獲取用戶組的任務(wù):List tasks =taskService.createTaskQuery().taskCandidateGroup(accountancy).list();上面描述的業(yè)務(wù)流程已經(jīng)發(fā)布到了演示數(shù)據(jù)中。在運(yùn)行ant demo.start后,以用 戶fozzie (他是一個(gè)會(huì)計(jì)師)身份登錄到Activiti Explorer,選擇PROCESSES 頁簽,在列表的 Action 列中點(diǎn)擊流程Monthly financial report”的“Start Process 鏈接來啟動(dòng)一個(gè)流程實(shí)例。如下
9、圖所示:OActivitiuExplcrerTASKS i PROCESSESProcessesNameKeyVersionMonthly financial reportfinancial Re port1Mixed candidate user and gnotip examplemixedC an did ateU serAndGroup1Multiple candidate groups examplemultipleCandiclatesGroup1Single candidate group examplesing leCandidateGroup1Task Assignee ex
10、ampletaskAssigneePracess1Vacation requestvacation Request1Actions混 Start Process 靜 Start Process 混 Start Process 瀚 Start Process 簡(jiǎn) Start Process簿 Start Formq 湘0 Actlviti.onQ. AN rights resrvftJ.正如前面解解釋的,流程將運(yùn)行到第一個(gè)任務(wù)處。由于我們是以用戶fozzie登錄,故在 我們啟動(dòng)了這個(gè)流程實(shí)例后,可以看到一個(gè)新的候選任務(wù)。我們這是切換到TASKS頁 簽頁去看看這個(gè)新任務(wù)(如下圖),可以發(fā)現(xiàn)就算其他
11、人啟動(dòng)的流程實(shí)例,所有屬于用 戶組accountancy的用戶都可以看到這個(gè)新的候選任務(wù)。My tasks (0)Unasslgn&d tasks (D)In Accountancy (0)My tasks (0)Unas$ign&d tasks (1)In Accountancy 領(lǐng)取任務(wù)現(xiàn)在其中一個(gè)會(huì)計(jì)人員需要領(lǐng)取這個(gè)任務(wù)(claim the task)。通過領(lǐng)取任務(wù)操作,特 定的用戶就會(huì)成為這個(gè)任務(wù)的代理人(assignee),這是這個(gè)任務(wù)就會(huì)從用戶組 accountancy的其他所有用戶的列表視圖中消失。領(lǐng)取任務(wù)的調(diào)用代碼如下:taskService. claim(task. getI
12、d(), fozzie);現(xiàn)在這個(gè)任務(wù)成為了任務(wù)領(lǐng)取者的個(gè)人任務(wù)了。List tasks =taskService. createTaskQuery(). taskAssignee(fozzie);通過Activiti Explorer界面點(diǎn)擊claim按鈕將執(zhí)行相同的領(lǐng)取任務(wù)操作?,F(xiàn)在這個(gè)任務(wù)將 顯示在任務(wù)領(lǐng)取者的個(gè)人任務(wù)列表中,如下圖所示:Unassigned taskfs);Unssaignsd tasks (1)in Accotintancy (1)121 | Witte monthly financial reportWrite monmiy linancd report tor p
13、u Hicatjon tnMy lasksUn既割gned啟底(Q) in Atcounlancy QMy task(s)121 | Write monthly financial reportWrllB monthly financial porl tot pubhcallDn to shanslwlders.L二完成任務(wù)現(xiàn)在會(huì)計(jì)員可以開始撰寫財(cái)務(wù)報(bào)表了,一但報(bào)表撰寫完畢,就可以執(zhí)行完成任務(wù)的操作 將任務(wù)完成掉:taskService. complete (task. getId();對(duì)Activiti引擎來說,這是通知流程實(shí)例必須繼續(xù)跑下去的額外信號(hào)。該任務(wù)的外出流 向?qū)⒈唤馕鰣?zhí)行,引導(dǎo)到
14、第二個(gè)任務(wù)(批準(zhǔn)財(cái)務(wù)報(bào)告)。同樣的原理,就像上面第一個(gè) 任務(wù)所發(fā)生的事情一樣將在第二個(gè)任務(wù)出發(fā)生,唯一不同的是這次任務(wù)將被分派到用戶 組 management。在上面的demo中,使它能夠過點(diǎn)擊complete按鈕來完成任務(wù)的。因Frozzie不是管 理者,所以我們需要注銷并以kermit(他是管理者)用戶登錄。第二個(gè)任務(wù)現(xiàn)在就顯示 在待指定任務(wù)列表中了。如下圖所示:My task(s)Password;My tasks (0)Unassigned tasks (DJ in Accountancy (0)121 | Write monthly financial reportWrite mon
15、ttiiy financial report for pubiication to shareholders.User Name: : kermitIMy teaks (0| Un assigned task?Unassigned task(s) in group Management ps ,“In Accauntancy (0)In Sales 測(cè)In Eng;n?MnnQ (0):1231 Verify monthly tinancial reportClaimInMagefwntl (1)結(jié)束流程這個(gè)批準(zhǔn)任務(wù)就像第一個(gè)任務(wù)的處理一樣可以接受和領(lǐng)取。完成這個(gè)任務(wù)將導(dǎo)致流程執(zhí) 行到end
16、event節(jié)點(diǎn),在這個(gè)節(jié)點(diǎn)將終止該流程實(shí)例。該流程實(shí)例以及所有與其相關(guān)的 運(yùn)行時(shí)期的執(zhí)行數(shù)據(jù)將會(huì)從數(shù)據(jù)庫中刪除??梢酝ㄟ^Activiti Probe來證實(shí)這些數(shù)據(jù)已被清除。因?yàn)楸碇幸呀?jīng)沒有任何流程的執(zhí)行 數(shù)據(jù)。OActivitiFrobePROCESS ENGINE DATABASE JOBSACT_GE_0YTEARRAY (12ACT GE PROPERTY (2)ACTHLACUNST (B) ACT HI DETAIL (0) ACT_HLPROC1N$T ACTJD,GROUP (7) ACT,ID,MEMBERSHIP (12) ACT_ID_USER p)ACT.RE DEPLOYMENT (1) ACT_RE_PROCDEF (B) reY_RUEXECIJTlON actrlfJ6ENT1TVlink (dj ACTRU.JOB (0 ACT_RU_TASK (0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 語文九年級(jí)上冊(cè)第一單元整體教學(xué)設(shè)計(jì)
- 第9課 常見的數(shù)據(jù)處理過程 教學(xué)設(shè)計(jì) 2024-2025學(xué)年河北大學(xué)版(2024)《信息技術(shù)》七年級(jí)上冊(cè)
- 2-1 《改造我們的學(xué)習(xí)》教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版高中語文選擇性必修中冊(cè)
- 廚房租賃合同
- 全國(guó)粵教版信息技術(shù)八年級(jí)下冊(cè)第二單元第九課《綜合活動(dòng):無人駕駛汽車自控系統(tǒng)》教學(xué)設(shè)計(jì)設(shè)計(jì)
- 站場(chǎng)管理承攬工作合同(3篇)
- 第1課 《3 保護(hù)環(huán)境 人人有責(zé)》(教學(xué)設(shè)計(jì))-2023-2024學(xué)年四年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)安徽大學(xué)版
- 田徑蹲踞式起跑 教學(xué)設(shè)計(jì)-2023-2024學(xué)年高一上學(xué)期體育與健康人教版必修第一冊(cè)
- 第3課 盛唐氣象 教學(xué)設(shè)計(jì) 2023-2024學(xué)年統(tǒng)編版七年級(jí)歷史下冊(cè)
- 2025年信貸業(yè)務(wù)車輛押證不押車簽訂質(zhì)押合同
- 情報(bào)學(xué)與情報(bào)分析基礎(chǔ)知識(shí)課件
- 第17課《屈原》課件(24張PPT) 部編版語文九年級(jí)下冊(cè)
- 窮查理寶典課件
- 高危新生兒管理
- 殯葬禮儀服務(wù)整體保障方案
- 中山市口腔醫(yī)院門診牙科診所醫(yī)療機(jī)構(gòu)地址名單
- 新疆特色美食介紹課件
- 做時(shí)間的主人課件- 高中時(shí)間管理主題班會(huì)
- 附件3.信息化項(xiàng)目建設(shè)方案論證審批報(bào)告書
- 小橋涵水文計(jì)算軟件
- 李德新中醫(yī)基礎(chǔ)理論講稿
評(píng)論
0/150
提交評(píng)論