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-метод, а при завершение - будет отправляться электронное сообщение. Для событий будут заданы необходимые настройки.
См. также: