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