activiti工做流-概述


1       應用場景html

1.1 業務流程java

採購系統完成了企業的平常採購管理,包括採購單管理、採購單審覈、入庫、結算等模塊。sql

 

用戶角色包括:員工、部門經理、總經理、財務。數據庫

 

基本業務流程以下:api



1.2 業務的概念

 

什麼是業務?架構

用戶的需求就是業務。數據庫設計

什麼是業務功能?編輯器

經過計算機技術實現用戶需求,經過計算機研發軟件功能,所開發的軟件功能就是業務功能。工具

什麼是業務系統?優化

實現用戶需求,所開發的軟件系統,叫業務系統。

什麼是業務系統核心(靈魂)?

技術不是業務系統核心,業務流程是業務系統的核心。

 

什麼是業務流程?

不少的功能組成一個流程,完成用戶需求爲目標,叫業務流程。

 

 

1.3 數據庫設計

 

採購單表:pur_bus_order

採購單審覈表:pur_bus_order_audit

用戶表:pur_sys_user

角色表:pur_sys_role

用戶角色關係表:pur_sys_user_role


1.4 功能設計

1.4.1     流程簡化爲:


1.4.2     員工建立採購單

1.4.2.1       操做流程:

員工登陸系統

進入建立採購單

填寫採購單信息,點擊保存

進入採購單待提交頁面

選擇須要提交的採購單點擊提交

 

1.4.2.2       操做:

l  保存採購單

提交後pur_bus_order表寫一條記錄:

Status:寫入1(未提交)

l  查詢待提交採購單

查詢pur_bus_order表的記錄,只查詢status值等於1(未提交)的記錄

 

l  提交採購單

根據主鍵更新pur_bus_order表中的status字段,更新爲2(部門經理審覈中)

 

1.4.3     部門經理審覈採購單

 

1.4.3.1       操做流程:

部門經理登陸系統

進入採購單審覈頁面查詢待審覈信息

點擊審覈,進入審覈頁面

輸入審覈信息

點擊提交

 

1.4.3.2       操做

l  採購單待審覈信息

查詢pur_bus_order表的記錄,只查詢status值等於2 (部門經理審覈中)的記錄

 

l  提交審覈信息

向pur_bus_order_audit表插入一條記錄(審覈信息)

根據主鍵更新pur_bus_order表的記錄

當採購單審覈不經過時:status值更新爲3(部門經理審覈不經過)

當採購單審覈經過時,status值更新爲4(總經理審覈中)

 

 

1.4.4     總經理審覈採購單

參考部門經理審覈實現

1.4.4.1       操做流程

總經理登陸系統

進入採購單審覈頁面查詢待審覈信息

點擊審覈,進入審覈頁面

輸入審覈信息

點擊提交

1.4.4.2       操做

l  採購單待審覈信息

查詢pur_bus_order表的記錄,只查詢status值等於4 (總經理審覈中)的記錄

 

l  提交審覈信息

向pur_bus_order_audit表插入一條記錄(審覈信息)

根據主鍵更新pur_bus_order表的記錄

當採購單審覈不經過時:status值更新爲5(總經理審覈不經過)

當採購單審覈經過時,status值更新爲6(財務審覈中)

 

 

 

1.4.5     財務審覈採購單

參考部門經理審覈實現

 


1.5 需求變動

1.5.1     流程變動1

針對上邊的流程變動以下:


須要修改部門經理審覈採購單功能,判斷採購金額:

若是大於1萬元則更新pur_bus_order表中的status字段爲4總經理審覈中

若是小於等於1萬元則更新pur_bus_order表中的status字段爲6財務審覈中

 

 

1.5.2     流程變動2

 

將上邊的流程中總經理審覈和財務審覈位置顛倒,變爲:


針對上邊的流程變動須要將財務審覈採購單和總經理審覈採購單功能所有修改。

好比財務審覈採購單修改:

審覈經過更新pur_bus_order表中的status狀態爲4(總經理審覈中)

 

 

 

1.6 結論

 

業務系統是經過在採購單表中添加狀態字段對業務流程進行管理,在採購單建立提交、部門經理審覈、總經理審覈、財務審覈等操做時在程序代碼中對狀態值進行硬編碼,若是業務流程變動須要修改代碼,不利於系統維護。

若是咱們採用工做流能夠解決上邊的問題。

 

建議:

對於簡單的業務流程,流程節點少,流程變化不大,建議業務系統本身管理流程,由於採用工做流將增長工做量和開發成本。

對於複雜的業務流程,流程節點多,流程變化較大,建議使用工做流,雖然增長了工做量和開發成本,可是將有利於系統擴展維護,下降系統維護成本,由於系統上線後主要的工做量是維護。

 

 

 

2       什麼是工做流

2.1 工做流介紹

工做流(Workflow),就是經過計算機對業務流程自動化執行管理。它主要解決的是「使在多個參與者之間按照某種預約義的規則自動進行傳遞文檔、信息或任務的過程,從而實現某個預期的業務目標,或者促使此目標的實現」。

 

 

2.2 工做流系統

 

一個軟件系統中具備工做流的功能,咱們把它稱爲工做流系統,一個系統中工做流的功能是什麼?就是對系統的業務流程進行自動化管理,因此工做流是創建在業務流程的基礎上,因此一個軟件的系統核心根本上仍是系統的業務流程,工做流只是協助進行業務流程管理。即便沒有工做流業務系統也能夠開發運行,只不過有了工做流能夠更好的管理業務流程,提升系統的可擴展性。

 

 

2.2.1     適用行業:

消費品行業,製造業,電信服務業,銀證險等金融服務業,物流服務業,物業服務業,物業管理,大中型進出口貿易公司,政府事業機構,研究院所及教育服務業等,特別是大的跨國企業和集團公司。

 

2.2.2     具體應用

 

1.       關鍵業務流程:訂單、報價處理、採購處理、合同審覈、客戶電話處理、供應鏈管理等

2.       行政管理類:出差申請、加班申請、請假申請、用車申請、各類辦公用品申請、購買申請、日報週報等凡是原來手工流轉處理的行政表單。

3.       人事管理類:員工培訓安排、績效考評、職位變更處理、員工檔案信息管理等。

4.       財務相關類:付款請求、應收款處理、平常報銷處理、出差報銷、預算和計劃申請等。

 

5.       客戶服務類:客戶信息管理、客戶投訴、請求處理、售後服務管理等。

 

6.       特殊服務類:ISO系列對應流程、質量管理對應流程、產品數據信息管理、貿易公司報關處理、物流公司貨物跟蹤處理等各類經過表單逐步手工流轉完成的任務都可應用工做流軟件自動規範地實施。

 

 

 

3       什麼是Activiti

3.1 Activiti介紹

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

Activiti是一個工做流引擎, activiti能夠將業務系統中複雜的業務流程抽取出來,使用專門的建模語言(BPMN2.0)進行定義,業務系統按照預先定義的流程進行執行,實現了業務系統的業務流程由activiti進行管理,減小業務系統因爲流程變動進行系統升級改造的工做量,從而提升系統的健壯性,同時也減小了系統開發維護成本。

 

3.1.1     BPM

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

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

 

好比下邊的兩個採購流程哪一個效率更高?

 


上邊兩個流程的區別在於第二個流程在執行時,若是採購金額在一萬元之內再也不由總經理審批將比第一個流程縮短流程週期,從而提交效率。

 

 

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


上邊兩個流程的區別在於第二個流程將交費和取藥放在一塊兒進行,這樣致使的結果是此窗口的工做人員必須具有財務、藥學專業知識,崗位強度加大,人員培訓難度加大從而致使人員不易擴展,工做效率低下。

 

3.1.2     Bpm軟件

Bpm軟件就是根據企業中業務環境的變化,推動人與人之間、人與系統之間以及系統與系統之間的整合及調整的經營方法與解決方案的IT工具。 一般以Internet方式實現信息傳遞、數據同步、業務監控和企業業務流程的持續升級優化,從而實現跨應用、跨部門、跨合做夥伴與客戶的企業運做。經過BPM軟件對企業內部及外部的業務流程的整個生命週期進行建模、自動化、管理監控和優化,使企業成本下降,利潤得以大幅提高。

Bpm軟件在企業中應用領域普遍,凡有業務流程的地方均可以bpm軟件進行管理,好比企業人事辦公管理、採購流程管理、公文審批流程管理、財務管理等。

 

 

3.1.3     BPMN

BPMN(Business Process Model And Notation)- 業務流程模型和符號 是由BPMIBusiness Process Management Initiative)開發的一套標準的業務流程建模符號,使用BPMN提供的符號能夠建立業務流程。 2004年5月發佈了BPMN1.0規範.BPMI於2005年9月併入OMG(The Object Management Group對象管理組織)組織。OMG於2011年1月發佈BPMN2.0的最終版本。

 

具體發展歷史以下: 


BPMN 是目前被各 BPM 廠商普遍接受的 BPM 標準。Activiti 就是使用 BPMN 2.0 進行流程建模、流程執行管理,它包括不少的建模符號,好比:

 

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


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



一個bpmn圖形的例子:



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



3.2 Activit如何使用

 

1)         部署activiti

Activiti是一個工做流引擎(其實就是一堆jar包API),業務系統使用activiti來對系統的業務流程進行自動化管理,爲了方便業務系統訪問(操做)activiti的接口或功能,一般將activiti環境與業務系統的環境集成在一塊兒。

 

 

2)         流程定義

使用activiti流程建模工具(activity-designer)定義業務流程(.bpmn文件) 。

.bpmn文件就是業務流程定義文件,經過xml定義業務流程。

 

若是使用其它公司開發的工做做引擎通常都提供了可視化的建模工具(Process Designer)用於生成流程定義文件,建模工具操做直觀,通常都支持圖形化拖拽方式、多窗口的用戶界面、豐富的過程圖形元素、過程元素拷貝、粘貼、刪除等功能。

 

 

3)         流程定義部署

向activiti部署業務流程定義(.bpmn文件)

使用activiti提供的api向activiti中部署.bpmn文件(通常狀況還須要一起部署業務流程的圖片.png)

 

4)         啓動一個流程實例(ProcessInstance)

啓動一個流程實例表示開始一次業務流程的運行,好比員工請假流程部署完成,若是張三要請假就能夠啓動一個流程實例,若是李四要請假也啓動一個流程實例,兩個流程的執行互相不影響,就比如定義一個java類,實例化兩個對象同樣,部署的流程就比如java類,啓動一個流程實例就比如new一個java對象。

 

5)         用戶查詢待辦任務(Task)

 

由於如今系統的業務流程已經交給activiti管理,經過activiti就能夠查詢當前流程執行到哪了,當前用戶須要辦理什麼任務了,這些activiti幫咱們管理了,而不像上邊須要咱們在sql語句中的where條件中指定當前查詢的狀態值是多少。

 

6)         用戶辦理任務

用戶查詢待辦任務後,就能夠辦理某個任務,若是這個任務辦理完成還須要其它用戶辦理,好比採購單建立後由部門經理審覈,這個過程也是由activiti幫咱們完成了,不須要咱們在代碼中硬編碼指定下一個任務辦理人了。

 

7)         流程結束

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

原文地址:https://blog.csdn.net/jiangeeq/article/details/80662456
相關文章
相關標籤/搜索