Перейти к содержанию

Функциональные роли заданий

Общие понятия

Функциональная роль задания (ФРЗ) - роль, связанная с заданием, например Автор, Исполнитель. С заданием может быть связано сколько угодно участников: несколько Авторов, несколько Исполнителей, а также могут существовать другие Функциональные роли (ФР) с отличающимися возможностями (например, Контролёр).

В задании содержится список связанных с ним ФРЗ в таблице TaskAssignedRoles. В истории заданий допускается использование поля Settings таблицы TaskHistory для хранения служебных данных (например, некоторые данные из TaskAssignedRoles завершённого задания).

Функциональная роль - это отдельный справочник, который описывает возможности сотрудника, если он входит в состав ФРЗ и имеет конкретную ФР.

Справочник Функциональных ролей

Найти справочник функциональных ролей можно из рабочего места “Администратор” → Служебные → Функциональные роли.

Представление функциональных ролей

По умолчанию для поддержки исторической функциональности в системе присутствуют ФР “Автор” и “Исполнитель”. Так же, для расширения функциональности типового процесса отправки задач, существует ФР “Отправитель”.

Данные карточки имеют следующие настройки:

  • Название - название Функциональной роль
  • Уникальное имя - уникальное имя Функциональной роль
  • Библиотека схемы - библиотека схемы, где будет храниться запись об этой ФР в базе данных.
  • Идентификатор - идентификатор Функциональной роли.
  • Не скрывать от заместителей в назначенной роли задания - если этот флаг не установлен, то пользователи, входящие в роль, на которую ссылается ФРЗ, как заместители - не видят такое задание. Если флаг установлен - видят.
  • Требует взятия “В работу” - означает, что задание нужно брать в работу для доступа к вариантам завершения и к откладыванию задания. Если этот флаг установлен, то флаг “Скрывать задание по умолчанию” очищается и не может быть установлен.
  • Отображать в задании по умолчанию - влияет на отображение для пользователей в форме задания записей с данной ФР. Если установлено, система будет по умолчанию устанавливать флаг Отображать в задании для всех записей с этой функциональной ролью. Если только при добавлении записи с этой функциональной ролью флаг Отображать в задании не был определён принудительно (например, через раcширение).
  • Скрывать задание по умолчанию - если флаг установлен, то система загружает только основную информацию о задании, и само задание не отображается в карточке при её открытии. Для доступа к нему нужно нажать переключатель “Показать скрытые задания” под списком заданий.
  • Разрешает изменять дайджест и плановую дату задания - если установлен этот флаг, то обладатель такой ФР в списке ФРЗ сможет вносить соответствующие изменения в задание.
  • Разрешает изменять список ролей своего задания - если установлен этот флаг, то обладатель такой ФР в списке ФРЗ сможет менять список ФРЗ данного задания. Аналогичное право, а так же право на редактирование списка ФРЗ в любом задании, можно задать через типовые правила доступа, см. Редактирование списка ФРЗ.

Настройки Библиотека схемы и Идентификатор продиктованы тем, что данный справочник не является карточкой, а показывает записи из таблицы FunctionRoles в схеме, которая является Enum секцией.

Note

Если были внесены изменения в состав функциональных ролей, или в настройки отдельных функциональных ролей, то выгруженная через SchemeEditor схема будет иметь изменения.

Important

Система не подразумевает создния функциональных ролей “на лету”, т.к. список функциональных ролей кэшируется в метаданных. Все созданные функциональные роли будут доступны для выбора в интерфейсе и начнут корректно отображаться только после перезапуска клиента, во время которого произойдёт обновление кэша метаданных.

Видимость заданий в карточке

Для каждого варианта завершения задания в типе задания указывается список ФР, которым доступен данный вариант завершения.

Вариант завершения задания

Пользователь видит те задания, для которых он входит в состав ФРЗ и имеет доступные варианты завершения, согласно указанным ФР в вариантах завершения типа этого задания. Доступные варианты завершения определяются соответственно.

Если пользователь входит в состав ФРЗ и имеет доступные варианты завершения, но задание уже взято в работу другим сотрудником, то такое задание пользовтель увидит, как скрытое по умолчанию с доступным вариантом завершения “Перевести на себя”.

Перевести на себя

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

Показывать задания, взятые в работу не мной

Редактирование списка ФРЗ

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

Задание со списком ФРЗ

Так же редактировать список ФРЗ возможно через меню системы. В нём необходимо использовать пункт “Изменить роли заданий”:

Выбор изменения ФРЗ в левой боковой панели карточки

При её нажатии открывается диалог с выбором задания в виде представления:

Диалог с выбором задания в виде представления

После выбора задания открывается диалог с редактированием ФРЗ:

Диалог редактирования ФРЗ

В этом окне доступен просмотр списка ФРЗ задания, а также есть возможность добавить новые, удалить старые и перевесить признак “Основной” на другого сотрудника. Так же здесь можно изменить признак “Отображать в задании” для конкретной записи ФРЗ. По умолчанию система проставляет этот признак для записей с ФР “Автор”.

Отображение ФРЗ с ФР "Автор"

Если установить признак “Отображать в задании” нажатием на соответствующую кнопку (при выделенной строке с ФРЗ) или при помощи пункта контекстного меню у конкретной ФРЗ, то данная ФРЗ будет отображаться в задании.

Отображение ФРЗ с ФР "Исполнитель"

Для внесения изменений в список ФРЗ необходимо быть в списке ФРЗ этого задания с ФР, у которой установлен флаг “Разрешает изменять список ролей своего задания”, либо отмечено одно из разрешений, указанное в карточке правила доступа:

  • Редактировать ФРЗ своих заданий - пользователь может редактировать ФРЗ только тех заданий, к которым он имеет непосредственное отношение (входит с список ролей ФРЗ).

  • Редактировать ФРЗ всех заданий - пользователь может редактировать ФРЗ всех заданий карточки вне зависимости от того, включён он в задание или нет.

Права для редактирования списка ФРЗ

Редактирование ФРЗ через API

Для удобного добавления участников в TaskAssignedRoles в CardTask добавлены методы расширения AddRole, AddPerformer и AddAuthor.

Эти методы призваны упростить добавление участников задания. Методы AddPerformer и AddAuthor добавляют участников с функциональными ролями “Исполнитель” и “Автор” соответственно. Они призваны использоваться для поддержки функциональности, когда у задания всё ещё два типа участника (исполнитель и автор).

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

Роли в заданиях и истории заданий

Для определения признака авторства, который необходим в интерфейсе задания и некторых отчётах (например, Завершённые задания → Завершённые мной) в Tasks и TaskHistory имеется комплексная колонка Author. Если при сохранении задания поле CardTask.AuthorID будет пустым, то будет взят первый по GUID сотрудник из всех, кто входит в задание с ФР “Автор”. Если таковых записей не найдено, то текущая сессия будет указана в качестве значения для поля Author. Поле Author в TaskHistory - заполняется переносом аналогичного значения из Tasks, в случае автоматического создания записи, либо тем значением, что было установлено в CardTaskHistoryItem.AuthorID и CardTaskHistoryItem.AuthorName.

Для определения списка ролей, к которым относился сотрудник, завершивший задание, в TaskHistory есть поле CompletedByRole в составе комплексной колонки CompletedBy. Так же, в таблице TaskHistory есть колонка AssignedOnRole, которая используется для определения списка “Назначено на роль”.

Если, для каких-то целей необходимо сохранять список ФРЗ задания или его часть (например для визуализатора процессов), можно воспользоваться полем Settings в TaskHistory. Это JSON поле, в которое можно записать необходимую для ваших расширений информацию.

Back to top