Компонент «Роли жизненного цикла и воркфлоу» расширяет стандартную модель ролей жизненного цикла платформы. Он позволяет создавать дополнительные (кастомные) роли, которые можно использовать в различных функциях системы.
Компонент доступен в разделе Настройка — https://app.timetta.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.
Аналогичным образом можно реализовать более сложную логику, например:
Перейти на русскую версию?