【Activiti工作流】(二)Activiti工作流初體驗

本節我們以生活中一個簡單的請假流程來初步體驗Activiti工作流引擎給我們帶來的申請-審批這個流程上的便利。
**【業務需求】**開發一個簡單的學生請假審批系統,請假的具體流程爲,學生髮起請假申請,首先由班主任簽字審批,之後由校長簽字審批,校長審批完之後,整個審批流程結束。
【開發步驟】
1、用工作流的思想對業務流程進行建模
1.1準備流程設計工具
上文中我們提到了可以運用BPMN2.0規範定義好的符號語言對業務流程進程建模,而Activiti不僅實現了BPMN2.0規範,而且在其基礎上作了擴充。並且Activiti給我們提供了兩款非常好用的流程設計工具。

  • 基於B/S架構的Activiti Modeler。Activiti Modeler包含於Activiti官方提供的開發包中,並且該開發包中的activiti-app是我們本節要使用的重點。所以需要我們去Activiti的官網下載該開發包,下面給出下載鏈接我們採用Activiti6.0。下載完成解壓後,我們會看到如下的目錄結構在這裏插入圖片描述在wars文件夾下給我們提供了三個webApp,我們將這三個包拷貝到Tomcat的webapps文件夾下。並重啓Tomcat,看到webapps文件夾下這三個war包被自動解壓成了文件夾說明部署完畢。在瀏覽器中輸入http://localhost:8080/activiti-app/即可看到activiti-app的登錄界面。默認賬號爲:admin密碼爲test登錄後會看到如下界面:在這裏插入圖片描述我們點開Kickstart App->Create Process,輸入Model name和Model key點擊create就可以打開流程圖的繪製界面。對我們的業務流程進行繪製。具體的繪製方法。我們稍後詳述,以上就是Activiti Modeler的安裝過程
  • Activiti提供的eclipse插件。具體的安裝過程可以參考博客,筆者不再贅述,在此給出一個鏈接,但是提示一下,eclipse的版本不要太高,可能會安裝失敗,筆者選用的是eclipse的oxygen版本。

2、用流程設計工具繪製業務流程圖
考慮到eclipse安裝Activiti流程設計插件時的繁瑣,本節我們使用Activiti Modeler進行設計。我們創建一個model name和modal key均爲studentLeaveProcess的流程圖。在工作流的概念中,任何一個流程都會有開始和結束,所以我們首先繪製這兩個元素:
啓動實踐
結束實踐
有不同的開始事件,我們本節只選擇第一個。啓動事件開始後,代表一個流程的開始,反應到我們的業務模型上,就是學生可以開始請假申請了,而這個申請的動作,需要學生人爲的去完成,在BPMN2.0中,需要人爲完成的任務,定義爲用戶任務(UserTask),如下圖:在這裏插入圖片描述
同理教師審批以及校長審批都是用戶任務,於是我們把三個用戶添加到流程圖繪製界面。並用箭頭連接這5個元素。初步的流程圖如下。
在這裏插入圖片描述
對於用戶任務我們可以編輯用戶任務的屬性,選中第一個用戶任務,該任務爲學生請假申請,我們進行屬性編輯。我們僅編輯如下三個屬性:
在這裏插入圖片描述
在這裏插入圖片描述
id:當前任務的唯一標識id
name:當前任務的名稱
Assignments:我們以assignee的方式指定了該任務的辦理人爲xialuo,當然了,這裏一般不會寫死,目前是初學,我們暫時寫死。
同理,我們給出其他兩個用戶任務的屬性。
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述
最後給出完成的流程圖:
在這裏插入圖片描述
至此流程圖繪製完畢。
【特別注意】或許有的同學會有這樣的疑問,這麼簡單的一個流程圖我在“畫圖”工具裏就可以畫,爲什麼還要在這裏繪製。筆者想提示的是,這個圖不僅僅是個像素文件,大家可以試試在這個界面中,下載該文件。在這裏插入圖片描述
將下載後的文件打開,你會發現這其實是個xml文件,在這個xml文件中定義了我們圖中的所有元素和元素的屬性以及元素之間的關係。Activiti流程引擎正是通過解析這個xml文件;來實現對業務流程的驅動。
3、使用官方應用activiti-app演示審批流程
3.1創建App
我們回到首頁在這裏插入圖片描述
我們解釋下這三個模塊的作用:
Kickstart App:Create process models, forms and app definitions, then share your models and definitions with other people.(創建流程模型,表單以及app定義,然後與別人分享你的模型和app,我們方纔繪製的流程圖就是這個模塊裏繪製的)
Task App:Access your full task list and work on any tasks assigned to you from any process app. Also, start new processes and tasks.(訪問流程app指定給你的所有任務列表,並且可以啓動一個流程和新建一個任務,該模塊裏可以查看你當前賬戶的待辦任務列表,並且可以自行發起一次流程和任務)
Identity management:Manage your profile: change your picture, name and other settings. As an admin user, manage users and groups(編輯app中的身份信息).
剛剛我們完成了業務流程圖的繪製,要知道,單獨的一個業務流程圖是不能進行任何的操作的,它需要有一個app作爲載體,運行在這個app中,所以我們在kickstart App->apps中創建一個app。
在這裏插入圖片描述
App創建完成後,需要將方纔繪製的業務流程圖(或稱爲業務模型)與該App綁定。
在這裏插入圖片描述
綁定後點擊左上角的保存按鈕之後關閉當前界面。我們會看到剛剛的app已經在列表裏:
在這裏插入圖片描述
點開學生請假管理系統->publish,將該App發佈。
【注意】當前的App對於我們來說,僅僅是概念層面創建了一個App
3.2設定用戶信息
在Identity management的Users選項卡中編輯模型中用到的身份信息。比如學生:xialuo 班主任:teacherWang 校長:schoolMasterZhang(注:創建用戶時Email一定要寫)。之後便可使用該身份信息,登錄系統。進行請假申請以及審批操作。身份信息列表如下;
在這裏插入圖片描述3.3測試流程
使用xialuo賬戶登錄系統,找到學生管理系統,在processes中選定一個流程並啓動該流程的一個流程實例。這裏提到了流程實例的概念,流程實例就是整個業務模型中的一次執行過程。我們剛剛爲整個請假流程定義了一個業務模型,就好比在Java中定義了一個Java類,而創建業務流程的一條流程實例,就好比創建了Java類的一個對象一樣。我們點擊start process後就可以創建一條流程實例。
在這裏插入圖片描述
在界面中我們可以看到當前正在活動中任務。是需要學生來處理的。點擊該任務後,進入任務詳情,點擊complete即可完成當前任務。
在這裏插入圖片描述
之後我們退出當前用戶。切換到teacherWang的賬號。就可以看到當前賬戶有待辦任務。同樣,我們點擊complete可以完成當前任務。任務流程自動結轉到校長審批節點,校長的操作同理。以上我們就完成了整個流程的流轉演示

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章