Activiti Modeler发布以及教程
1.新版Activiti Modeler簡介
在Activiti 5.6版本之前把Activiti Modeler作為壓縮包的一部分,但是后來不再這么做而是需要開發人員自己根據Signavio打包Activiti Modeler,我之前層寫過一篇博文講解如何打包:《如何使用Signavio打包Activiti Modeler》。
但是現在不需要自己打包了,官方已經基于Signavio開發了新版的Activiti Modeler,新版的特點如下:
這些新特性對于使用Activiti的開發者來說真是一個好消息;之前很多人抱怨說Signavio不好用,原因有兩個:沒有針對Activiti的特性支持、瀏覽器不支持IE(稍后我會單獨說說這個話題)。但是現在你可以像使用Activiti Designer一樣使用Activiti Modeler,而且比Activiti Designer更好用,再加上Activiti Modeler和Activiti Explorer兩者的結合更方便流程的管理。
按照慣例在發布Activiti引擎后應該隨之發布對應版本的Activiti Designer,因為有些引擎支持的新特性需要它提供可視化設計的支持,但是……5.10版本的Activiti Designer一再延期到時很多開發者很不爽,可以看看我在官網論壇發的帖子?When will it be released 5.10 version of the designer??。但是好消息又來了,trademak(Activiti項目的Team Leader,@tijsrademakers)發布消息說他們把開發Activiti Designer的人員調去開發新版的Activiti Modeler了……這可是一個額外的消息呀,最后很多人表示根本不在意料之中,好吧,繼續由我帶領你人事一下新版Activiti Modeler。在這篇帖子里面還提到了新版的(5.10)Activiti Designer也會在近期發布,到時我會在微博和QQ群發布消息。
2.Activiti源碼倉庫轉移到Github
從開始使用Activiti的時候我就想說為什么不用Github呢?本來一個很明顯的bug我可以fork之后修改然后提交pull request,svn很難讓開發者參與進去。
在很多人的期待與建議之后官方終于決定把源碼遷移到Github(9月21號),果斷Fork并Star,地址:
https://github.com/Activiti/Activiti
會用Git的讀者可以在日后參與進來修復Bug提交自己的Request,不會Git的讀者建議去學習一下,如果需要下載最新的源碼也可以通過下載Zip包的方式獲取:https://github.com/Activiti/Activiti/zipball/master
3.獲取新版Activiti Modeler
在Activiti的下載頁面添加了新的下載項(Activiti Explorer),等等……新版的Activiti Modeler呢?
新版Activiti Modeler基于Signavio,重新命名為:KISBPM,意為:keep it simple,官網http://www.kisbpm.com/
筆者Fork的Activiti源碼提供最新的中文國際化支持,地址:
https://github.com/henryyan/Activiti
3.1 官方提供的War包
剛剛已經提到了,現在兩者合并在一起了,下載Activiti Explorer之后就可以直接使用Activiti Modeler了,下載地址:
http://activiti.org/alpha/activiti-explorer.war
下載之后直接部署到Web容器中,數據庫無需配置使用內置的h2,如果讀者需要更改數據庫可以把war解壓后把文件夾復制到容器的應用目錄(例如tomcat的webapps目錄),然后更改db.properties里面的配置,就是普通的JDBC屬性。
3.2 從Github獲取最新源碼手動打包
官方打包的war包可能會存在延遲(非最新的源碼),這個時候可以自己從Github獲取源碼打包,當然離不開Maven的支持(別問我為什么……)。
獲取之后的目錄結構如下:
Activiti Modeler包含在activiti-webapp-explorer2模塊中,讀者可以導入Eclipse(需要m2eclipse插件支持)查看源碼
對應目錄modules/activiti-webapp-explorer2/src/main/webapp/editor
在終端中進入項目根目錄,執行以下命令:
?| 1 | mvn clean install -PbuildWebappDependencies |
執行完成之后在modules/activiti-webapp-explorer2/target目錄可以看到activiti-webapp-explorer2-5.11-SNAPSHOT.war,然后把這個文件重命名為activiti-explorer.war部署到tomcat或者其他的Web Server。
3.3 直接用Maven的Jetty插件啟動應用
?| 1 | ~/Activiti/modules/activiti-webapp-explorer2 (git) mvn clean package jetty:run |
然后就可以訪問Explorer了,地址:http://localhost:8080/activiti-explorer2
4.訪問Activiti Explroer和Activiti Modeler
使用過Activiti的讀者想必已經了解了Activiti Explorer,在用戶手冊里面有說明如何使用,今天重點說說如何使用Activiti Modeler。
4.1 新加的Activiti Modeler菜單
使用用戶kermit/kermit登陸系統,在菜單“Process”中多出了一個“Model Workspace”模塊,這個就是Activiti Modeler的入口。
下圖是點擊了“Model Workspace”之后的頁面。?
4.2 使用Activiti Modeler創建新的模型
點擊“create”之后進入模型設計器,下圖:
加載完成之后進入首頁,風格和以往不同,這次是綠色調有點小清新……
5.使用Activiti Modeler設計流程
先說一下設計器的操作三部曲:
本文這種說說和原版的Signavio不同的地方。
截圖說明添加的擴展屬性支持。
5.1 對用戶任務擴展支持
5.2 添加執行、監聽器
5.3 activiti:initiator的支持
之前寫過一篇博文:activiti:initiator的作用及其使用
Activiti Modeler同樣提供了支持:
5.4 表單支持
formkey同樣也是支持的,設置formkey屬性即可。
5.5 補充了對邊界事件的支持
在Signavio中缺少對邊界事件(Boundary Event)的支持,導致我在測試的不得不尋找其他的工具代替Signavio,現在Activiti添加了對邊界事件的支持,下圖:
5.6 部署到Activiti Explorer中
緊密結合的作用就是可以直接把設計好的流程部署到Activiti Explorer(實際使用的時候把Activiti Explorer的數據庫配置到真是環境就可以作為后臺管理使用了)中。
在Activiti Modeler中保存后回到Activiti Explorer界面(瀏覽器回退即可),然后在列表中就看到多了一個剛剛設計的流程。
現在可以點擊按鈕“Deploy process definition”部署到引擎中。
5.7 對于Activiti Modeler的說明
現在僅僅是alpha版本,官方給出的說明是在下個版本(也就是5.11,預計在12.1日發布)發布的時候發布正式版本,目前大多數功能都可以正常使用。有興趣的可以緊跟官方的更新,重復第3節中打包的任務,使用最新的版本^_^。
目前只是第一版,還有些功能還不完善,可以先嘗鮮等慢慢完善。 另外官方日后會推出完整版的使用說明。6.瀏覽器兼容的爭論
因為Activiti Modeler是基于Signavio的,所以瀏覽器方面就有限制了,不支持IE瀏覽器,這對國內大多數人來說可能不能接受,也是有一部分人放棄使用Signavio的原因。
說說國內廠商對設計器的要求吧:
- 定制開發的項目:這樣的項目一般不需要讓用戶自己設計流程,而是由業務需求人員設計再交由開發人員添加代碼邏輯以及其他的完善任務,業務需求人員和開發人員僅僅是少數,安裝一個非IE也不難吧。
- 可以讓用戶自定義的產品:有些廠商喜歡拿完全自定義忽悠客戶,從表單設計到流程設計全部交由用戶,我一向不贊成這樣的設計……,流程圖可以畫出來,里面的邏輯誰處理?不是每個用戶都和程序員一樣知道如何應用設計器設計可以正常運行的流程,在ZF單位還有部分人不熟悉點操作呢……
- 統一的開發平臺:提供統一的開發架構培訓一批人,有一個統一的流程管理系統(類似于Activiti Modeler和Activiti Explorer的關系),都是開發人員安裝個非IE也不成問題吧,而且大多數程序員是不喜歡用IE的。
對于瀏覽器上的爭論,我的觀點就是:盡量不要讓用戶參與流程設計(只讓他們提供業務需求),少數人安裝個非IE瀏覽器就和喝杯咖啡一樣。
總結
以上是生活随笔為你收集整理的Activiti Modeler发布以及教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么调试EXC_BAD_ACCESS错误
- 下一篇: 使用docker镜像搭建svn+Apac