IBProcessEventGroupCollection.AddEvent

Синтаксис

AddEvent(_event: IBProcessEvent);

Параметры

_event. Событие, которое необходимо добавить.

Описание

Метод AddEvent добавляет указанное событие в соответствующую группу событий коллекции.

Комментарии

Событие добавляется в группу в соответствии с его типом.

Пример

Для выполнения примера в репозитории предполагается наличие процесса с идентификатором PROCESS и модуля с идентификатором M_PROCESS_EVENTS. В модуле имеется методы OnStart и OnBeforeSendMailMessage, предназначенный для обработки событий процессов.

Добавьте ссылки на системные сборки: BPM, Metabase. Также добавьте ссылку на сборку, которая необходима для работы с процессами.

Sub UserProc;
Var
    Mb: IMetabase;
    MObj: IMetabaseObjectDescriptor;
    Process: IBProcess;
    EventCollection: IBProcessEventGroupCollection;
    ForeEvent: IBProcessEventMethod;
    MailEvent: IBProcessEventEmail;
    Email: IBProcessEmail;
Begin
    Mb := MetabaseClass.Active;
    MObj := Mb.ItemById("PROCESS");
    // Получение структуры процесса
    Process := BProcessCollection.EditByKey(MObj.Key);
    // Получение коллекции групп событий у процесса
    EventCollection := Process.Events;
    // Создание события выполнения Fore-метода при запуске процесса
    ForeEvent := New BProcessEventMethod.Create(BProcessEventType.StartProcess, "ForeEvent");
    EventCollection.AddEvent(ForeEvent);
    ForeEvent.Method := New BPForeMethodLink.CreateNew(Mb.ItemById("M_PROCESS_EVENTS"), "OnStart");
    // Создание события отправки почтового сообщения при завершении процесса
    MailEvent := New BProcessEventEmail.Create(BProcessEventType.FinishProcess, "MailEvent");
    EventCollection.AddEvent(MailEvent);
    Email := MailEvent.Email;
    Email.Recipient := "first@mail.ru";
    Email.CCRecipient := "two@mail.ru";
    Email.BCCRecipient := "blind@mail.ru";
    Email.Subject := "Завершение выполнения процесса";
    Email.Message := "Процесс завершён, проверьте результаты работы.";
    Email.IsBodyHtml := True;
    Email.OnBeforeSend := New BPForeMethodLink.CreateNew(Mb.ItemById("M_PROCESS_EVENTS"), "OnBeforeSendMailMessage");
    // Сохранение изменений
    If ForeEvent.IsValid And MailEvent.IsValid Then
        Process.Save;
    End If;
End Sub UserProc;

При выполнении примера для процесса будут созданы два события: при запуске процесса будет выполняться Fore-метод, а при завершение - будет отправляться электронное сообщение. Для событий будут заданы необходимые настройки.

См. также:

IBProcessEventGroupCollection