Activiti 5.11 發布,業務流程管理 - OSCHINA - 中文開源技術交流...

2021-01-15 開源中國
1. 聖誕大禮包

這是我第一次為Activiti的發布撰文,因為這次的發布我覺得很有必要和大家分享,這其中包含了我期待的新特性和已知問題的修復;而且還有一個重量級的模塊Activiti Modeler。

在5.8版本之前一直以每兩個月一版的的頻率發布,但是在5.8~5.10之間波動比較大,5.9和5.10都是5個月才發布一版,不過從5.11開始又開始恢復每兩個月一版的頻率了,我認為短周期的發布有利於佔領市場,對於開發者來說能儘快修複比較嚴重的問題。

5.11版本在代碼管理方面做了很大調整,首先把源碼由原來的svn轉移到了Github有利於引擎的發展,可以讓更多的開源愛好者參與進來,大家一起捉蟲,想Activiti Team提交自己的想法,Github可以很好的滿足這些;通過Github的「Fork」我們可以很容易的做到這些。

2. 新特性及優化

新模塊Activiti Modeler:添加了Web版本的流程定義設計器—Activiti Modeler到Activiti Explorer中,而且兩者可以無縫結合;可以把Modeler設計的流程定義部署到Exploer中,也可以以已部署的流程定義為基礎進行修改後重新部署。具體的使用可以參考這裡。

漢化Activiti Explorer:本人有幸參與並完成了漢化工作,漢化介紹。

添加Native Query:允許通過本地SQL方法查詢Activiti的對象;在這之前查詢一直是一個比較頭疼的事情,因為開發人員只能使用一些Query對象顯示調用設置屬性的方法過濾,如果想做到自定義條件查詢沒有這類接口提供;現在可以使用下面的方式靈活組裝查詢條件。參考手冊的Query API部分。

歷史變量查詢功能增強:在5.11之前的版本中變量和表單屬性(表單的欄位,動態表單和外置表單)保存在同一張表中ACT_HI_DETAIL,以DETAIL的TYPE區分(FormPropertyVariableUpdate);在5.11中把兩者做了分離,添加了一張表ACT_HI_VARINST專門用來存儲變量(也就是在ACT_HI_DETAIL中類型為VariableUpdate類型的記錄),這樣表單的欄位和變量就區分開來了(表單欄位類型是字符型,變量有具體的類型);並且專門添加了一個變量實例接口HistoricVariableInstance,以及對應的變量實例查詢對象HistoricVariableInstanceQuery

運行時變量刪除:允許通過API方式刪除流程實例或者任務的相關變量,調用方式:runtimeService.removeVariable('foo')

改進掛起與激活狀態:在5.9版本時我曾在JIRA提交了一個改進意見ACT-1228,不過最後被關閉了……在5.11中終於支持了這一特性,當掛起一個流程實例的時候同時也把相關的任務掛起;原來針對流程定義的掛起與激活功能也進行了優化,可以選擇當掛起或者激活某個流程定義時是否掛起相關的流程實例,並且允許定時執行掛起與激活任務(利用Job,定時器)。如此,對於一些流程實例或者流程定義暫時不需要處理時就可以利用掛起功能,在待辦任務列表僅顯示處於激活狀態的即可。

優化對DB2和MSSQL的支持:在SQL腳本方面做了優化。

允許在Java Delegate中調用引擎Service接口:當為某個活動添加了一個Java Service任務設置了Java Delegate時如果需要獲取引擎的7個Service,只能通過自己寫工具類的方式獲取,或者用Spring代理監聽或者Java Delegate類用注入的方式實現。現在可以通過DelegateExecution的對象獲取,詳細請參考這裡。

結構調整:抽取獨立的模塊(jar包)activiti-explorer、activiti-rest,對應的activiti-webapp-explorer2依賴activiti-explorer,activiti-webapp-rest2依賴activiti-rest;如此我們可以很容的把這兩個模塊集成到現有系統中。創建新的模塊:activiti-bpmn-converter、activiti-bpmn-model、activiti-json-converter作為基礎的組件,提供bpmn文件的解析以及轉換功能(稍後會寫篇文章專門講解如何使用這些基礎組件)。

除了以上的改進和新特性之外還修復了大量的Bug,完整的Changlog請參考JIRA。

3. 下載新版本

5.11版本下載地址:https://github.com/downloads/Activiti/Activiti/activiti-5.11.zip

壓縮包中的wars目錄包含兩個文件,activiti-rest模塊可以單獨部署了,修改資料庫配置就可以作為自己的REST服務使用。

Github上的5.11分支:https://github.com/Activiti/Activiti/tree/activiti-5.11

4. 升級建議

5.11版本是一個改進版本,添加了很多有用的新特性,很值得升級;當然在升級產品環境之前做好充分的測試並備份數據。

5. 版本5.12前瞻

在5.11發布之前我曾在JIRA提交了一個關於Activiti Explorer中流程圖的一個Bug-ACT-1469,是的,又被關閉了;不過後來在twitter上和Activiti的Team Leader 交流了一下,我分享了我的做法並得到了他的肯定,而且想讓我參與到開發中用Javascript和Css方式實現流程圖的跟蹤功能。

另外國內開發者遇到的流程圖中文亂碼問題也考慮在5.12版本中給出解決方案,這一點我也和Tijs進行了討論,我的想法是在引擎配置中添加一個字體名稱的設置項,對於英文字符集之外的國家就可以通過這個配置使用本地語言的字體以解決亂碼問題。

相關焦點