logo

Переназначение всех задач с одного пользователя на другого

Иногда возникает необходимость переназначить все задачи с одного пользователя на другого, например при увольнении одного из сотрудников. В этой статье мы рассмотрим пример сценария, который позволяет массово переназначить задачи. Перед выполнением сценария учетную запись уволенного пользователя необходимо разблокировать.

Пример сценария с использованием 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.