Есть ли событие завершения в API интерфейса Fluent Builder? - PullRequest
1 голос
/ 30 марта 2020

Я моделирую процесс в коде, используя API Fluent Builder (https://docs.camunda.org/manual/7.12/user-guide/model-api/bpmn-model-api/fluent-builder-api/), и я хочу вставить завершающее событие (а не событие завершения). Я не могу найти его (в коде или в документации), он существует? Как мне его смоделировать?

1 Ответ

2 голосов
/ 30 марта 2020

К сожалению, это не поддерживается API-интерфейсом свободно используемой модели. Но этого можно добиться, изменив eventDefinition:

// plain simple generated bpmn
BpmnModelInstance bpmn = Bpmn.createExecutableProcess()
  .startEvent()
  .serviceTask()
  .endEvent().done();

// find the end event instance in the model (might require filtering by id if more than one)
EndEvent endEvent = bpmn.getModelElementsByType(EndEvent.class).stream().findFirst().get();

// create an EventDefinition for terminate
TerminateEventDefinition terminateEventDefinition = bpmn.newInstance(TerminateEventDefinition.class);

// add that event definition to the endEvent instance 
endEvent.getEventDefinitions().add(terminateEventDefinition);
...