如何在不在 camunda 中创建多个实例的情况下使用事件名称将数据从 2 个进程池结果传输到第 3 个进程池?

How can i transfer data from 2 process pools result to 3rd process pool using event name without creating multiple instances in camunda?

我在 camunda 中有 3 个进程池,我通过使用 Expression 实现和使用 event-name(A) 实现了将变量从第一个实例发送到第二个实例我正在尝试将第一个进程池变量发送到第二个、第三个进程池,并将第二个进程池结果发送到第三个进程池,基本上第三个进程池将接收来自第一个和第二个进程池的输入,但不会发送值。我怎样才能通过只创建一个实例来实现这一目标。我使用下面的代码发送数据并在第二个进程池中成功接收。

${execution.getProcessEngineServices().getRuntimeService().createMessageCorrelation("A").setVariable("A","A").correlateWithResult()}

好的,我还是不明白为什么你可以传递变量。

这是我想出的解决方案:

一些备注:

  • 我是用你的表情发消息的。我不确定是否可以在一次事件中发送 2 条消息。
  • 我使用了从 B 到 C 的信号,因为消息不起作用(我不确定为什么)。
  • 无论如何,您需要关联信号或消息以使其与正确的进程匹配(使用信号您可以定义动态名称)。

这里证明它有效:

参见要点:https://gist.github.com/pme123/22e7ab46f12218b7e399913af3115cf6