Camunda Engine - 在新部署上执行自定义代码

Fab*_*755 1 camunda

我正在 JBoss 服务器上使用 camunda 引擎。如果部署了新的(版本)BPMN 图,我会搜索一种执行自定义代码的方法。

我想要的是:

  1. 添加/上传新流程
  2. 自动运行自定义代码
  3. 通过引擎部署新​​流程

是否存在一个侦听器或类似的东西,如果检测到新的部署,将执行该侦听器?

感谢帮助!

Gre*_*ley 6

这里需要使用的是“BPMN Parse Listener”。

https://github.com/camunda/camunda-bpm-platform/blob/master/engine/src/main/java/org/camunda/bpm/engine/impl/bpmn/parser/BpmnParseListener.java

Camunda 在这里提供了如何设置解析监听器的一个很好的示例:

https://github.com/camunda/camunda-bpm-examples/tree/master/process-engine-plugin/bpmn-parse-listener

Parse Handlers 的最初目的是自动将任务或执行侦听器添加到流程模型中。你为什么这么做?一个例子是,如果您自动希望所有用户在分配任务时收到电子邮件通知(一个非常常见的用例)。问题是,将其建模到流程中确实会弄乱流程图。所以...我们使用 ParseListener 自动注入行为。

现在,这对您的用例有何帮助?

答案很简单。它使您可以访问模型部署操作。每次部署新模型时,BPMN 都会被“解析”,并且任何已注册的 ParseListener 都会被触发。

在您的情况下,您将绑定到“parseProcess()”方法并执行您的自定义代码。

我建议您使用服务调用并将自定义逻辑外部化,以便抽象逻辑的调用和逻辑的执行,但这取决于您。

虽然这是一个不常见的用例,但这实际上是 BpmnParseListener 的一个非常好的用例。

希望这可以帮助。格雷格