下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 3/3Activiti5基于jBPM4的開源工作流系統(tǒng)10分鐘入門指南 http:/./doc/930c3b2b192e45361066f530.html 覺得activiti設(shè)計(jì)得簡(jiǎn)單而強(qiáng)大,嘗試翻譯一下他的10分鐘入門指南: 10分鐘入門指南 通過一個(gè)(非常簡(jiǎn)單的)業(yè)務(wù)流程,介紹一些基本的Activiti工作流感念和API接口。 使用案例 這個(gè)用例叫干脆(straightfoward):有一個(gè)公司,暫且叫它BPMCorp。在BPMCorp內(nèi)部,會(huì)計(jì)部門每個(gè)月都要寫一份財(cái)務(wù)報(bào)告給公司的股東。但在發(fā)送給所有股東之前必須經(jīng)過上級(jí)部門的批準(zhǔn)。下面涉及的所有文件及代碼片段均可以通過Activiti
2、分發(fā)的examples范例包中找到,請(qǐng)查看包 http:/./doc/930c3b2b192e45361066f530.html ertask的內(nèi)容。 流程圖 如上所述的業(yè)務(wù)流程可以使用Activiti的可視化流程編輯器 Activiti Modeler查看及編輯。使用BPMN2.0的標(biāo)準(zhǔn)符號(hào)則如下圖所示: 這里沒有什么特殊的東西,圖中看到的是一個(gè)none start event(左邊的圓圈),其次是兩個(gè)user tasks:撰寫財(cái)務(wù)報(bào)告和”批準(zhǔn)財(cái)務(wù)報(bào)告,以 none end event (右邊邊框加粗型的圓圈)結(jié)束。XML表示 上述業(yè)務(wù)流程的XML表示形式如下所示(FinancialRepo
3、rtProcess.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ù)到用戶或組的信息。 開始一個(gè)流程實(shí)例 現(xiàn)在我們有了業(yè)務(wù)流程的流程定義(process definition)。通過這個(gè)流程定義我們就可以創(chuàng)建一個(gè)流程實(shí)例(process instances)了。
4、在這個(gè)用例中,一個(gè)流程實(shí)例將和每月財(cái)務(wù)報(bào)告的創(chuàng)建和批準(zhǔn)項(xiàng)匹配。 為了能夠通過一個(gè)流程定義創(chuàng)建一個(gè)流程實(shí)例,我們必須先將定義的流程發(fā)布(deploy),發(fā)布流程意味著兩件事: ?流程定義保存到Activiti引擎的持久化數(shù)據(jù)庫中。通過發(fā)布業(yè)務(wù)流程,我們就能確保就算在引擎重啟后也能夠找到該流程的定義。 ?BPMN2.0流程定義文件將被解釋到內(nèi)存中,從而可以通過activiti的API執(zhí)行相應(yīng)的操作。 更詳細(xì)的信息可以通過專門的發(fā)布流程章節(jié)獲取。 就像專門的發(fā)布流程章節(jié)中提及的,可以通過多種方式來發(fā)布流程,以下是其中的一種: 現(xiàn)在我們可以通過在流程id(看XML流程定義文件中的第一行)來初始化一個(gè)流
5、程實(shí)例了。注意這個(gè)id在Activiti的術(shù)語中稱為key。 一經(jīng)上面的初始化將立即通過流程的start event,在start event.之后,緊跟著就是流出流向(在這個(gè)用例中只有一條)和到達(dá)第一個(gè)任務(wù)(撰寫財(cái)務(wù)報(bào)告)。Activiti引擎將保存一個(gè)任務(wù)到數(shù)據(jù)庫中。這時(shí)候附屬于該任務(wù)的相關(guān)用戶或用戶組的作業(yè)也會(huì)被保存到數(shù)據(jù)庫中。 任務(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ù)列表了。 因?yàn)榱鞒?/p>
6、定義中這個(gè)任務(wù)是定義為分派到用戶組accountancy的,因此方法中傳入的用戶名參數(shù)fozzie必須是屬于該用戶組的用戶: 也可以通過任務(wù)的查詢API,如下獲取用戶組的任務(wù): 戶fozzie(他是一個(gè)會(huì)計(jì)師)身份登錄到Activiti Explorer,選擇PROCESSES 頁簽,在列表的Action列中點(diǎn)擊流程“Monthly financial report”的“S tart Process鏈接來啟動(dòng)一個(gè)流程實(shí)例。如下圖所示: 正如前面解解釋的,流程將運(yùn)行到第一個(gè)任務(wù)處。由于我們是以用戶fozzie登錄,故在我們啟動(dòng)了這個(gè)流程實(shí)例后,可以看到一個(gè)新的候選任務(wù)。我們這是切換到TASKS頁
7、簽頁去看看這個(gè)新任務(wù)(如下圖),可以發(fā)現(xiàn)就算其他人啟動(dòng)的流程實(shí)例,所有屬于用戶組accountancy的用戶都可以看到這個(gè)新的候選任務(wù)。 領(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)用代碼如下: 現(xiàn)在這個(gè)任務(wù)成為了任務(wù)領(lǐng)取者的個(gè)人任務(wù)了。 通過Activiti Explorer界面點(diǎn)擊claim按鈕將執(zhí)行相同的領(lǐng)取任務(wù)操作?,F(xiàn)在這個(gè)任務(wù)將顯示在任務(wù)領(lǐng)取者的個(gè)人任務(wù)列表中,如下圖所示: 完成任務(wù) 現(xiàn)
8、在會(huì)計(jì)員可以開始撰寫財(cái)務(wù)報(bào)表了,一但報(bào)表撰寫完畢,就可以執(zhí)行完成任務(wù)的操作將任務(wù)完成掉: 對(duì)Activiti引擎來說,這是通知流程實(shí)例必須繼續(xù)跑下去的額外信號(hào)。該任務(wù)的外出流向?qū)⒈唤馕鰣?zhí)行,引導(dǎo)到第二個(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ù)列表中了。如下圖所示: 結(jié)束流程 這個(gè)批準(zhǔn)任務(wù)就像第一個(gè)任務(wù)的處理一樣可以接受和領(lǐng)取。完成這個(gè)任務(wù)將導(dǎo)致流程執(zhí)行到end 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ù)。 很容易看出來上面談及的業(yè)務(wù)流程因太簡(jiǎn)單而無法在現(xiàn)實(shí)中使用到。然而通過上述基于BPMN2.0在Activiti的構(gòu)建,你將可以通過如下的手段來增強(qiáng)業(yè)務(wù)流程的功能: ?通過定義一個(gè)timer start event 節(jié)點(diǎn)每月自動(dòng)開始啟動(dòng)流程。 ?定義gateways節(jié)點(diǎn)執(zhí)行條件判斷。為此,管理
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 46875-2025進(jìn)入二氧化碳長(zhǎng)輸管道介質(zhì)質(zhì)量要求
- 試述取得時(shí)效制度
- 2026紅河縣公安局公開招聘警務(wù)輔助人員(24人)參考考試題庫附答案解析
- 2026山東事業(yè)單位統(tǒng)考省文物考古研究院招聘初級(jí)綜合類崗位2人備考考試試題附答案解析
- 2026聯(lián)勤保障部隊(duì)第九八〇醫(yī)院(白求恩國(guó)際和平醫(yī)院)公開招聘30人(第一季)備考考試試題附答案解析
- 2026江蘇連云港市灌南縣公安局警務(wù)輔助人員招聘65人備考考試題庫附答案解析
- 2026國(guó)家稅務(wù)總局廣西壯族自治區(qū)稅務(wù)系統(tǒng)公開招聘事業(yè)單位工作人員20人備考考試題庫附答案解析
- 落實(shí)生豬生產(chǎn)管理制度
- 如何在生產(chǎn)現(xiàn)場(chǎng)推行5s管理制度
- 藥品生產(chǎn)企業(yè)安全制度
- 2026年遼寧省盤錦市高職單招語文真題及參考答案
- 近五年貴州中考物理真題及答案2025
- 2026年南通科技職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試備考試題含答案解析
- 浙江省2026年1月普通高等學(xué)校招生全國(guó)統(tǒng)一考試英語試題(含答案含聽力原文含音頻)
- JTG-D40-2002公路水泥混凝土路面設(shè)計(jì)規(guī)范-PDF解密
- 《雅思閱讀精講》
- 產(chǎn)前檢查的操作評(píng)分標(biāo)準(zhǔn)
- 50年同學(xué)聚會(huì)邀請(qǐng)函(十二篇)
- 臨時(shí)用水施工方案
- LOTO上鎖掛牌安全培訓(xùn)課件
- 江西省房屋建筑與裝飾工程消耗量定額及統(tǒng)一基價(jià)表
評(píng)論
0/150
提交評(píng)論