Мы использовали версию camunda 7.4 в большинстве наших проектов вместе с camunda-bpm-spring-boot-starter 1.1.0.
У нас есть проект, в котором в потоке camunda мы пытаемся опубликовать сообщение для брокера сообщений, которое внутренне используется другой системой, и повторно публикуем новое сообщение для того же брокера сообщений. Затем мы запускаем receiveTask, чтобы получить это сообщение и продолжить обработку. Для прослушивания входящего сообщения мы используем org.springframework.amqp.core.MessageListener и определяем взаимосвязь сообщений для receiveTask в методе onMessage (). Но при этом мы получаем ошибку ниже
org.camunda.bpm.engine.MismatchingMessageCorrelationException: не удается сопоставить сообщение ReceiveAmsharedResponse: определение процесса или выполнение не соответствует параметрам
Мы пытаемся понять, в чем проблема? Это в версии camunda, которую мы используем, или проблема связана с использованием receiveTask. Мы испробовали все подходы, определенные в https://docs.camunda.org/manual/7.4/reference/bpmn20/tasks/receive-task/, но не повезло.
Для метода createMessageCorrelation мы получаем ошибку выше. А для других методов мы получаем NPE, поскольку объекты EventSubscription / Execution имеют значение NULL.
Пример использования receiveTask потока Camunda приведен ниже:
<bpmn2:receiveTask id="ReceiveTask" name="Receive Task" messageRef="Message_06nl07f">
<bpmn2:incoming>SequenceFlow_xyz</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_190m9nx</bpmn2:outgoing>
</bpmn2:receiveTask>
......
......
<bpmn2:message id="Message_06nl07f" name="Message" />
И пример кода отношения сообщения:
class XYZ implements MessageListener {
onMessage() {
runtimeService.createMessageCorrelation("Message")
.processInstanceBusinessKey(resourceId)
.setVariable(ACTIVITY_RESULT, activityResult)
.correlate();
}
Любая помощь будет оценена?
Спасибо, Вишванатх