IMetabaseCustomExtender.Events

Синтаксис

Events: IMetabaseCustomForeEvents;

Events: Prognoz.Platform.Interop.Metabase.IMetabaseCustomForeEvents;

Описание

Свойство Events возвращает коллекцию пользовательских событий.

Комментарии

Пользовательские события хранятся в метаданных репозитория. Отслеживанием наступления событий занимается планировщик задач. Для этого в контейнере задач, который указан в его настройках, должны быть задачи, запускаемые при наступлении настраиваемого события.

Событие может наступить в результате выполнения какой-либо другой задачи, если для неё задана соответствующая настройка. Также событие может быть сгенерировано из прикладного кода с помощью метода Invoke.

Пример

Добавьте ссылки на системную сборку Metabase.

Пример создания пользовательского события:

Sub UserProc;
Var
    MB: IMetabase;
    CustomClassExtender: IMetabaseCustomExtender;
    Events: IMetabaseCustomForeEvents;
    ForeEvent: IMetabaseCustomForeEvent;
Begin
    MB := MetabaseClass.Active;
    
//Получение контейнера пользовательских классов
    CustomClassExtender := Mb.SpecialObject(MetabaseSpecialObject.CustomExtender).Edit As IMetabaseCustomExtender;
    
//Получение списка событий
    Events := CustomClassExtender.Events;
    ForeEvent := Events.Add(
"BEGIN_LOAD");
    ForeEvent.Name := 
"Вход в приложение";
    (CustomClassExtender 
As IMetabaseObject).Save;
End Sub UserProc;

Imports Prognoz.Platform.Interop.Metabase;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    CustomClassExtender: IMetabaseCustomExtender;
    Events: IMetabaseCustomForeEvents;
    ForeEvent: IMetabaseCustomForeEvent;
Begin
    MB := Params.Metabase;
    
//Получение контейнера пользовательских классов
    CustomClassExtender := Mb.SpecialObject[MetabaseSpecialObject.msoCustomExtender].Edit() As IMetabaseCustomExtender;
    
//Получение списка событий
    Events := CustomClassExtender.Events;
    ForeEvent := Events.Add(
"BEGIN_LOAD");
    ForeEvent.Name := 
"Начало загрузки";
    (CustomClassExtender 
As IMetabaseObject).Save();
End Sub;

Пример генерации пользовательского события из прикладного кода:

Sub UserProc;
Var
    MB: IMetabase;
    CustomExtender: IMetabaseCustomExtender;
    Events: IMetabaseCustomForeEvents;
    ForeEvent: IMetabaseCustomForeEvent;
Begin
    MB := MetabaseClass.Active;
    //Получение контейнера пользовательских классов
    CustomExtender := MB.SpecialObject(MetabaseSpecialObject.CustomExtender).Edit As IMetabaseCustomExtender;
    //Получение списка событий
    Events := CustomExtender.Events;
    ForeEvent := Events.FindByName("Начало загрузки");
    //Генерация события
    ForeEvent.Invoke;
End Sub UserProc;

Imports Prognoz.Platform.Interop.Metabase;

Public Shared Sub Main1(Params: StartParams);
Var
    MB: IMetabase;
    CustomExtender: IMetabaseCustomExtender;
    Events: IMetabaseCustomForeEvents;
    ForeEvent: IMetabaseCustomForeEvent;
Begin
    MB := Params.Metabase;
    
//Получение контейнера пользовательских классов
    CustomExtender := MB.SpecialObject[MetabaseSpecialObject.msoCustomExtender].Edit() As IMetabaseCustomExtender;
    
//Получение списка событий
    Events := CustomExtender.Events;
    ForeEvent := Events.FindByName(
"Начало загрузки");
    
//Генерация события
    ForeEvent.Invoke(Null);
End Sub;

См. также:

IMetabaseCustomExtender