Сценарий добавления комментариев к задаче
В данной статье рассмотрен способ автоматического добавления комментариев к задачам при помощи сценариев.
Рассмотрим два случая:
- добавление комментария к произвольной задаче;
- добавление комментария к задаче текущего бизнес-процесса .
Добавление комментария к произвольной задаче
Пусть ранее была создана задача. В примере показан поиск задач по некоторому параметру (например, по id).
Пример сценария с использованием PublicAPI
Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.15.38 включительно.
var task = PublicAPI.Portal.TaskBase.Task.LoadOrNull(380); // Загружаем задачу по идентификатору
PublicAPI.Portal.TaskBase.Task.AddComment(task, "Комментарий к задаче"); //Добавляем комментарий к задаче
_
Пример сценария без использования PublicAPI
Для корректной работы сценария необходимо подключить сборку:
EleWise.ELMA.Tasks
Пространства имен:
using EleWise.ELMA.Tasks.Managers;
Текст сценария:
var instance = TaskBaseManager.Instance;
var task = instance.LoadOrNull(380); //Загружаем задачу по идентификатору
instance.AddComment(task, "Комментарий к задаче"); //Добавляем комментарий к задаче
Добавление комментария к задаче текущего бизнес-процесса
Рассмотрим добавление комментария на примере следующего бизнес-процесса (см. рисунок ниже). В процессе есть шлюз: по первой ветке выполняется пользовательская задача Задача 2, вторая ветка заканчивается сценарием. Если вторая ветка успела выполниться раньше, чем была выполнена пользовательская задача Задача 2, то сценарий в конце второй ветки добавляет комментарий к задаче Задача 2. Графическая модель данной задачи выглядит следующим образом:Пример сценария с использованием PublicAPI
Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.12.1 включительно.
Пространство имен:
using EleWise.ELMA.Tasks.Models;
Текст сценария:
var nz = PublicAPI.Portal.TaskBase.Filter().Subject(context.X) // поиск задачи по названию(теме)
.Statuses(new List<TaskBaseStatus>
{
PublicAPI.Enums.Tasks.TaskBaseStatus.NewOrder,
PublicAPI.Enums.Tasks.TaskBaseStatus.Read,
PublicAPI.Enums.Tasks.TaskBaseStatus.InProgress
}) //проверка статуса задачи
.Find();
foreach (var task in nz)
{
PublicAPI.Portal.TaskBase.AddComment(task, context.Txt);
}
Пример сценария без использования PublicAPI
Для корректной работы сценария необходимо подключить сборку:
EleWise.ELMA.Tasks
Пространства имен:
using EleWise.ELMA.Tasks.Models;
using EleWise.ELMA.Model.Services;
using EleWise.ELMA.Tasks.Managers;
Текст сценария:
var instance = TaskBaseManager.Instance;
var zdch = InterfaceActivator.Create<TaskBaseFilter>(); //создаем фильтр по задачам
zdch.Subject = "Задача 1"; // поиск задачи по названию(теме)
zdch.Statuses = new List<TaskBaseStatus>
{
TaskBaseStatus.NewOrder,
TaskBaseStatus.Read,
TaskBaseStatus.InProgress
}; //проверка статуса задачи
foreach (var task in instance.Find(zdch, null))
{
instance.AddComment(task, "Комментарий к задаче"); //Добавляем комментарий к задаче
}
Параметр subject записан в контекстную переменную «X» После прохождения сценария будет добавлен комментарий к задаче с указанным названием Задача 2. Если в процессе найдено более одной задачи с таким именем, то комментарий будет добавлен ко всем задачам. В комментарии отображается информация, записанная в контекстную переменную (в данном случае Txt).