gpt4 book ai didi

grails - 如何触发camunda中的表更改(使用grails)?

转载 作者:行者123 更新时间:2023-12-02 16:00:54 30 4
gpt4 key购买 nike

我正在将我的 grails 应用程序从 activiti 迁移到 camunda(都用作 grails 插件)。因为没有完全(自动)数据库迁移,所以我必须自己做一些更改(使用 db 迁移插件)。 camunda 只会创建几个新表(如果属性 cmmn 设置为 true)。

为此,我必须从 camunda 禁用作业执行程序并禁用 cmmn(以避免迁移)。如果我不禁用这两个属性,camunda 正在尝试创建新表 之前 数据库迁移插件可以发挥作用。这将失败,因为缺少某些列(用作外键约束)。

数据库迁移插件完成迁移后,剩下的表应该由camunda创建。只有在启用 cmmn 时才会这样做。所以我在 bootstrap.groovy 中启用了作业执行器并启用了 cmmn。

// will be injected by spring
def processEngine

processEngine.jobExecutor.start()
processEngine.processEngineConfiguration.cmmnEnabled = true

现在的问题是,我无法触发数据库表的创建。因为这是在流程引擎创建/实例化期间完成的(而且我已经有一个流程引擎)。调用的必要方法是 executeSchemaOperations(),但是这个方法是 protected (是的,我知道这在 groovy 中并不是真正的问题,因为可以调用私有(private)/ protected 方法)。但是,这是我的问题,有没有更好的方法来触发表创建?

我正在使用 grails 2.3.11 和 camunda 插件 0.4(带有 camunda 7.2)。

最好的问候和感谢您的帮助,
丹尼尔

最佳答案

有趣的问题,似乎您已经解决了大部分问题。

查看 executeSchemaOperations() protected 方法,看起来好像它只是调用从流程引擎配置中检索的命令执行器。

因此,您可能可以执行以下操作:

processEngineConfiguration.getCommandExecutorSchemaOperations().execute(new SchemaOperationsProcessEngineBuild())

SchemaOperationsProcessEngineBuild 应该从 org.comunda.bpm.engine.impl 导入

显然,正如您所说,您可以简单地调用 protected 方法,但上面的内容让您摆脱了 protected 方法的问题。

干杯,
格雷格

关于grails - 如何触发camunda中的表更改(使用grails)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30958109/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com