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

时间:2016-11-04 16:25:41

标签: camunda

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

我想要的是什么:

  1. 添加/上传新流程
  2. 自动运行自定义代码
  3. 按引擎部署新​​流程
  4. 如果检测到新部署,是否存在将执行的侦听器或类似内容?

    感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

这里需要使用的是" 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都会被解析并且#34;并触发任何已注册的ParseListener。

在你的情况下,你会绑定到" parseProcess()"方法并执行您的自定义代码。

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

虽然这是一个不常见的用例,但对于BpmnParseListeners来说,这实际上是一个非常好的用例。

希望这会有所帮助。 格雷格