Функциональные роли заданий¶
Общие понятия¶
Функциональная роль задания (ФРЗ) - роль, связанная с заданием, например Автор, Исполнитель. С заданием может быть связано сколько угодно участников: несколько Авторов, несколько Исполнителей, а также могут существовать другие Функциональные роли (ФР) с отличающимися возможностями (например, Контролёр).
В задании содержится список связанных с ним ФРЗ в таблице 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
поле, в которое можно записать необходимую для ваших расширений информацию.