Trabajar con controladores de eventos en SSIS 2008

Cuando hablada de Crear y examinar registros de ejecución de paquetes SSIS me estuve refiriendo todo el tiempo a los eventos que se producen y se registran en estos logs. En el tiempo de ejecución, los ejecutables (paquetes y contenedores de bucles Foreach, bucles For, de secuencia y de host de tarea) producen eventos. En nuestro caso vimos el ejemplo del evento OnError se produjo cuando se generó un error en la tarea “Tarea con Error”. Ahora vamos a crearnos Controladores de eventos personalizados para algunos eventos y así ampliar la funcionalidad de paquetes y facilitar la administración de paquetes en el tiempo de ejecución.

He creado un paquete a partir del anterior donde desabilito las dos primeras tareas que no son significativas de lo que quiero mostrar.

Pasamos a la ficha Controladores de eventos del Diseñador SSIS que sirve para crear controladores de eventos personalizados.

Crear un controlador de eventos es similar a generar un paquete. Un controlador de eventos tiene tareas y contenedores, que se ordenan en un flujo de control, y un controlador de eventos también puede incluir flujos de datos.

De la lista de elementos que tenemos en el desplegable Ejecutable, seleccionamos Tarea con Error y del desplegable Controlador de eventos, el evento OnError que es el predeterminado.

Arrastramos una tarea Script que configuramos para que devuelva el mensaje “Se ha producido un error

Al ejecutar el paquete, como consecuencia del error en la tarea, se dispara el evento OnError (como había quedado demostrado antes en el tema de registros) y el controlador de eventos hace que se ejecute la tarea que script que describe el error. Como vemos en la imagen, se detiene la ejecución, que de momento indica que la tarea está en proceso, mostrando color amarillo.

Al Aceptar el mensaje de error, termina la ejecución de la tarea y como existe error en la misma, queda de color rojo.

En la siguiente entrega veremos cómo funcionan estos controladores en contenedores de paquetes de SSIS.