Реализуйте процесс JBPM с двумя начальными сообщениями.
Я пытаюсь реализовать бизнес-процесс (частично показан на рисунке), используя JBPM и Business Central Workspace. Бизнес-процесс построен без ошибок, но потом, когда я его разворачиваю, поведение не то, что ожидалось.
В частности, поведение, которое я хотел бы получить, следующее:
- Процесс начинается, когда получено сообщение температуры ИЛИ co2 (невозможно узнать, является ли первое полученное событие температурой или сообщением co2).
- При получении сообщения о температуре выполняется TaskTemperature.
- При получении сообщения co2 выполняется TaskCO2.
- После того, как будут получены сообщения о температуре и CO2, необходимо выполнить TaskJoined.
Вместо этого, запустив процесс, показанный на рисунке выше, я получаю следующее поведение:
- Процесс начинается, когда получено сообщение температуры ИЛИ co2 (невозможно узнать, является ли первое полученное событие температурой или сообщением co2).
- При получении сообщения о температуре выполняется TaskTemperature.
- При получении сообщения co2 выполняется TaskCO2.
- Процесс «останавливается» в шлюзе, и TaskJoined никогда не выполняется.
Есть ли другой способ получить поведение, которое я хочу?
Я знаю, что если я изменю процесс таким образом
TaskJoined выполняется правильно, но, поскольку в моем случае нет предопределенной последовательности для двух сообщений, это решение не может работать для меня.
1 ответ
По сути, вы запрашиваете две отправные точки сигнала, которые AIFAIK не рекомендуется. в качестве альтернативы я бы предложил начать ваш процесс с любого из событий (создать оболочку поверх ваших данных), а затем просто пропустить состояние ожидания, которое вы уже получили в стартовом событии.
любезно предоставлена диаграмма bpmn: duckflow