[ELMA3] Сценарии, выполняемые по событию
1. Сценарий обработки события "Создание нового документа"
В этом примере рассмотрен сценарий обработки события создания нового документа. Сценарий запускается после того, как пользователь нажмет кнопку Сохранить при создании документа. Сценарий сохранит в атрибуте Описание значение атрибута Отправитель. Нам понадобится документ типа Факс с атрибутом Отправитель, тип, системный объект Контрагент. Сценарий лучше разместить в отдельном объекте, для этого создайте объект без свойств, можете назвать его ServiceScenarios.
Для работы сценария нужно подключить глобальную сборку
NHibernate
и следующие пространства имен:
using EleWise.ELMA.Documents.Models; using EleWise.ELMA.Runtime.Managers; using EleWise.ELMA.Runtime.NH.Listeners; using EleWise.ELMA.ConfigurationModel; using EleWise.ELMA.ComponentModel; using NHibernate.Event;
Текст сценария:
[Component] public class ReSaveNameDoc : PostFlushEventListener { // событие создание объекта/документа public override void OnPostInsert(PostInsertEvent @event) { // Определяем тип документа //---------------------------------------------------------- if(@event.Entity is IDocFax) // интерфейс документа типа Факс { var TMPDoc = (IDocFax)@event.Entity; // приведение к типу if(TMPDoc.Otpravitel!=null) { // заполняем атрибут Описание документа TMPDoc.Description = "Отправитель " + TMPDoc.Otpravitel.Name.Trim(); } } } }
2. Сценарий обработки события "Редактирование документа"
В этом примере рассмотрен сценарий обработки события Редактирование документа. Сценарий запускается после того, как пользователь отредактировав документ, нажимает кнопку Сохранить. Сценарий сохранит в атрибуте Описание строку Документ отредактирован.
Текст сценария:
// событие редактирования объекта/документа public override void OnPostUpdate(PostUpdateEvent @event) { // Определяем тип документа //---------------------------------------------------------- if(@event.Entity is IDocFax) // интерфейс документа типа Факс { // приведение к типу var TMPDoc = (IDocFax)@event.Entity; // заполняем атрибут Описание документа TMPDoc.Description = "Документ отредактирован " + DateTime.Now.ToString(); } }