2013-03-04 127 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