logo

[ELMA3] Сценарий для получения результатов согласования документов

В статье рассмотрен пример сценария, с помощью которого можно получить комментарии к результатам согласований. В сценарии используются контекстные переменные:
  • context.Dok – переменная Документ, тип – тип документа Договор;
  • context.Komment – переменная Коммент, тип – Текст.

Пример сценария с использованием PublicAPI

Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.15.38 включительно.

Пространства имен:

using EleWise.ELMA.API;

Текст сценария:

var aprovmentGroups = PublicAPI.Docflow.Tasks.GetApprovementGroupsByDocument(context.Dok); //получаем все задачи согласования данного документа
            context.Komment = "";
            foreach (var grp in aprovmentGroups)
            {
                foreach (var item in grp.ApprovementList.Items)
                {
                    foreach (var res in item.Results)
                    {
                        context.Komment += EleWise.ELMA.Helpers.EnumHelper.GetDisplayName(res.Status) + " " + res.Item.User.FullName + " " + res.Item.SolutionDate;
                        if (String.IsNullOrEmpty(res.Item.Comment) == false)
                            context.Komment += " \"" + res.Item.Comment + "\"";
                        context.Komment += "\n";
                    }
                }
            }

Пример сценария без использования PublicAPI

Для работы сценария необходимо подключить сборки:
Elewise.ELMA.Documents
Elewise.ELMA.Documents.Docflow
Пространства имен:
using EleWise.ELMA.Documents.Managers;

Текст сценария:
var aprovmentGroups = ApprovementTaskGroupManager.Instance.GetGroupsByDocument(context.Dok); //получаем все задачи согласования данного документа
            context.Komment = "";
            foreach (var grp in aprovmentGroups)
            {
                foreach (var item in grp.ApprovementList.Items)
                {
                    foreach (var res in item.Results)
                    {
                        context.Komment += EleWise.ELMA.Helpers.EnumHelper.GetDisplayName(res.Status) + " " + res.Item.User.FullName + " " + res.Item.SolutionDate;
                        if (String.IsNullOrEmpty(res.Item.Comment) == false)
                            context.Komment += " \"" + res.Item.Comment + "\"";
                        context.Komment += "\n";    
                    }
                }
            }
Примечание

Начиная с версии системы ELMA 3.12.0, появилась возможность просмотреть, по какому коннектору был осуществлен исходящий переход из процессной задачи согласования. В БД в элементе листа согласования (ApprovementListItem) в столбце БД SelectedConnectorUid записывается UID выбранного перехода.

Текст сценария:

foreach (var item in grp.ApprovementList.Items)
{
  var uid = item.SelectedConnectorUid; // получаем UID коннектора, по которому был выполнен переход для элемента листа согласования item
}