IEtlTaskExecutionEvents.OnEndBlock

Синтаксис

OnEndBlock(Task: IEtlTask; Object: IEtlObject; Duration: Integer; TotalRecIn: IDictionary; TotalRecOut: IDictionary; ErrorRec: IDictionary);

Параметры

Task. Задача ETL;

Object. Объект задачи ETL;

Duration. Время выполнения блока в миллисекундах;

TotalRecIn. Таблица-источник записей;

TotalRecOut. Таблица-приёмник записей;

ErrorRec. Таблица пропущенных в результате ошибки записей.

Описание

Метод OnEndBlock реализует событие при завершении блока задачи ETL.

Комментарии

Блок задачи ETL - это совокупность двух объектов и связи между ними в задаче ETL.

Для параметров TotalRecIn, TotalRecOut, ErrorRec должны быть созданы:

Для реализации события, возникающего при запуске блока задачи ETL, используйте IEtlTaskExecutionEvents.OnStartBlock.

Для определения объекта Fore, который будет использоваться в качестве обработчика событий, и класса, описанного в этом объекте, используйте свойства: IEtlTask.EventsAssembly и IEtlTask.EventsClass.

Пример

В примере описывается класс, который может быть использован в качестве обработчика событий задачи ETL.

Добавьте ссылки на системные сборки: Collections, Etl, Ui.

Class EventsClass: EtlTaskExecutionEvents
    // Событие, возникающее при запуске задачи ETL
    Public Sub OnStartTask(Task: IEtlTask);
    Begin
        WinApplication.InformationBox("Событие OnStartTask" + #13 + #10 +
            "Количество объектов задачи ETL = " + Task.Count.ToString);
    End Sub OnStartTask;
    
    // Событие, возникающее при завершении задачи ETL
    Public Sub OnEndTask(Task: IEtlTask; Duration, TotalRec, ErrorRec: Integer);
    Begin
        WinApplication.InformationBox("Событие OnEndTask" + #13 + #10 +
            "Количество объектов задачи ETL = " + Task.Count.ToString + #13 + #10 +
            "Прогресс выполнения задачи = " + Duration.ToString + #13 + #10 +
            "Количество записей на входе = " + TotalRec.ToString + #13 + #10 +
            "Количество пропущенных записей на выходе = " + ErrorRec.ToString);
    End Sub OnEndTask;
    
    // Событие, возникающее при запуске блока задачи ETL
    Public Sub OnStartBlock(Task: IEtlTask; Object: IEtlObject);
    Begin
        WinApplication.InformationBox("Событие OnStartBlock" + #13 + #10 +
            "Наименование объекта задачи ETL - " + Task.Item(0).Name + #13 + #10 +
            "Идентификатор объекта задачи ETL - " + Object.Id);
    End Sub OnStartBlock;
    
    // Событие, возникающее при завершении блока задачи ETL
    Public Sub OnEndBlock(Task: IEtlTask; Object: IEtlObject; Duration: Integer; TotalRecIn, TotalRecOut, ErrorRec: IDictionary);
    Begin
        WinApplication.InformationBox("Событие OnEndBlock" + #13 + #10 +
            "Наименование объекта задачи ETL - " + Task.Item(0).Name + #13 + #10 +
            "Идентификатор объекта задачи ETL - " + Object.Id + #13 + #10 +
            "Прогресс выполнения задачи = " + Duration.ToString + #13 + #10 +
            "Количество записей на входе = " + TotalRecIn.Count.ToString + #13 + #10 +
            "Количество записей на входе = " + TotalRecOut.Count.ToString + #13 + #10 +
            "Количество пропущенных записей на выходе = " + ErrorRec.Count.ToString);
    End Sub OnEndBlock;
    
    // Событие, возникающее в процессе выполнения задачи ETL
    Public Sub OnProgress(Task: IEtlTask; Progress: Integer);
    Begin
        WinApplication.InformationBox("Событие OnProgress" + #13 + #10 +
            "Наименование объекта задачи ETL - " + Task.Item(0).Name + #13 + #10 +
            "Прогресс выполнения задачи = " + Progress.ToString);
    End Sub OnProgress;

    // Событие, возникающее при возникновении ошибки блока задачи ETL
    Public Sub OnError(Task: IEtlTask; Object: IEtlObject; Excep: IException);
    Begin
        WinApplication.InformationBox("Событие OnError" + #13 + #10 +
            "Наименование объекта задачи ETL - " + Task.Item(0).Name + #13 + #10 +
            "Идентификатор объекта задачи ETL - " + Object.Id + #13 + #10 +
            "Текст ошибки - " + Excep.Message);
    End Sub OnError;
End Class EventsClass;

В результате выполнения примера при возникновении события будет выдано информационное сообщение.

См. также:

IEtlTaskExecutionEvents