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