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

Camunda Engine - Execute custom code on new deployment

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

我想要的:

  1. Add/Upload新进程
  2. 运行自动自定义代码
  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 都是 "parsed" 并且任何已注册的 ParseListeners 都会被触发。

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

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

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

希望这对您有所帮助。 格雷格