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

标签 grails workflow grails-plugin activiti

我想使用 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 插件。

  1. Create the Activiti engine in your database 。如果您使用内存 H2 数据库并让 Grails 执行创建/删除语句,则可能需要将 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 通过 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/

相关文章:

grails - 使用用户名作为电子邮件,Spring Security UI 插件

validation - jQuery验证UI插件不包括qTip资源

hadoop - 获取配置单元脚本的 _SUCCESS 文件

sharepoint - 如何通过仅更新列表项中的值(已批准、未批准)来触发 SharePoint 工作流?

Grails 内联插件 : Cannot Upgrade a plugin that is configured via BuildConfig. groovy

grails - 用于在grails中检索状态更新项的相似/不同状态的条件或动态查找器

workflow - 通过 Sharepoint 设计器 : Server-side activities have been updated 保存工作流时出错

grails - 我可以制作一个局部模板,该局部模板在显示时使用,而在编辑和创建时不使用只读字段吗?

grails - Grails 域类与继承之间的关系

Grails:连接是只读的。不允许进行导致数据修改的查询