4.1. Реимплементация процессов¶
В Synergy 4.1 был полностью исключен модуль JBPM, который использовался для управления процессами в документах. Теперь вся реализация процессов полностью включена в ядро платформы.
При этом было изменено поведение так называемых «специальных процессов» - то есть тех, которые выполняются автоматически, без участия пользователя. К специальным процессам относятся:
- назначение на должность
- перевод
- увольнение
- копирование в личное дело
- назначение календаря
- копирование в карточку
- переназначение работ
- отправка документа по форме
- сопоставление в реестр
- событие реестра
- результат запроса
- таймер
Для всех этих типов действий была добавлена возможность запуска группы последовательных этапов в единой транзакции: для этапа со специальным процессом добавлена возможность добавления к нему последовательных подэтапов. Таким образом обеспечивается транзакционная целостность специальных процессов.
4.1.1. Изменения без поддержки обратной совместимости¶
- В Административном приложении удален раздел «Обслуживание системы» - «Процессы». Обновление процессов после обновления системы не требуется.
- Удалены методы API, обеспечивающие обновление процессов:
rest/api/admin/processes/available
rest/api/admin/processes/not_actual
rest/api/admin/processes/update
- Удалена схема базы данных
jbpmdb
.
4.1.2. Пример¶
Рассмотрим синтетический, но достаточно наглядный пример, когда нужно одним приказом об отпуске сотрудника изменить его статус, переназначить его работы на другого сотрудника, скопировать сведения об отпуске в личную карточку сотрудника, а сам приказ - в его личное дело.
Маршрут активации записи реестра приказов может быть таким:
- Согласование
- Назначение календаря
- Копирование в личное дело
- Копирование в карточку
- Переназначение работ
- Регистрация
Сначала добавим этапы «Согласование» и “Назначение календаря”. Текущий вид редактора маршрутов:
Обратите внимание на выделенную кнопку «Добавить последовательный»: эта кнопка активна только для специальных процессов и добавляет новый последовательный подэтап, который будет выполнен в единой транзакции с текущим этапом:
При добавлении нового последовательного подэтапа список доступных типов действий фильтруется: в нем отображаются только специальные процессы.
Последовательные подэтапы визуально выделяются в маршруте пунктирной стрелкой слева. Группа подэтапов может быть целиком перемещена вверх или вниз в маршруте с помощью стрелок или , перемещать подэтапы внутри группы можно обычными стрелками.
Добавим еще несколько последовательных подэтапов в группу:
Видно, что последовательные этапы нумеруются внутри своей группы.
Полный маршрут реестра приказов выглядит таким образом:
При такой организации маршрута в случае возникновения ошибки при выполнении одного из последовательных подэтапов будут полностью отменены изменения, внесенные каждым из предыдущих подэтапов этой транзакции.
Примечание
При обновлении Synergy специальные процессы не будут автоматически оформлены в такие группы последовательных подэтапов. Разработчику Synergy нужно будет самостоятельно проверить маршруты, настроенные в приложениях, и при необходимости перенастроить их для обеспечения транзакционной целостности их выполнения.