Проблема с обновлением бизнес процесса.

Добрый день.
Возникла следующая проблема:
Существовал бизнес процес, по которому было много документов.
Процесс изменили вместе с изменением внутренней логики, соответственно изменился порядок и количество задач в процессе.
Вопрос:
1. Как можно корректно завершить старые процессы (т.е. сохранить процесс_old) и паралельно запускать новые процессы.
2. Как изменить текущий процесс со старого на новый.

По пункту 1 сделал так:
- создал копию процесса = процесс_new и опубликовал, в таблице SysSchemaInSolution откатился до предыдущей версии процесса.
- Переименовал процесс в процесс_old и опубликовал.
- Переименовал процесс_new в процесс и опубликовал.
- в таблице [SysModuleAction] изменил ссылку действия на новый процесс.
Все заработало.

Но проблема по пункту 2 осталась. как изменить ID процессов запущенных с момента обновления сервиса до изменения его ID

Нравится

3 комментария

Здравтсвуйте, Илья!
При старте процесса он сериализуется в БД, таким образом, при внесении изменений в схему процесса, запущенный процесс будет выполниться по тому сценарию, который был на момент его запуска и корректно подменить эти данные не представляется возможным.

Здравствуйте, Андрей.
Мне нужно изменить ID процесса который выполняется.
т.е. был процесс, а стал процесс_new, и мне нужно чтобы дальнейшее выполнение происходило в процесс_new (внутренне они идентичны).

Илья, можете попробовать поменять [SysSchemaId] и [Name] в таблице [SysProcess], но не уверен, что изменение [SysSchemaId] не приведет к нарушению работы процесса.
Во всяком случае, при изменении [Name] Вы будете видеть, где какой процесс.

Показать все комментарии