[ELMA3] Получение списка задач по резолюции в сценарии
Получить доступ ко всем задачам по резолюции по выбранному документу можно с помощью приведенного ниже сценария.
Пример сценария с использованием PublicAPI
Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.15.38 включительно.
Контекстные переменные:
context.Dokument1 - переменная, типом которой является какой-либо тип документа;
context.Ispolnitel1 - переменная типа Пользователь.
Пространство имен:
using EleWise.ELMA.API;
Текст сценария:
//в контекстной переменной Dokument1 хранится документ, по которому необходимо получить задачи. // находим все задачи по вынесенной резолюции: var res_task = PublicAPI.Docflow.Tasks.GetTaskByResolution(context.Dokument1.Resolution.First()).ToList(); //если необходимо выполнить ряд операций для каждой задачи (например записать в контекстную переменную исполнителя): res_task.ForEach(rt =>{ context.Ispolnitel1 = (User)rt.Executor; });
Пример сценария без использования PublicAPI
Заранее необходимо объявить пространства имен:
using EleWise.ELMA.Documents.Models; using EleWise.ELMA.Documents.Managers; using EleWise.ELMA.Documents.Models.Tasks; using EleWise.ELMA.Model.Common; using EleWise.ELMA.Model.Managers; using EleWise.ELMA.Tasks.Models;
В сценарии используются следующие контекстные переменные:
context.Dokument1 - переменная, типом которой является какой-либо тип документа;
context.Ispolnitel1 - переменная типа Пользователь.
Текст сценария:
//в контекстной переменной Dokument1 хранится документ, по которому необходимо получить задачи. //В переменную resolution записываем резолюцию по документу: var resolution = context.Dokument1.Resolution.First(); // находим все задачи по вынесенной резолюции: var res_task = TaskBaseExtensionManager.Instance.GetTaskForResolution(resolution).ToList(); //если необходимо выполнить ряд операций для каждой задачи (например записать в контекстную переменную исполнителя): res_task.ForEach(rt =>{ context.Ispolnitel1 = (User)rt.Executor; });