Пользовательские задания
Пользовательские задания

Пользовательские задания

Функциональность

Наименование сервиса в среде оркестрации микросервисов: dqhumantask

Пример ссылки на Swagger: http://dqhumantask.<полное имя неймспейса>/dqhumantask/swagger-ui/#/

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

Модуль пользовательских заданий обеспечивает выполнение следующих функций:

  1. Просмотр, создание и редактирование шаблонов пользовательских заданий.
  2. Просмотр списка пользовательских заданий.
  3. Управление фильтрами в списке пользовательских заданий.
  4. Быстрая обработка пользовательского задания из интерфейса списка пользовательских заданий.
  5. Выделение наиболее важных заданий в списке.
  6. Просмотр протокола пользовательского задания.
  7. Переназначение задания на другого исполнителя.
  8. Отмена задания по техническим или иным причинам.
  9. Обработка пользовательского задания.
  10. Выбор алгоритма распределения заданий.
  11. Назначение ответственных лиц кому доступно задание для просмотра.
  12. Делегирование и эскалация пользовательских заданий.

Для работы с модулем «Пользовательские задания» необходимо зайти на платформу Digital Q.BPM и пройти авторизацию.

В боковом меню для пользователя доступны пункты "Шаблоны задания", "Список заданий" и "Делегирование заданий".

Настройка кубика

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

Чтобы настроить кубик достаточно выбрать шаблон пользовательского задания в модальном окне из выпадающего списка.

empty

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

empty

  • Для указания конкретного исполнителя во входящих параметрах следует добавить параметр: createdBy - указать userAccountId пользователя.
  • Для передачи действий на обработку задания используется параметр: actions - Карта со значениями **наименование действия : системное наименование действия**.
  • Для передачи комментария в задание используется параметр: comment - передать текст комментария.

Определение ответственных по заданию динамически из процесса

  1. актуализировать версию Digital Q.BPM Player
  2. настроить авторизацию
  3. в шаблоне пользовательского задания включить параметр "Определять динамически"
  4. в процессе на кубике с типом "Задача, выполняемая пользователем" передать список объектов responsible. См. пример ниже
def responsible = [
    ['subjectType': 'ROLE', 'subjectId': roleId, 'subjectName': 'Роль', 'subject': 'roleSysName', 'isPerform': true],
    ['subjectType': 'USER', 'subjectId': userAccountId, 'subjectName': 'Пользователь', 'subject': 'userLogin', 'isPerform': true],
    ['subjectType': 'EMPLOYEE', 'subjectId': employeeId, 'subjectName': 'Сотрудник', 'subject': 'fullName', 'isPerform': true],
    ['subjectType': 'PRODUCTION_ROLE', 'subjectId': roleId, 'subjectName': 'Производственная роль', 'subject': 'roleSysName', 'isPerform': true],
    ['subjectType': 'USER_GROUP', 'subjectId': groupId, 'subjectName':  'Группа пользователей', 'subject': 'sysName', 'isPerform': true]
]
⚠️

Если при динамическом определении в шаблоне используется алгоритм распределения заданий, убедитесь, что у subjectType, на который будет определена задача, есть все необходимые связи, которые участвуют в алгоритме.
Например: в алгоритме указана связь сотрудника с департаментом, но у самого сотрудника данная связь в системе не сделана. Таким образом при назначении на 'subjectType': 'USER' сотрудник не увидит задачу.

Приоритет заданий

Заданиям можно выставить приоритет. Приоритет используется для фильтрации в списке заданий. Для настройки приоритета в бизнес-процессе выбрать кубик с типом User Task (Задача, выполняемая пользователем). В свойствах кубика на вкладке «Общее» в поле «Приоритет» указать числовое значение:

  • от 0 до 50 – низкий приоритет
  • 51-99 – средний приоритет
  • 100-150 – высокий приоритет
💡

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

Список пользовательских заданий

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

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

empty

Протокол пользовательского задания

Форма отображает историю взаимодействия с заданием. В бизнес-процессе может быть реализована различная логика в виде ветвлений, основанная на действиях обработки задания. Таким образом задание может быть отправлено на "повторный" круг. Например, уточнить детали или повторить вычисление операции.

empty

Обработка задания

Интерфейс обработки предоставляет развернутую информацию о пользовательском задании. Интерфейс в себя включает:

  • левая боковая панель - сводная информация о задании;
  • центральная часть интерфейса - кастомный спроектированный виджет для обработки различных типов заданий;
  • кнопки обработки пользовательского задания:
    • Отмена - закрывает форму обработки задания;
    • Выпадающий список доступных действий для обработки задания.

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

empty

При обработке пользовательского задания с типом "Делегирование" родительское задание будет автоматически переведена в статус "Завершено" с таким же действием-обработкой как у задания-делегирования. При обработке пользовательского задания с типом "Эскалация" родительское задание не будет автоматически завершена. Родительское задание необходимо будет обработать.

Фильтрация списка заданий по исполнителю

Фильтрация пользовательских заданий по исполнителю происходит по значениям в поле 'assigneeId'. Фильтровать исполнителей можно по следующим параметрам:

  • ФИО исполнителя
  • логину
  • участнику

Для сопоставления описанных параметров и идентификатора исполнителя используются следующие сервисы:

  1. Для фильтрации по участнику исполнителя используются данные из PBC "Реестр участников".
⚠️

В этом случае у участника должна быть синхронизация с PBC "Сотрудники" - должна быть соответствующая запись участника в сотрудниках. Это можно определить по наличию значения в поле 'participantExternalId' в объекте участника (идентификатор записи соответствующего сотрудника в PBC "Сотрудники").

  1. Для фильтрации по логину исполнителя используются данные из PBC "Управление пользователями" (учетная запись на стенде).
  2. Для фильтрации по ФИО исполнителя источник данных фильтрации зависит от наличия Keycloak на стенде:
  • Если на стенде используется Keycloak, то для фильтрации по ФИО исполнителя используются данные из PBC "Сотрудники".
  • Если на стенде Keycloak отсутствует, то для фильтрации по ФИО исполнителя используются данные из PBC "Управление пользователями" (ФИО пользователя на стенде).

Назначение пользовательского задания на участника из Реестра участников

При необходимости назначить пользовательское задание на участника из PBC «Реестр участников» необходимо из объекта участника взять значение из поля participantExternalId и подставить его в assigneeId. В поле participantExternalId в объекте участника указывается идентификатор соответствующего сотрудника из PBC «Сотрудники».

Если у участника отсутствует этот идентификатор, то назначить пользовательское задание на него не получится. В этом случае необходимо обратиться к команде PBC «Реестр участников» с проблемой синхронизации данных между этими PBC.

Можно указывать исполнителя в поле createdBy, если нет алгоритма назначения. В этом случае необходимо выключить настройку «исключить обработку инициатором» на шаблоне (excludeTaskInitiator = false).