2013-03-04 33 views
4

我想建立使用Grails的Activiti的插件,我自己的工作流系統來建立我們自己的工作流系統。有什麼程序來做到這一點?誰能幫我嗎?我提到documentationexample如何使用Grails的Activiti的插件

我在我的項目中安裝了Grails Activiti插件。我還下載並在我的項目中安裝了度假請求示例應用程序,並瞭解它如何工作。

+0

我也搜索這個.. – Viswa 2013-07-01 09:34:28

+0

沒有答案Vish :-( – Sri 2013-07-01 09:52:15

回答

3

現在,我不認爲有一步一步的指示來指導您實施Grails Activiti插件。我在一個類似的小船上(一家使用Grails的開發商店,希望實現一個工作流引擎),到目前爲止,Activiti插件並沒有真正的幫助。那些正在使用它don't actually seem to be leveraging the integration it provides between GORM and Activiti。大致來說,我建議在Grails中使用Activiti的步驟如下:你可以採取或離開Activiti插件。

  1. Create the Activiti engine in your database。如果您使用內存中的H2數據庫並讓Grails執行create/drop語句,則可能需要將h2腳本添加到應用程序的啓動過程中。
  2. 地圖,你在BPMN 2.0 XML格式你的Grails應用需要一個過程。您可以使用Activiti Eclipse Designer,這將插入GGTS就好了,地方火起來的Activiti Explorer和使用基於Web的設計師,或代碼的原始XML自己壞自己。
  3. 包括Activiti的在Grails應用程序的依賴。你可以通過在BuildConfig.groovy中包含Activiti Grails插件,或者通過將Activiti引擎jar本身作爲依賴關係來實現(見下文)。
  4. 使用對Activiti engine's API(最好來自Grails服務)的調用來部署您的流程模型,啓動流程的各個實例以及遍歷工作流中的各個步驟。
    • 您可能需要將有關您的Grails域對象的信息作爲過程變量傳遞,然後再將其繪製回去。考慮到讓Grails將數據保存在域對象中的位置,以及Activiti將其作爲流程變量的位置,只需要對開發人員進行一些思考。

一般情況下,我的經驗法則是讓Activiti的處理過程,和Grails處理一切(UI,數據持久性和操縱,驗證等)。

我推薦此方法,以便您仍然可以使用Grails通過控制器和GSP以及大部分對象模型通過域對象和服務來管理所有用戶界面。有沒有錯Activiti的團隊正在構建UI的,但它是基於Vaadin,這與它自己的特點和理念自己的Java/UI框架。我敢肯定,超開發人員可以無縫地將它們組合,而且很可能已經擁有,但除非他/她就下來了山教我,我將不得不限制的工具,我會盡力的數量立刻掌握。 :)

如何包含Activiti作爲依賴項

在您的BuildConfig中。常規文件,都將在你的依賴和倉庫封鎖以下:

repositories { 
    inherits true // Whether to inherit repository definitions from plugins 

    mavenRepo "https://maven.alfresco.com/nexus/content/groups/public/" 
    //any other repositories you need go here, including grailsCentral(), etc. 
} 
dependencies { 
    compile("org.activiti:activiti-engine:5.13"){ 
     excludes "spring-beans" 
    } 
} 

您不必排除彈簧語境依賴性,但Grails的2.3.1不使用Spring的版本比Activiti的5.13。在2/3的機器上,我試過了,沒問題,Grails只是使用Spring的更新版本,忽略Activiti所需的舊版本。但是,on one machine, the difference caused a persnickety exception that was difficult to track down