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