我想使用 Grails Activiti 插件构建我自己的工作流系统。执行此操作的程序是什么?谁能帮我吗?

我已经提到了这个 documentation 和一个给定的 example

我已经在我的项目中安装了 Grails Activiti 插件。我还在我的项目中下载并安装了假期请求示例应用程序,并查看了它是如何工作的。

最佳答案

目前,我认为没有分步说明可以带您完成 Grails Activiti 插件的实现。我在类似的船上(使用 Grails 的开发商店想要实现工作流引擎),到目前为止,Activiti 插件并没有真正有帮助。使用它的人 don't actually seem to be leveraging the integration it provides between GORM and Activiti

概括地说,以下是我建议在 Grails 中使用 Activiti 的步骤;您可能会使用或离开 Activiti 插件。

  • Create the Activiti engine in your database 。如果您使用内存中的 H2 数据库并让 Grails 执行创建/删除语句,则可能需要将 h2 脚本添加到应用程序的启动过程中。
  • 以 BPMN 2.0 XML 格式映射您希望在 Grails 应用程序中使用的流程。您可以使用 Activiti Eclipse Designer ,它可以很好地插入 GGTS,在某处启动 Activiti Explorer 并使用基于 Web 的设计器,或者对原始 XML 进行编码。
  • 将 Activiti 作为依赖项包含在您的 Grails 应用程序中。您可以通过在 BuildConfig.groovy 中包含 Activiti Grails 插件,或仅将 Activiti 引擎 jar 作为依赖项单独包含(见下文)来实现。
  • 使用对 Activiti engine's API 的调用(最好来自 Grails 服务)来部署您的流程模型、启动流程的各个实例,并完成工作流中的各个步骤。
  • 您可能需要将有关您的 Grails 域对象的信息作为流程变量传递,然后稍后再将它们绘制回来。弄清楚让 Grails 将数据保存在域对象中的何处,以及让 Activiti 将其作为流程变量保留的位置,这只是开发人员的一些想法。

  • 一般来说,我的经验法则是让 Activiti 处理流程,而 Grails 处理其他所有事情(UI、数据持久性和操作、验证等)。

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

    如何将 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-context 依赖项,但 Grails 2.3.1 确实使用了比 Activiti 5.13 更高版本的 Spring。在 2/3 的机器上我试过了,没问题,Grails 只使用 Spring 的更高版本,忽略了 Activiti 要求的旧版本。但是, on one machine, the difference caused a persnickety exception that was difficult to track down

    关于grails - 如何使用 Grails Activiti 插件构建我们自己的工作流系统,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15196572/

    10-13 05:48