Компонента «Роли жизненного цикла и воркфлоу» расширяет стандартную модель ролей жизненного цикла системы и позволяет создавать дополнительные (кастомные) роли, которые можно использовать в различных функциях платформы.
Компонента доступна в области Настройка — https://app.timetta-test.com/settings/lifecycle-roles.
Примечание
Функция находится в состоянии Preview. За консультациями обращайтесь в службу поддержки.
Созданные роли могут использоваться в следующих областях:
Роль по дополнительному полю. Можно добавить в сущность (например, задачу) дополнительное поле типа Пользователь с именем «Заказчик» и на его основе создать роль. Она будет автоматически определять исполнителя, связанного с этим полем.
Роль по связанным данным. Для проекта можно создать роль «Аналитики команды». Она будет автоматически включать всех пользователей, относящихся к роли Аналитик в составе команды проекта. Это позволяет динамически формировать состав участников на основании связанных сущностей.
Для реализации пользовательской роли используется интерфейс ILifecycleRoleResolver<T>, где T — тип сущности, для которой определяется роль.
Ниже приведён пример обработчика роли для проекта:
/// <summary>
/// Определяет участников роли для указанного проекта.
/// </summary>
/// <param name="context">Контекст жизненного цикла.</param>
/// <param name="entity">Сущность проекта.</param>
/// <returns>Список идентификаторов пользователей, входящих в роль.</returns>
public class ProjectLifecycleRoleResolver : ILifecycleRoleResolver<Project>
{
public async Task<List<Guid>> ResolveRole(LifecycleRoleContext context, Project entity)
{
return [entity.UserValue1Id ?? Guid.Empty];
}
}
В приведённом примере обработчик возвращает пользователя, указанного в дополнительном поле проекта UserValue1Id. Аналогичным образом можно реализовывать более сложную логику — например, отбор пользователей по связям, ролям команды или организационной структуре.
Перейти на русскую версию?