如何知道邮件传递到哪个流程实例?

时间:2015-09-07 13:16:17

标签: activiti bpmn camunda

如何将已发送邮件传递给的流程实例的ProcessInstanceId?

我通过REST API发送消息。

2 个答案:

答案 0 :(得分:2)

您可以在邮件中添加一些唯一标识符作为流程变量(请参阅例如Camunda BPM REST API 'message' endpoint)。在真正收到消息后,您的目标流程实例会保留这样的流程变量。

因此,在发送消息之后,您可以作为接收流程实例的第二步查询(参见例如Camunda BPM REST API 'get-instances' endpoint),其中包含具有预期标识符的变量。

答案 1 :(得分:-2)

AFAIK执行此操作的唯一方法是在邮件中包含源执行或进程ID。如果您通过运行时服务API发送消息,那么您的代码应如下所示:

PUT runtime/executions/{executionId}

执行此代码后,接收进程可以检索进程var“senderProcessInstanceId”的内容,以便知道谁是发送者。

如果您使用REST API,则使用

{
    "action":"messageEventReceived",
    "messageName":"myMessage"
    "variables": [ {"name": "senderProcessInstanceId", "value":"xxxxx"}  ]
 }

使用类似的JSON主体:

{{1}}