У меня вопрос о методе Camunda API RuntimeService#messageEventReceived(java.lang.String, java.lang.String, java.util.Map<java.lang.String,java.lang.Object>)
. Мы используем этот метод для запуска события пограничного сообщения без прерывания (в задаче приема, которая ожидает другого сообщения), нравится это. В качестве третьего параметра в вызове метода мы передаем некоторые переменные процесса.
Как и ожидалось, это оставляет задачу получения активной и запускает новое выполнение, оставляя граничное событие. Я ожидал, что переменные процесса, переданные третьему аргументу RuntimeService#messageEventReceived
, теперь будут сохранены во вновь созданном исполнении, но, похоже, они сохраняются при выполнении задачи приема. Для меня это не имеет особого смысла, потому что это не результат выполнения сообщения.
Мы можем обойти эту проблему, определив, какое выполнение является новым после выполнения RuntimeService#messageEventReceived
, и вручную добавив туда переменные процесса. Но это не выглядит изящным - знает ли кто-нибудь лучшее решение? Или я что-то недопонимаю?