天天看點

Activiti7工作流引擎-什麼是Activiti7

第2章 什麼是Activiti7

Alfresco 軟體在 2010 年 5 月 17 日宣布 Activiti 業務流程管理(BPM)開源項目的正式啟動,其首席架構師由業務流程管理 BPM 的專家 Tom Baeyens 擔任,Tom Baeyens 就是原來 jbpm 的架構師,而 jbpm 是一個非常有名的工作流引擎,當然 activiti 也是一個工作流引擎。

Activiti 是一個工作流引擎, activiti 可以将業務系統中複雜的業務流程抽取出來,使用專門的模組化語言(BPMN2.0)進行定義,業務系統按照預先定義的流程進行執行,實作了業務系統的業務流程由 activiti 進行管理,減少業務系統由于流程變更進行系統更新改造的工作量,進而提高系統的健壯性,同時也減少了系統開發維護成本。

官網

Activiti7工作流引擎-什麼是Activiti7

經曆的版本:

Activiti7工作流引擎-什麼是Activiti7

目前最新版本:Activiti7.0.0.Beta

BPM(Business Process Management),即業務流程管理,是一種以規範化的構造端到端的卓越業務流程為中心,以持續的提高組織業務績效為目的系統化方法,常見商業管理教育如 EMBA、MBA等均将 BPM 包含在内。

企業流程管理主要是對企業内部改革,改變企業職能管理機構重疊、中間層次多、流程不閉環等,做到機構不重疊、業務不重複,達到縮短流程周期、節約運作資本、提高企業效益的作用。

比較下邊的兩個人事加薪流程哪個效率更高?

流程一:

Activiti7工作流引擎-什麼是Activiti7

流程二:

Activiti7工作流引擎-什麼是Activiti7

上邊兩個流程的差別在于第二個流程在執行時,如果本次加薪金額在一萬元以内不再由總經理審批将比第一個流程縮短流程周期,進而提高效率。

再比較下邊的例子,哪個效率更高?

Activiti7工作流引擎-什麼是Activiti7

上邊兩個流程的差別在于第二個流程将交費和取藥放在一起進行,這樣導緻的結果是此視窗的從業人員必須具備财務、藥學專業知識,崗位強度加大,人員教育訓練難度加大進而導緻人員不易擴充,工作效率低下。

BPM 軟體就是根據企業中業務環境的變化,推進人與人之間、人與系統之間以及系統與系統之間的整合及調整的經營方法與解決方案的 IT 工具。 通常以 Internet 方式實作資訊傳遞、資料同步、業務監控和企業業務流程的持續更新優化,進而實作跨應用、跨部門、跨合作夥伴與客戶的企業運作。通過 BPM 軟體對企業内部及外部的業務流程的整個生命周期進行模組化、自動化、管理監控和優化,使企業成本降低,利潤得以大幅提升。

BPM 軟體在企業中應用領域廣泛,凡是有業務流程的地方都可以 BPM 軟體進行管理,比如企業人事辦公管理、采購流程管理、公文審批流程管理、财務管理等。

BPMN(Business Process Model And Notation)- 業務流程模型和符号 是由 **BPMI(Business Process Management Initiative)**開發的一套标準的業務流程模組化符号,使用 BPMN 提供的符号可以建立業務流程。 2004 年 5 月釋出了 BPMN1.0 規範.BPMI 于 2005 年 9 月并入 OMG(The Object Management Group 對象管理組織 ) 組織。OMG 于 2011 年 1 月釋出 BPMN2.0 的最終版本。

具體發展曆史如下:

Activiti7工作流引擎-什麼是Activiti7

BPMN 是目前被各 BPM 廠商廣泛接受的 BPM 标準。Activiti 就是使用 BPMN 2.0 進行流程模組化、流程執行管理,它包括很多的模組化符号,比如:

Event 用一個圓圈表示,它是流程中運作過程中發生的事情。

Activiti7工作流引擎-什麼是Activiti7

活動用圓角矩形表示,一個流程由一個活動或多個活動組成

Activiti7工作流引擎-什麼是Activiti7

一個 bpmn 圖形的例子:

首先當事人發起一個請假單;

其次他所在部門的經理對請假單進行稽核;

然後人事經理進行複核并進行備案;

最後請假流程結束。

Activiti7工作流引擎-什麼是Activiti7

Bpmn 圖形其實是通過 xml 表示業務流程,上邊的.bpmn 檔案使用文本編輯器打開:

Activiti 是一個工作流引擎(其實就是一堆 jar 包 API),業務系統使用 activiti 來對系統的業務流程進行自動化管理,為了友善業務系統通路(操作)activiti 的接口或功能,通常将 activiti 環境與業務系統的環境內建在一起。

使用 activiti 流程模組化工具(activity-designer)定義業務流程(.bpmn 檔案) 。bpmn 檔案就是業務流程定義檔案,通過 xml 定義業務流程。

如果使用其它公司開發的工作作引擎一般都提供了可視化的模組化工具(Process Designer)用于生成流程定義檔案,模組化工具操作直覺,一般都支援圖形化拖拽方式、多視窗的使用者界面、豐富的過程圖形元素、過程元素拷貝、粘貼、删除等功能。

向 activiti 部署業務流程定義(.bpmn 檔案)。使用 activiti 提供的 api 向 activiti 中部署.bpmn 檔案(一般情況還需要一塊兒部署業務流程的圖檔.png)

啟動一個流程執行個體表示開始一次業務流程的運作,比如員工請假流程部署完成,如果張三要請假就可以啟動一個流程執行個體,如果李四要請假也啟動一個流程執行個體,兩個流程的執行互相不影響,就好比定義一個 java 類,執行個體化兩個對象一樣,部署的流程就好比 java 類,啟動一個流程執行個體就好比 new 一個 java 對象。

因為現在系統的業務流程已經交給 activiti 管理,通過 activiti 就可以查詢目前流程執行到哪了,目前使用者需要辦理什麼任務了,這些 activiti幫我們管理了,而不像上邊需要我們在 sql語句中的where條件中指定目前查詢的狀态值是多少。

使用者查詢待辦任務後,就可以辦理某個任務,如果這個任務辦理完成還需要其它使用者辦理,比如采購單建立後由部門經理稽核,這個過程也是由 activiti 幫我們完成了,不需要我們在代碼中寫死指定下一個任務辦理人了。

當任務辦理完成沒有下一個任務/結點了,這個流程執行個體就完成了。