如何使用Grails Activiti插件构建我们自己的工作流系统

如何使用Grails Activiti插件构建我们自己的工作流系统,grails,workflow,grails-plugin,activiti,Grails,Workflow,Grails Plugin,Activiti,我想使用Grails Activiti插件构建自己的工作流系统。做这件事的程序是什么?有人能帮我吗 我已经提到了这一点,并且给出了一个例子 我已经在我的项目中安装了Grails Activiti插件。我还在我的项目中下载并安装了休假请求示例应用程序,并了解了它的工作原理。现在,我认为没有分步说明来指导您实现Grails Activiti插件。我也有类似的经历(一家使用Grails的开发商店,希望实现一个工作流引擎),到目前为止,Activiti插件并没有真正的帮助。那些正在使用它的人 大体上,以

我想使用Grails Activiti插件构建自己的工作流系统。做这件事的程序是什么?有人能帮我吗

我已经提到了这一点,并且给出了一个例子


我已经在我的项目中安装了Grails Activiti插件。我还在我的项目中下载并安装了休假请求示例应用程序,并了解了它的工作原理。

现在,我认为没有分步说明来指导您实现Grails Activiti插件。我也有类似的经历(一家使用Grails的开发商店,希望实现一个工作流引擎),到目前为止,Activiti插件并没有真正的帮助。那些正在使用它的人

大体上,以下是我建议在Grails中使用Activiti的步骤;您可能需要或离开Activiti插件

  • 。如果您使用内存中的H2数据库并让Grails执行create/drop语句,则可能需要将H2脚本添加到应用程序的启动过程中
  • 以BPMN 2.0 XML格式在Grails应用程序中映射所需的流程。您可以使用,它可以很好地插入GGTS,在某处启动Activiti Explorer并使用基于web的设计器,或者自己编写原始XML
  • 将Activiti作为依赖项包含在Grails应用程序中。您可以通过在BuildConfig.groovy中包含Activiti Grails插件,或者只将Activiti引擎jar本身作为一个依赖项来实现这一点(见下文)
  • 使用对的调用(最好是来自Grails服务)来部署流程模型,启动流程的各个实例,并完成工作流中的各个步骤。
    • 您可能需要将有关Grails域对象的信息作为过程变量传递,然后稍后再将其提取出来。弄清楚在哪里让Grails将数据持久化到域对象中,以及在哪里让Activiti将其作为过程变量来保存,这对开发人员来说只是需要一些思考
  • 一般来说,我的经验法则是让Activiti处理这个过程,Grails处理其他一切(UI、数据持久性和操作、验证等)

    我推荐这种方法,这样您仍然可以使用Grails通过控制器和GSP管理所有用户界面,并通过域对象和服务管理大部分对象模型。Activiti团队正在构建的UI没有问题,但它是基于它自己的Java/UI框架,具有自己的特点和理念。我相信一个超级开发人员可以将它们无缝地结合起来,而且可能已经做到了,但除非他/她从山上下来教我,否则我将不得不限制我将立即尝试掌握的工具的数量。:)

    如何将Activiti包含为依赖项 在BuildConfig.groovy文件中,在依赖项和存储库闭包中包含以下内容:

    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"
        }
    }
    

    您不必排除spring上下文依赖项,但Grails2.3.1确实使用了比Activiti5.13更高版本的spring。在我已经在2/3机器上试过了,没关系,Grails只使用了Spring的更高版本,忽略了Activiti所需的旧版本。然而,.

    我也在寻找这个..还没有答案Vish:-(