[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;
});