前言:本站為你精心整理了Activiti中小企業(yè)論文范文,希望能為你的創(chuàng)作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。
一理論研究
1自定義建模
activitimodeler是基于開源Signavioweb流程編輯器的一個定制版本,提供了對BPMN2.0圖形化的規(guī)范支持,建模后的流程以json格式進行存儲。用戶只需要了解業(yè)務(wù)流程就可以輕松地建立出復(fù)雜的工作流程。
1.1動態(tài)表單
與業(yè)務(wù)流程相關(guān)的信息有兩種方式:一種包含在自身的流程變量中,另一種是通過流程變量引用的外部信息。Activiti允許存儲復(fù)雜的Java對象作為流程變量,如序列化對象、XML文檔等。用戶都是在啟動流程和完成用戶任務(wù)時與流程進行交互的。而表單需要在前臺解析顯示之后才能與用戶進行交互。表單所需要顯示的屬性可以通過表單服務(wù)獲取。為了能夠使前臺顯示表單變得容易,將流程定義中包含的對流程變量對象存儲到Map中,然后在前臺使用JSTL和EL對Map內(nèi)容根據(jù)類型不同循環(huán)遍歷展示。通過獲取前臺請求的參數(shù),所有被提交的屬性都將會作為流程變量存儲在數(shù)據(jù)庫中。這意味著在一個表單中新添加一個簡單的字段,也會被作為一個新的變量存儲。通過表單服務(wù)可以從數(shù)據(jù)庫中取出表單屬性并交付給前臺顯示。
1.2外置表單
該種方式常用于基于工作流平臺開發(fā)的方式,開發(fā)人員只需要把表單內(nèi)容配置好保存到.form文件中即可,然后配置每個節(jié)點需要的表單名稱,實際運行時通過引擎提供的API讀取任務(wù)對應(yīng)的表單內(nèi)容進行輸出。此種方式對于在經(jīng)常添加新流程的需求較為適用,可以快速新流程,把流程設(shè)計出來之后再設(shè)計表單,最后將兩者進行關(guān)聯(lián)。
1.3普通表單
普通表單是最靈活的一種方式,常應(yīng)用在業(yè)務(wù)較為復(fù)雜的系統(tǒng)中。普通表單的特點是把表單的內(nèi)容單獨存放在一個文件中,存放方式也有兩種:一種是把整個流程涉及到的表單放在一個文件,然后根據(jù)處理的環(huán)節(jié)的不同,根據(jù)環(huán)節(jié)名稱匹配顯示;另一種是每個任務(wù)對應(yīng)一個處理頁面,提交任務(wù)時根據(jù)任務(wù)的ID動態(tài)指定表單頁面。
2模型部署
通過一個壓縮文件(Zip、Bar)部署業(yè)模型,也可以通過一個獨立資源(例如bpmn、xml等)構(gòu)建部署,部署過程中要注意編碼格式,防止出現(xiàn)亂碼情況。
3模型熱遷移
一個企業(yè)在流程模型建立運行一段時間后,業(yè)務(wù)規(guī)則發(fā)生變化,需要再添加一個流程節(jié)點,此時先修改模型,然后部署,部署成功后,將原有流程中未完結(jié)的流程通過遷移的方式,可以遷移到新的流程模型上。在遷移過程中,需要修改Activiti的運行表,將流程任務(wù)表中的流程定義ID修改為新的流程定義ID,同時修改運行流程表中的流程定義ID,修改運行時定時任務(wù)數(shù)據(jù)表和運行時流程人員與節(jié)點關(guān)聯(lián)表,最后修改歷史流程實例表。通過攔截器對原有任務(wù)的修改,可以實現(xiàn)未完成的流程熱遷移功能。
4核心功能
4.1會簽
會簽表示同一個任務(wù)節(jié)點需要多人協(xié)同處理,在配置過程中,可以選擇并行處理也可以選擇順序處理。處理過程中可以設(shè)置處理通過率,如果設(shè)置為60%,則審批通過率大于等于該數(shù)時即可流轉(zhuǎn)到下一節(jié)點。會簽符合中小企業(yè)的具體辦公情況,具有一定的應(yīng)用場景。
4.2加減簽
在某一會簽節(jié)點,也存在一種特殊的情況,即在審批過程中,需要新加入審批成員或者減少審批成員,此為加減簽功能。其中加減簽過程,不會改變原有配置。加減簽過程中需要修改循環(huán)次數(shù),集合人員ID等相關(guān)信息。
4.3指派
流程在流轉(zhuǎn)過程中,如果任務(wù)處理人有事不能處理時,管理員可以通過指派功能將任務(wù)強制性的指派給某人進行處理。指派過程中需要注意業(yè)務(wù)規(guī)則以及人員的組織結(jié)構(gòu)關(guān)系。
4.4任務(wù)提醒方式
可以設(shè)置任務(wù)的提醒時刻,Activiti支持郵件方式提醒。
4.5任務(wù)駁回
任務(wù)審批過程中,如果審批者任務(wù)申請者條件不符合,不能繼續(xù)流轉(zhuǎn),可以選擇駁回到申請人,由申請人重新修改后再次提交。
4.6
可以分為轉(zhuǎn)派和協(xié)助兩種方式。轉(zhuǎn)派類似于指派,區(qū)別是轉(zhuǎn)派是由任務(wù)處理人發(fā)起的行為,任務(wù)處理人將任務(wù)轉(zhuǎn)派給其他人處理,其他人處理后任務(wù)會繼續(xù)向下一個節(jié)點流轉(zhuǎn)。協(xié)助處理是把任務(wù)轉(zhuǎn)給其他人處理,其他人處理之后,任務(wù)會回到原任務(wù)處理人的代辦事項下,而不是繼續(xù)流轉(zhuǎn)到下一個節(jié)點。
二實例驗證
基于上面的分析,給出了基于Activiti引擎實現(xiàn)工作流開發(fā)的通用方案。本文以JavaEE平臺進行設(shè)計開發(fā),數(shù)據(jù)庫使用mysql數(shù)據(jù)庫。以請假流程為示例,通過對請假流程的建模、設(shè)計、開發(fā)、測試,來演示Activiti是如何快速構(gòu)建企業(yè)工作流程的。
1系統(tǒng)設(shè)計
首先是管理員登錄后,建立工作流模型圖,在建模過程中,需要設(shè)置節(jié)點的處理人變量及表單字段。生成模型后對模型進行部署,此過程也可以是對原有模型進行修改并重新部署。模型部署成功后,需要根據(jù)具體業(yè)務(wù)情況對節(jié)點處理人進行配置。都配置完成后,應(yīng)用程序可以調(diào)用工作流引擎接口實現(xiàn)流程的啟動、表單數(shù)據(jù)的讀取以及任務(wù)的提交處理與駁回處理等。由于activiti集成了Modeler模型編輯界面,所以在Modeler中即可快速建立流程圖。本文采用內(nèi)置表單方式,即在建模過程中,將表單內(nèi)容在節(jié)點圖標中設(shè)置完成。
2系統(tǒng)實現(xiàn)
建立好模型之后,需要對模型進行部署,部署成功之后就可以正常使用流程了。申請人啟動流程后即可看到設(shè)計過程中內(nèi)置表單的內(nèi)容字段。填寫表單提交后流程即可正常流轉(zhuǎn)。通過如下代碼即可取到表單內(nèi)的內(nèi)容并顯示到前臺頁面。提交任務(wù)時通過如下代碼即可完成任務(wù)的提交,流轉(zhuǎn)到下一環(huán)節(jié)。
3結(jié)果分析
通過如上的框架設(shè)計,如果企業(yè)中需要添加或修改流程,只需建立新的模型或者修改原有模型并重新部署即可。對于新建立部署的模型,可以直接進行使用;對于修改的模型,部署后還需要對原有模型的流程進行遷移即可。采用上述設(shè)計的解決方案,可以明顯地提高工作效率,降低維護成本。通過Loadrunner對該流程進行了壓力測試,結(jié)果顯示性能良好,與其他工作流引擎比較具有一定的優(yōu)勢。
三結(jié)語
本文對基于Activiti的工作流引擎在企業(yè)中的實際應(yīng)用作了深入研究,給出了完整快速地建立工作流模型的解決方案,結(jié)合員工請假流程的例子,首先建立員工請假流程模型,即UML活動圖,然后對建立的模型進行部署,部署成功后該流程即可以正常使用。但是對于復(fù)雜流程的遷移還存在問題,比如遷移后的流程圖顯示不準確等。下一步的工作是深入完善工作流框架的設(shè)計,使該框架具有更廣泛的適用性和應(yīng)用性。
作者:任銘亮楊之垚高永祥單位:河南新飛金信計算機有限公司