BPMN-шлюз на основе событий с условным потоком
Я пытаюсь смоделировать основанный на событиях шлюз, который ожидает несколько сообщений и, возможно, таймер. Перед использованием этого в реальной модели я попробовал это в модульном тесте, и кажется, что в двигателе камунды условие полностью игнорируется. Теперь мне интересно, поддерживается ли это bpmn, если нет, то есть ли простой альтернативный способ смоделировать это.
Код для модульного тестирования, основанный на проекте https://github.com/camunda/camunda-engine-unittest, выглядит следующим образом:
Map<String, Object> variables = singletonMap("isTimerActive", (Object) false);
ProcessInstance pi = runtimeService.startProcessInstanceByKey("testProcess", variables);
assertFalse("Process instance should not be ended", pi.isEnded());
String id = pi.getProcessInstanceId();
Job timer = managementService.createJobQuery().processInstanceId(id).timers().active().singleResult();
assertNull(timer);
1 ответ
Решение
Это не разрешено
Исходящие потоки последовательностей шлюза событий НЕ ДОЛЖНЫ иметь выражение условия
Спецификация BPMN 2.0, раздел 10.5.6, стр. 297
редактировать: источник: http://www.omg.org/spec/BPMN/2.0/PDF