Добавление комментария к текущему экземпляру процесса в сценарии этого процесса
Для того, чтобы добавить комментарий к текущему экземпляру процесса, необходимо создать экземпляр класса Comment и добавить его к списку комментариев с помощью метода Add(), после чего сформировать соответствующее событие добавления комментария для записи в историю экземпляра процесса.
Пример сценария с использованием PublicAPI
Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.15.38 включительно.
Пространство имен:
1 | using EleWise.ELMA.API; |
Текст сценария:
1 | PublicAPI.Processes.WorkflowInstance.AddComment(context.WorkflowInstance, "Текст комментария" ); //Автор комментария - текущий пользователь, Дата отправки - текущая |
Пример сценария без использования PublicAPI
Пространства имен:
1 2 3 4 5 6 | 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; |
Текст сценария:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | //создание комментария 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); } |