4.5. Доработка процесса указания ответственного по этапу маршрута должностью

Часто возникает необходимость в этапе маршрута реестра указать в качестве ответственного не конкретного сотрудника, а некоторую должность. Ранее в этом случае руководителю указанной должности необходимо было выбрать ответственного по этому этапу через модуль «Ежедневник»:

../_images/image_9.png

У такой реализации было несколько проблем:

  1. руководителю, несмотря на наличие новой заметки в Ежедневнике, не отображался счетчик новых уведомлений (на иконке модуля);
  2. пока руководитель не выбрал ответственного сотрудника, в ходе выполнения документа либо указывался этап без ответственного, либо вовсе не отображался текущий этап - в зависимости от того, содержится ли текущий этап в шаблоне маршрута или напрямую в маршруте реестра.

Мы изменили это поведение, реализовав новый процесс «Выбор исполнителя» - работа руководителю должности по выбору исполнителя. Эта работа, как и все остальные, отображается в потоке работ руководителя:

../_images/image_10.png

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

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

    • если для подразделения должности есть ровно один заместитель, то работа по выбору ответственного ставится ему;
    • если для подразделения должности есть несколько заместителей, то им всем будут созданы параллельные работы по выбору ответственного; как только один из заместителей завершил свою работу, она завершается и у остальных.
  • если для подразделения должности нет заместителей, то проверяется наличие И.О. руководителя;

    • если есть И.О., то ему и ставится работа по выбору ответственного;
  • если у подразделения должности не найдено ни заместителей, ни И.О., то выполняется поиск руководителя подразделения;

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

Альтернативные потоки событий:

  • если на указанную должность не назначено ни одного пользователя, маршрут прерывается с комментарием: «Нет ни одного пользователя, назначенного на указанную должность»;
  • если на должность назначен ровно один пользователь, то выбор исполнителя не запускается - в качестве исполнителя автоматически указывается этот пользователь, ему и создается работа;
  • если для должности нет ни одного руководителя, заместителя или И.О. вплоть до корневого подразделения, маршрут прерывается с комментарием: «Нет ни одного руководителя для указанной должности».

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. Пример

В маршруте реестра был добавлен этап «Работа», где в качестве ответственного была выбрана должность “Менеджер по продажам”:

../_images/image_11.png
../_images/image_12.png

На эту должность назначено несколько сотрудников.

После отправки на активацию записи этого реестра выполняется поиск заместителя, И.О. или руководителя того подразделения, к которому относится эта должность - в нашем случае подразделения «Отдел продаж Астана» - и ему создается работа с формулировкой “Необходимо выбрать пользователя для выполнения работы”:

../_images/image_13.png

Для завершения работы нужно нажать на кнопку «Выбрать исполнителя». Откроется диалог выбора пользователей:

../_images/image_14.png

Пользователи здесь уже отфильтрованы согласно указанной должности.

Руководитель должен выбрать сотрудника для выполнения этапа маршрута и завершить свою работу, нажав на кнопку «Выбрать».

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

Работа по выбору ответственного отображается и в ходе выполнения документа:

../_images/image_15.png