4.5. Доработка процесса указания ответственного по этапу маршрута должностью¶
Часто возникает необходимость в этапе маршрута реестра указать в качестве ответственного не конкретного сотрудника, а некоторую должность. Ранее в этом случае руководителю указанной должности необходимо было выбрать ответственного по этому этапу через модуль «Ежедневник»:
У такой реализации было несколько проблем:
- руководителю, несмотря на наличие новой заметки в Ежедневнике, не отображался счетчик новых уведомлений (на иконке модуля);
- пока руководитель не выбрал ответственного сотрудника, в ходе выполнения документа либо указывался этап без ответственного, либо вовсе не отображался текущий этап - в зависимости от того, содержится ли текущий этап в шаблоне маршрута или напрямую в маршруте реестра.
Мы изменили это поведение, реализовав новый процесс «Выбор исполнителя» - работа руководителю должности по выбору исполнителя. Эта работа, как и все остальные, отображается в потоке работ руководителя:
Полный алгоритм определения руководителя, который должен выбрать ответственного исполнителя для работы в случае, когда на указанную должность назначено два или более сотрудников:
проверяется наличие у руководителя подразделения, к которому относится должность, заместителей;
- если для подразделения должности есть ровно один заместитель, то работа по выбору ответственного ставится ему;
- если для подразделения должности есть несколько заместителей, то им всем будут созданы параллельные работы по выбору ответственного; как только один из заместителей завершил свою работу, она завершается и у остальных.
если для подразделения должности нет заместителей, то проверяется наличие И.О. руководителя;
- если есть И.О., то ему и ставится работа по выбору ответственного;
если у подразделения должности не найдено ни заместителей, ни И.О., то выполняется поиск руководителя подразделения;
- если руководитель нашелся - ему ставится работа по выбору ответственного.
в случае, когда в подразделении не найдены ни заместители, ни И.О., ни руководитель, то все проверки повторяются на уровень выше, для родительского подразделения.
Альтернативные потоки событий:
- если на указанную должность не назначено ни одного пользователя, маршрут прерывается с комментарием: «Нет ни одного пользователя, назначенного на указанную должность»;
- если на должность назначен ровно один пользователь, то выбор исполнителя не запускается - в качестве исполнителя автоматически указывается этот пользователь, ему и создается работа;
- если для должности нет ни одного руководителя, заместителя или И.О. вплоть до корневого подразделения, маршрут прерывается с комментарием: «Нет ни одного руководителя для указанной должности».
4.5.1. Метод API¶
Для обеспечения интеграции реализован метод API, позволяющий руководителю указать ответственного по этапу работы.
URL метода: rest/api/workflow/work/set_responsibles
Параметры:
workID
-UUID
работыresponsibles
- массив UUID пользователей должности, которым будет назначена работа
4.5.2. Событие создания работы по выбору ответственного¶
При создании работы по выбору ответственного генерируется событие event.workflow.choose.user.create
, параметрами которого
являются код этапа маршрута реестра и UUID
указанной в качестве ответственного должности.
4.5.3. Действия при обновлении¶
При обновлении Synergy с версии hamming
на версию minsky
все запущенные процессы по выбору ответственного будут перенесены
из Ежедневника руководителя в его потоки работ.
4.5.4. Пример¶
В маршруте реестра был добавлен этап «Работа», где в качестве ответственного была выбрана должность “Менеджер по продажам”:
На эту должность назначено несколько сотрудников.
После отправки на активацию записи этого реестра выполняется поиск заместителя, И.О. или руководителя того подразделения, к которому относится эта должность - в нашем случае подразделения «Отдел продаж Астана» - и ему создается работа с формулировкой “Необходимо выбрать пользователя для выполнения работы”:
Для завершения работы нужно нажать на кнопку «Выбрать исполнителя». Откроется диалог выбора пользователей:
Пользователи здесь уже отфильтрованы согласно указанной должности.
Руководитель должен выбрать сотрудника для выполнения этапа маршрута и завершить свою работу, нажав на кнопку «Выбрать».
Доступен выбор нескольких сотрудников: в этом случае для них будут созданы параллельные работы.
Работа по выбору ответственного отображается и в ходе выполнения документа: