[ELMA3] Сценарии, выполняемые по событию
1. Сценарий обработки события "Создание нового документа"
В этом примере рассмотрен сценарий обработки события создания нового документа. Сценарий запускается после того, как пользователь нажмет кнопку Сохранить при создании документа. Сценарий сохранит в атрибуте Описание значение атрибута Отправитель. Нам понадобится документ типа Факс с атрибутом Отправитель, тип, системный объект Контрагент. Сценарий лучше разместить в отдельном объекте, для этого создайте объект без свойств, можете назвать его ServiceScenarios.
Для работы сценария нужно подключить глобальную сборку
NHibernate
и следующие пространства имен:
1 2 3 4 5 6 | 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; |
Текст сценария:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | [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. Сценарий обработки события "Редактирование документа"
В этом примере рассмотрен сценарий обработки события Редактирование документа. Сценарий запускается после того, как пользователь отредактировав документ, нажимает кнопку Сохранить. Сценарий сохранит в атрибуте Описание строку Документ отредактирован.
Текст сценария:
1 2 3 4 5 6 7 8 9 10 11 12 13 | // событие редактирования объекта/документа public override void OnPostUpdate(PostUpdateEvent @ event ) { // Определяем тип документа //---------------------------------------------------------- if (@ event .Entity is IDocFax) // интерфейс документа типа Факс { // приведение к типу var TMPDoc = (IDocFax)@ event .Entity; // заполняем атрибут Описание документа TMPDoc.Description = "Документ отредактирован " + DateTime.Now.ToString(); } } |