Задача [BPM8]: Таймеры

Формулировка проблемы: необходима возможность отложенного запуска маршрутов по документу реестра.

Решение: в системе вводится новая сущность — таймер, который в указанные дату и время должен запустить маршрут по указанному шаблону, поэтому обязательным для реализации данной задачи является реализация задачи 2.49.BPM1. Таймер оформляется в виде процесса действия.

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

Исходя из вышеописанного, необходимо реализовать новый процесс действия — «Таймер». Он может использоваться только в «Действиях» маршрутов реестров.

Процесс имеет 2 настройки:

Рисунок 360. Таймер

Таймер

Параметры процесса «Таймер»:

Дата запуска. Можно задать абсолютную дату — дату из указанного компонента. Для этого переключатель «Относительно» должен быть выключен. Можно задать дату относительно даты из указанного компонента. Для этого должен быть включен переключатель «Относительно», настроена относительная дата (например, «за 30 дней»).

Рисунок 361. Настройки таймера

Настройки таймера

Рисунок 362. Шаблоны маршрутов

Шаблоны маршрутов

Настроенный таймер отображается в Ходе исполнения документа с названием «Запущен таймер название_таймера на дата-запуска-маршрута-по-таймеру. В столбце «Начало» у таймера указано время отработки процесса таймера (но не маршрута по таймеру):

Рисунок 363. Ход выполнения с таймером

Ход выполнения с таймером

Маршрут, запущенный в момент срабатывания таймера, в Ходе исполнения отображается в отдельной ветке:

Рисунок 364. Ход выполнения с запущенным маршрутом по таймеру

Ход выполнения с запущенным маршрутом по таймеру

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

Рисунок 365. Аннулирование таймера

Аннулирование таймера

Рисунок 366. Ввод комментария-причины аннулирования

Ввод комментария-причины аннулирования

Кроме того, необходимо реализовать уведомления пользователю, запустившему маршрут, одним из этапов которого является таймер: