Использование задачи отправки и получения в камунде BPMN
Я использую задачу отправки, к которой прикреплен следующий класс Javadelegate.
public class SendTaskDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
execution.getProcessEngineServices()
.getRuntimeService()
.createMessageCorrelation("someMessage")
.processInstanceBusinessKey("someBusinessKey")
.correlate();
}
}
Но я получаю эту ошибку::
Произошла ошибка при отправке формы задачи: не удается отправить форму задачи c0e85bad-719f-11e5-94aa-d897baecf24a: невозможно сопоставить сообщение someMessage: определение или выполнение процесса не соответствует параметрам
Как я могу отладить это?
1 ответ
Сообщение об ошибке говорит о том, что ваш код JavaDelegate просто выполняется правильно. Механизм процессов пытается найти работающий экземпляр процесса с 'someBusinessKey' в качестве бизнес-ключа и в настоящее время ожидает сообщения 'someMessage', но не находит такой экземпляр. Ваш код действует так, как если бы был такой экземпляр, и вы пытаетесь найти его и сообщить о сообщении. См. Раздел документации о методах корреляции - в принципе, механизм используется для "направления" сообщения к нужному экземпляру, нацеливающему его.
Как примечание: ваш JavaDelegate, кажется, вызывается в той же транзакции, с которой вы также пытаетесь выполнить задачу. "Границы транзакций" в вашем процессе могут управляться с помощью атрибутов "async", описанных в разделе "Документы" о транзакциях в процессах.