Переназначение всех задач с одного пользователя на другого
Иногда возникает необходимость переназначить все задачи с одного пользователя на другого, например при увольнении одного из сотрудников. В этой статье мы рассмотрим пример сценария, который позволяет массово переназначить задачи. Перед выполнением сценария учетную запись уволенного пользователя необходимо разблокировать.
Пример сценария с использованием PublicAPI
Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.15.38 включительно.
Пространство имен:
using EleWise.ELMA.API;
Текст сценария:
var tasks = PublicAPI.Portal.TaskBase.Filter().Executor(context.Polzovatel).Find(); //создаем список задач пользователя foreach (var task in tasks) { task.Executor = context.Polzovatelnew; // закрепляем задачи за новым пользователем }
Пример сценария без использования PublicAPI
Пространства имен:
using EleWise.ELMA.Model.Services; using EleWise.ELMA.Tasks.Models; using EleWise.ELMA.Tasks.Managers;
Текст сценария:
var zdch=InterfaceActivator.Create<TaskBaseFilter>(); //создаем фильтр задач
zdch.Executor=context.Polzovatel; //задаем фильтрацию по пользователю
var tasks=TaskBaseManager.Instance.Find(zdch, null).ToList(); //создаем список задач пользователя
tasks.ForEach(odzdch=>odzdch.Executor=context.Polzovatelnew); //закрепляем задачи за новым пользователем
Этот сценарий достаточно выполнить один раз. Либо в режиме эмуляции сценариев без отката, либо в бизнес-процессе, запустив его один раз.
Подобным образом можно перенести только задачи созданные в веб-части (разовые поручения) для этого используйте TaskFilter и TaskManager, либо возможности используя LeadFilter и LeadManager.