logo

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