[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();
}
}