Добавление комментария к текущему экземпляру процесса в сценарии этого процесса
Для того, чтобы добавить комментарий к текущему экземпляру процесса, необходимо создать экземпляр класса Comment и добавить его к списку комментариев с помощью метода Add(), после чего сформировать соответствующее событие добавления комментария для записи в историю экземпляра процесса.
Пример сценария с использованием PublicAPI
Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.15.38 включительно.
Пространство имен:
using EleWise.ELMA.API;
Текст сценария:
PublicAPI.Processes.WorkflowInstance.AddComment(context.WorkflowInstance, "Текст комментария"); //Автор комментария - текущий пользователь, Дата отправки - текущая
Пример сценария без использования PublicAPI
Пространства имен:
using EleWise.ELMA.Common.Models; using EleWise.ELMA.Model.Services; using EleWise.ELMA.Services; using EleWise.ELMA.Model.Events; using EleWise.ELMA.Workflow.Models; using EleWise.ELMA.Common.ExtensionPoints;
Текст сценария:
//создание комментария var cmnt = InterfaceActivator.Create<Comment> (); //зададим дату создания комментария cmnt.CreationDate = DateTime.Now; //укажем автора комментария. вместо инициатора экземпляра процесса можно указать другого пользователя cmnt.CreationAuthor = context.WorkflowInstance.Initiator; //введем текст комментария cmnt.Text = "Текст комментария"; //сохранение комментария cmnt.Save (); //добавление комментария к списку комментариев экземпляра context.WorkflowInstance.Comments.Add (cmnt); //создание события добавления комментария для записи в историю var ActionHandler = Locator.GetServiceNotNull<IEntityActionHandler> (); var commentAction = Locator.GetService<ICommentActionHandler> (); var commentActionModel = InterfaceActivator.Create<CommentActionModel> (); commentActionModel.Comment = cmnt; var args = EntityActionEventArgs.TryCreate (null, context.WorkflowInstance, WorkflowInstanceActions.AddComment); if (args != null) { commentAction.ProcessEventArgs (args, commentActionModel); ActionHandler.ActionExecuted (args); }