5.工作流項目應(yīng)用介紹-activiti5_第1頁
5.工作流項目應(yīng)用介紹-activiti5_第2頁
5.工作流項目應(yīng)用介紹-activiti5_第3頁
5.工作流項目應(yīng)用介紹-activiti5_第4頁
5.工作流項目應(yīng)用介紹-activiti5_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、一、工作流工作流(Workflow),就是“業(yè)務(wù)過程的部分或整體在計算機(jī)應(yīng)用環(huán)境下的自動化”,它主要解決的是“使在多個參與者之間按照某種預(yù)定義的規(guī)則傳遞文檔、信息或任務(wù)的過程自動進(jìn)行,從而實現(xiàn)某個預(yù)期的業(yè)務(wù)目標(biāo),或者促使此目標(biāo)的實現(xiàn)”。簡單的說,就是做事的流程,一個流程中有多個環(huán)節(jié),每個環(huán)節(jié)都有特定的人來進(jìn)行審核和辦理。工作流管理系統(tǒng):工作流管理系統(tǒng)顧名思義就是管理工作流的一個系個流程有了,要想按照這種預(yù)定義的流程自動進(jìn)行就需要將流程通過工作流管理系統(tǒng)管理起來。工作流管理系統(tǒng)是一個系統(tǒng),它完成工作量的定義和管理,并按照在系統(tǒng)中預(yù)先定義好的工作流規(guī)則進(jìn)行工作流實例的執(zhí)行。工作流管理系統(tǒng)不是企業(yè)的

2、業(yè)務(wù)系統(tǒng),而是為企業(yè)的業(yè)務(wù)系統(tǒng)的運(yùn)行提供了一個的支撐環(huán)境。二、Activiti 工作流管理系統(tǒng)Activiti5 是由Alfresco在 2010 年 5 月 17 日發(fā)布的業(yè)務(wù)流程管理(BPM)框架,它是覆蓋了業(yè)務(wù)流程管理、工作流、服務(wù)協(xié)作等領(lǐng)域的一個開源的、靈活的、易擴(kuò)展的可執(zhí)行流程語言框架。Activiti 基于 Apache的開源 BPM,創(chuàng)始人 Tom Baeyens 是 JsjBPM 的項目架構(gòu)師,它特色是提供了 eclipse 插件,開發(fā)可以通過插件直接繪畫出業(yè)務(wù)流程圖。2.1、工作流引擎(ProsEngine)ProsEngine 是 activiti 工作的,負(fù)責(zé)生成流程運(yùn)行

3、時的各種實例及數(shù)據(jù)、和管理流程的運(yùn)行。2.2、配置文件(activiti.cfg.xml)activiti.cfg.xml 作為Activiti配置文件,配置流程引擎創(chuàng)建工具的基本參數(shù)和數(shù)據(jù)庫連接池參數(shù)。簡單的說就是,通過配置文件配置工作流引擎生成工具參數(shù)獲取想要的工作流引擎,通過工作流引擎獲取對象。2.3、數(shù)據(jù)庫表Activiti 的是有數(shù)據(jù)庫的支持,一共 26都以 ACT_開頭。 第二部分是表示表的用途的兩個字母標(biāo)識。 用途也和服務(wù)的 API 對應(yīng)。1)ACT_RE_*: RE表示 reitory。 這個前綴的表包含了流程定義和流程靜態(tài)資源(,規(guī)則,等等)。2)ACT_RU_*: RU表示

4、 runtime。 這些運(yùn)行時的表,包含流程實例,任務(wù),變量,異步任務(wù),等運(yùn)行中的數(shù)據(jù)。 Activiti 只在流程實例執(zhí)行過程中保存這些數(shù)據(jù), 在流程結(jié)束時就會刪除這些。 這樣運(yùn)行時表可以一直很小速度很快。3)ACT_ID_*: ID表示 identity。 這些表包含,比如用戶,組等等。4)ACT_HI_*: HI表示 history。 這些表包含歷史數(shù)據(jù),比如歷史流程實例, 變量,任務(wù)等等。5)ACT_GE_*: 通用數(shù)據(jù), 用于不同場景下。2.3.1流程規(guī)則表1)act_re_deployment部署信息表2)act_re_m流程設(shè)計模型部署表3)act_re_procdef流程定義數(shù)

5、據(jù)表2.3.2 運(yùn)行時數(shù)據(jù)庫表1)act_ru_execution運(yùn)行時流程執(zhí)行實例表2)act_ru_identitylink 運(yùn)行時流程表,主要任務(wù)節(jié)點(diǎn)與參與者的相關(guān)信息3)act_ru_task運(yùn)行時任務(wù)節(jié)點(diǎn)表4)act_ru_variable運(yùn)行時流程變量數(shù)據(jù)表2.3.3 歷史數(shù)據(jù)庫表1)act_hi_actinst歷史節(jié)點(diǎn)表2)act_hi_attaent歷史附件表3)ment歷史意見表4)act_hi_identitylink歷史流程表5)act_hi_detail歷史詳情表,提供歷史變量的查詢6)act_hi_procinst歷史流程實例表7)act_hi_taskinst歷史任

6、務(wù)實例表8)act_hi_varinst歷史變量表2.3.4 組織機(jī)構(gòu)表1)act_id_group用戶組信息表 JBPM_ID_MEMBERSHIP2)act_id_info用戶擴(kuò)展信息表3)act_id_membership用戶與用戶組對應(yīng)信息表4)act_id_user用戶信息表這四很常見,基本的組織機(jī)構(gòu)管理,關(guān)于用戶認(rèn)證方面建議還是自己開發(fā)一套,組件自帶的功能太簡單,使用中有很多需求難以滿足2.3.5 通用數(shù)據(jù)表1)act_ge_bytearray二進(jìn)制數(shù)據(jù)表act_ge_property屬性數(shù)據(jù)表整個流程引擎級別的數(shù)據(jù),初始化表結(jié)構(gòu)時,會默認(rèn)三條,2.4API流程引擎(Pro產(chǎn)生方式

7、:sEngine)在 Activiti 中最的類,其他的類都是由他而來。ProsEngines 的 getDefaultProceeEngine 方法時會自動加載 classpath 下名為 activiti.cfg.xml文件??梢援a(chǎn)生 ReitoryService可以產(chǎn)生 RuntimeService可以產(chǎn)生 TaskService各個 Service 的作用:注:ManagementService 提供了對 Activiti 流程引擎的管理和在工作流驅(qū)動的應(yīng)用程序中使用。功能,這些功能不業(yè)務(wù)流程建模與標(biāo)注(Business Pros Mand Noion,BPMN) ,描述流程的基本符號

8、,包括這些圖元如何組一個業(yè)務(wù)流程圖(Business Pros Diagram)三、Web 設(shè)計器如圖中的空白區(qū)為流程設(shè)計區(qū)域,流程設(shè)計就是將工具區(qū)的元素放到設(shè)計區(qū)形成流程圖并可以給流程里的元素在配置區(qū)里配置一些屬性。ReitoryService管理流程定義RuntimeService執(zhí)行管理,包括啟動、推進(jìn)、刪除流程實例等操作TaskService任務(wù)管理HistoryService歷史管理(執(zhí)行完的數(shù)據(jù)的管理)IdentityService組織機(jī)構(gòu)管理FormService一個可選服務(wù),任務(wù)表單管理ManagementService主要用于 Activiti 系統(tǒng)的日常。4.1 事件分類事

9、件位置分類:開始事件,結(jié)束事件,中間事件,邊界事件。事件特性分類:Catching 事件和Throwing 事件。4.2 啟動事件描述:啟動事件是Activiti 活動的開始節(jié)點(diǎn),定義了流程如何被啟動的啟動事件類型。4.2.1 空啟動事件描述:空啟動事件必須要人工去啟動一個流程??諉邮录墙⒃诓渴鹜瓿傻牧鞒躺厦娴摹C繂右淮?,就會產(chǎn)生一個新的流程實例。流程圖標(biāo):4.2.2 定時啟動事件描述:定時器啟動事件用于在給定的時間點(diǎn)創(chuàng)建流程實例。它可以用在只啟動一次的流程中,也可以用在特定時間間隔下啟動。定時器是從流程部署開始計時,不需要去啟動流程。流程圖標(biāo):timeDate:指定ISO 8601

10、格式的日期定時器激活。timeDuration:定義定時器經(jīng)過多少時間后激活。timeCycle:定義定時器重復(fù)間隔,在某些場景使用,比如周期性的啟動流程,任務(wù)超時發(fā)送提醒。4.2.3 信號事件描述:信號啟動事件,使用具名信號啟動流程實例。這個信號可以由流程實例中的信號拋出中間事件(ermediary signal throw event),或者 API(runtimeServiignalEventReceived方法)觸發(fā)。流程圖標(biāo):注意:信號啟動事件,是所有相同名稱的信號事件都會被執(zhí)行!1、信號可以是流程實例中拋出的信號事件2、API 觸發(fā)4.2.4 消息事件描述:流程實例中的信號拋出事件

11、,API 觸發(fā)(runtimeServi發(fā) 。ignalEventReceived方法)觸流程圖標(biāo):注意:1.流程的消拋異常。稱必須是唯一的,一個流程定義不得包含多個同名的啟動消息。否則部署流程的時候就會2.消息啟動事件,在所有部署的流程里面必須要唯一,否則也會拋異常。3.直接啟動消息定義事件,會當(dāng)作一個普通啟動事件執(zhí)行。4.新版本發(fā)布,會取消上一版本的消息訂閱。4.2.5 異常事件(錯誤啟動事件)描述:異常事件是建模業(yè)務(wù)異常(businessexceptions)的方式,錯誤與 Java 異常不是一回事。流程圖標(biāo):圖解:4.3 活動列表4.3.1 用戶任務(wù)描述:用戶任務(wù)用來設(shè)置必須由完成的工

12、作。使用場景:各種審批節(jié)點(diǎn)。(部門審批、人事審批)流程圖標(biāo):4.3.2 服務(wù)任務(wù)描述:java 服務(wù)任務(wù)用來調(diào)用外部java 類。使用場景:下一個任務(wù)我需要自動執(zhí)行一些操作,并且這個節(jié)點(diǎn)不需要任何的人工,也就是說這個節(jié)點(diǎn)是自動化的。那么,這個當(dāng)前面一個經(jīng)辦把任務(wù)發(fā)送下去的時候,自然而然的下一個節(jié)點(diǎn)就會開始馬上執(zhí)行。這個時候。流程圖標(biāo):具體配置:4.3.3任務(wù)(Groovy)Groovy 是一種基于 JVM(Java 虛擬機(jī))的敏捷開發(fā)語言,它結(jié)合了、Ruby 和 Smalltalk 的許多強(qiáng)大的特性,Groovy 代碼能夠與 Java 代碼很好地結(jié)合,也能用于擴(kuò)展現(xiàn)有代碼。描述:任務(wù)時一個自動

13、節(jié)點(diǎn)。當(dāng)流程到達(dá)任務(wù), 會執(zhí)行對應(yīng)的。使用場景:一般是用在當(dāng)前的器或者服務(wù)類都不能滿足的情形下面,或者說后期,突然在不想改動系統(tǒng)的情況下需要對流程做一些適當(dāng)?shù)母淖?。流程圖標(biāo):具體配置:4.3.4 手工任務(wù)描述:手工任務(wù)是直接通過的活動,流程到達(dá)它之后會自下執(zhí)行。使用場景:可以使用它來自動執(zhí)行一些可以直接通過的任務(wù)。流程圖標(biāo):4.3.5 業(yè)務(wù)規(guī)則任務(wù)(Drools 規(guī)則)Drools 有一個易于企業(yè)策略、易于調(diào)整以及易于管理的開源業(yè)務(wù)規(guī)則引擎。優(yōu)點(diǎn)速度快、效率高。描述:規(guī)則任務(wù)可以通過制定一系列的規(guī)則來實現(xiàn)流程自動化。使用場景:一般情況下是經(jīng)理審批,特殊情況是總經(jīng)理審批,具體看自定的規(guī)則。流程圖

14、標(biāo):具體配置:實際應(yīng)用里面,怎么使用的?下面我簡單設(shè)計一個規(guī)則任務(wù)說說:4.3.6 接受任務(wù)描述:接受任務(wù)在任務(wù)啟動到該節(jié)點(diǎn)的時候停下來等待信號。當(dāng)任務(wù)接收到信號的時候,該流程就會繼續(xù)往下執(zhí)行。使用場景:接受任務(wù)。流程圖標(biāo):4.3.7 郵件任務(wù)描述:流程辦理到郵件任務(wù)的時候,系統(tǒng)就會自動的給你發(fā)送任務(wù)。使用場景:發(fā)送郵件。流程圖標(biāo):打開你的郵箱設(shè)置-賬戶- POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV 服務(wù)開啟 SMTP 服務(wù),記住碼,碼就是你的登錄.具體配置:4.4 結(jié)構(gòu)列表4.4.1 子流程(內(nèi)嵌子流程)描述:子流程(Sub-pros)是一個包含其他節(jié)點(diǎn),網(wǎng)

15、關(guān),事件等等的節(jié)點(diǎn)。 它自己就是一個流程,同時是更大流程的一部分。 子流程是完全定義在父流程里的 。當(dāng)前的限制:子流程只能包含一個空開始事件, 不能使用其他類型的開始事件。子路程必須 至少有一個結(jié)束節(jié)點(diǎn)。順序流不能子流程的邊界。流程圖示例:4.4.2 事物子流程描述:事件子流程是由事件觸發(fā)的子流程。 事件子流程可以添加到流程級別或任意子流程級別。事件子流程是不支持空開始事件的。事件子流程可以被消息事件,錯誤事件,信號事件,定時器事件,或補(bǔ)償事件觸發(fā)。當(dāng)前的限制:activiti 只支持使用錯誤開始事件或消息開始事件的事件子流程。流程圖示例:4.5 網(wǎng)關(guān)列表網(wǎng)關(guān)用來控制流程的流向。圖標(biāo)是一個菱形

16、,菱形里面的小圖標(biāo)決定了網(wǎng)關(guān)的類型。4.5.1 排他網(wǎng)關(guān)描述:流程執(zhí)行到此網(wǎng)關(guān),所有外出順序流都被處理一遍,處理結(jié)果為 true 的會被選中,流程會按照此順序流繼續(xù)運(yùn)行。注意:排他網(wǎng)關(guān)處理多個外出順序流時其結(jié)果可能會有多個為 true,但是只有第一個會被選中。流程圖標(biāo):4.5.2 并行網(wǎng)關(guān)描述:并行網(wǎng)關(guān)是最簡單的網(wǎng)關(guān),主要作用是分支和聚合分支: 并行后的所有外出順序流,為每個順序流都創(chuàng)建一個并發(fā)分支。匯聚: 所有到達(dá)并行網(wǎng)關(guān),在此等待的進(jìn)入分支, 直到所有進(jìn)入順序流的分支都到達(dá)以后,流程就會通過匯聚網(wǎng)關(guān)。流程圖標(biāo):4.5.3 包含網(wǎng)關(guān)描述:包含網(wǎng)關(guān)是排他網(wǎng)關(guān)和并行網(wǎng)關(guān)的功能結(jié)合。可以說是排他網(wǎng)

17、關(guān)可以有多個外出順序流或并行網(wǎng)關(guān)有了條件判斷。圖標(biāo):4.5.3 事件網(wǎng)關(guān)描述:基于事件網(wǎng)關(guān)允許根據(jù)事件判斷流向。網(wǎng)關(guān)的每個外出順序流都要連接到一個中間捕獲事件。 當(dāng)流程到達(dá)一個基于事件網(wǎng)關(guān),網(wǎng)關(guān)會進(jìn)入等待狀態(tài):會暫停執(zhí)行。圖標(biāo):示例:4.6 邊界事件邊界定時、邊界錯誤、錯誤結(jié)束事件示例:4.7 結(jié)束事件描述:結(jié)束事件標(biāo)志著(子)流程的(分支的)結(jié)束。4.7.1 空結(jié)束事件描述:只要把結(jié)束任務(wù)置于流程的最后節(jié)點(diǎn),流程實例運(yùn)行到該節(jié)點(diǎn)的時候,流程引擎就會結(jié)束該流程實例。流程圖標(biāo):4.7.2 錯誤結(jié)束事件描述:當(dāng)流程執(zhí)行到錯誤結(jié)束事件, 流程的當(dāng)前分支就會結(jié)束,并拋出一個錯誤。流程圖標(biāo):示例:4.7.3 取消結(jié)束事件描述:取消結(jié)束事件,只能與事務(wù)子流程一起使用。當(dāng)?shù)竭_(dá)取消結(jié)束事件時,會拋出取消事件,且必須由取消邊界事件捕獲。之后這個取消邊界事件將取消事務(wù),并觸發(fā)補(bǔ)償。流程圖標(biāo):示例:4.7.4 終結(jié)任務(wù)描述:當(dāng)?shù)竭_(dá)終止結(jié)束事件時,當(dāng)前的流程實例或子流程會被終止。流程圖標(biāo):4.8 泳道列

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論