Правильное обновление модели процесса

Добрый день. Не подскажете, какие есть общие правила для корректного обновление модели процесса без ошибок?
На данный момент есть два развернутых процесса, потребовалось небольшое изменение: сделать комментарий по завершению задачи необязательным, при обновлении модели возникает ошибка:

Скрин

Снимок

Каких рекомендаций стоит придерживаться что бы избежать подобного?

1 симпатия

Такая ошибка возникает, когда при изменении модели вы удаляете какой-либо этап, например “Согласование”, а среди уже запущенных процессов имеются экземпляры, находящиеся на данном этапе. Естестенно, миграция процесса в данном случае невозможна. Когда все экземпляры процесса уйдут из удаленного этапа, миграция вновь станет возможной.

2 симпатии

Подскажите, пожалуйста, а что означает “уйдут из удаленного этапа”? Не будет активных задач на этом этапе? В моем случае я обновляю уже пройденный userTask, однако ошибка все еще воспроизводится.

Если ошибка воспроизводится, значит есть ещё задачи на данном этапе. Обновляете userTask вы как? Просто изменяете в базе объект ProcTask или используете метод com.haulmont.bpm.service.ProcessRuntimeService#completeProcTask для завершения задачи? Надо использовать метод.

Под userTask я имею ввиду элемент модели, а не сущность ProcTask. Мне необходимо внести в него изменения и обновить модель. При этом объекты ProcTask, соответствующие данному userTask, уже завершены с использованием метода completeProcTask.

Если такая ошибка возникает, то скорее всего это значит, что задача всё-таки не завершена. В сообщении об ошибке есть id экземпляра процесса - посмотрите внимательно на него, на каком этапе он сейчас находится и есть ли данный этап в новой версии определения процесса.

Еще раз опишу последовательность
Запущен всего один procInstance. Вот его текущие задачи, Как видно, задача 1 завершена, и активна задача 2.
image
В качестве примера, для задачи 1 (которая завершена) я меняю поле documentation
image
После чего разворачиваю определение процесса из обновленной модели и получаю следующее
image
Что еще я мог упустить из виду? Может, существуют еще какие-то условия?