Формулировка проблемы: необходима возможность отложенного запуска маршрутов по документу реестра.
Решение: в системе вводится новая сущность — таймер, который в указанные дату и время должен запустить маршрут по указанному шаблону, поэтому обязательным для реализации данной задачи является реализация задачи 2.49.BPM1. Таймер оформляется в виде процесса действия.
Маршрут, который будет запущен таймером, получается из выбранного в настройках процесса действия шаблона маршрута по его состоянию на момент запуска таймера. Он запускается по документу того реестра, в котором находится соответствующий процесс действия. Запуск маршрута должен быть осуществлён либо в указанную в компоненте соответствующего реестра дату, либо относительно рассчитанную от этой даты. Время запуска либо также берется либо из компонента, либо указывается вручную.
Исходя из вышеописанного, необходимо реализовать новый процесс действия — «Таймер». Он может использоваться только в «Действиях» маршрутов реестров.
Процесс имеет 2 настройки:
название — текстовое поле, которое содержит то, что будет отображаться в ходе исполнения процесса (аналогично названию работы).
параметры процесса — настройка параметров процесса доступна в отдельном диалоге, который доступен по нажатию кнопки «Параметры».
Параметры процесса «Таймер»:
«Шаблон маршрута» — поле для выбора шаблона маршрута. Выбор
происходит по нажатию на кнопку ...
:
открывается диалоговое окно со списком всех активных шаблонов
маршрутов.
Лейбл «Дата запуска».
«Компонент» — текстовое поле ввода id
компонента формы «Дата/время».
Переключатель «Относительно» и справа от него настройки:
combobox из значений За
и
Через
(по умолчанию За
) и
поле для ввода количества календарных дней.
Примечание: указанные настройки доступны на изменение только для включенного переключателя «Относительно».
Лейбл «Время запуска».
Переключатель из двух значений:
«Из компонента» — текстовое поле ввода id
компонента формы «Дата/время» (по умолчанию, в данное поле
дублируется введенное выше значение).
«Указать» — компонент для ввода времени вручную.
Дата запуска. Можно задать абсолютную дату — дату из указанного компонента. Для этого переключатель «Относительно» должен быть выключен. Можно задать дату относительно даты из указанного компонента. Для этого должен быть включен переключатель «Относительно», настроена относительная дата (например, «за 30 дней»).
Время запуска.* Можно задать время из указанного компонента, для этого выбирается первый вариант из переключателя. Можно задать время вручную — выбирается второй вариант из переключателя.
Настроенный таймер отображается в Ходе исполнения документа с
названием «Запущен таймер название_таймера
на
дата-запуска-маршрута-по-таймеру
. В столбце
«Начало» у таймера указано время отработки процесса таймера (но не
маршрута по таймеру):
Маршрут, запущенный в момент срабатывания таймера, в Ходе исполнения отображается в отдельной ветке:
Запущенный таймер можно аннулировать. Для этого в окне изменения маршрута документа добавляется кнопка «Аннулировать таймер», по нажатию на который выходит диалоговое окно для обязательного ввода комментария-причины. После подтверждения действия таймер удаляется, соответствующая запись добавляется в Ход исполнения.
Кроме того, необходимо реализовать уведомления пользователю, запустившему маршрут, одним из этапов которого является таймер:
уведомление об успешном запуске: «Запущен маршрут
route_template_name
по таймеру
timer_name
.»
уведомление о неуспешном запуске: «Ошибка запуска маршрута
route_template_name
по таймеру
timer_name
:
причина_ошибки
.»
уведомление об аннулировании таймера: «Таймер
timer_name
был аннулирован пользователем
user_name
.»