4.1. Реимплементация процессов

В Synergy 4.1 был полностью исключен модуль JBPM, который использовался для управления процессами в документах. Теперь вся реализация процессов полностью включена в ядро платформы.

При этом было изменено поведение так называемых «специальных процессов» - то есть тех, которые выполняются автоматически, без участия пользователя. К специальным процессам относятся:

  • назначение на должность
  • перевод
  • увольнение
  • копирование в личное дело
  • назначение календаря
  • копирование в карточку
  • переназначение работ
  • отправка документа по форме
  • сопоставление в реестр
  • событие реестра
  • результат запроса
  • таймер

Для всех этих типов действий была добавлена возможность запуска группы последовательных этапов в единой транзакции: для этапа со специальным процессом добавлена возможность добавления к нему последовательных подэтапов. Таким образом обеспечивается транзакционная целостность специальных процессов.

4.1.1. Изменения без поддержки обратной совместимости

  1. В Административном приложении удален раздел «Обслуживание системы» - «Процессы». Обновление процессов после обновления системы не требуется.
  2. Удалены методы API, обеспечивающие обновление процессов:
    • rest/api/admin/processes/available
    • rest/api/admin/processes/not_actual
    • rest/api/admin/processes/update
  3. Удалена схема базы данных jbpmdb.

4.1.2. Пример

Рассмотрим синтетический, но достаточно наглядный пример, когда нужно одним приказом об отпуске сотрудника изменить его статус, переназначить его работы на другого сотрудника, скопировать сведения об отпуске в личную карточку сотрудника, а сам приказ - в его личное дело.

Маршрут активации записи реестра приказов может быть таким:

  1. Согласование
  2. Назначение календаря
  3. Копирование в личное дело
  4. Копирование в карточку
  5. Переназначение работ
  6. Регистрация

Сначала добавим этапы «Согласование» и “Назначение календаря”. Текущий вид редактора маршрутов:

../_images/image_1.png

Обратите внимание на выделенную кнопку добавить подэтап «Добавить последовательный»: эта кнопка активна только для специальных процессов и добавляет новый последовательный подэтап, который будет выполнен в единой транзакции с текущим этапом:

../_images/image_3.png

При добавлении нового последовательного подэтапа список доступных типов действий фильтруется: в нем отображаются только специальные процессы.

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

Добавим еще несколько последовательных подэтапов в группу:

../_images/image_6.png

Видно, что последовательные этапы нумеруются внутри своей группы.

Полный маршрут реестра приказов выглядит таким образом:

../_images/image_7.png

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

Примечание

При обновлении Synergy специальные процессы не будут автоматически оформлены в такие группы последовательных подэтапов. Разработчику Synergy нужно будет самостоятельно проверить маршруты, настроенные в приложениях, и при необходимости перенастроить их для обеспечения транзакционной целостности их выполнения.