Можно ли обновить экземпляр запущенного процесса с помощью Fluent API в камунде? - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь внести некоторые изменения во время выполнения процесса с помощью Fluent API. Можно ли обновить работающий экземпляр?

Ex: Если я хочу добавить новое событие между существующими событиями (пользовательская задача, служебная задача, ...) и запустить новое добавленное событие. Есть ли способ добиться этого?

1 Ответ

0 голосов
/ 05 ноября 2018

Вы можете сделать это следующим образом:

  1. Создайте новую версию процесса и разверните ее.
  2. Перенос экземпляра процесса на эту версию.

Пример минимального кода для шага 2:

RuntimeService runtimeService = ..;
ProcessInstance processInstance = ..;

ProcessDefinition oldDefinition = ..;
ProcessDefinition newDefinition = ..;

MigrationPlan migrationPlan = runtimeService
  .createMigrationPlan(oldDefinition.getId(), newDefinition.getId())
  .mapEqualActivities()
  .build();

runtimeSerivce.newMigration(migrationPlan)
  .processInstanceIds(processInstance.getId())
  .execute();

Дальнейшее чтение:

...