Использование задачи отправки и получения в камунде 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", описанных в разделе "Документы" о транзакциях в процессах.

Другие вопросы по тегам