Marko Radakovic

Usando un archivo XML para configurar un paquete SSIS

December 18, 2015 by
Configurar un paquete SSIS significa elegir pares de propiedad/valor añadidos a un paquete completo e incluirlos en el archivo de configuración para modificaciones posteriores. Si por alguna razón algunos de los valores han cambiado después de que el despliegue terminara y corriera el paquete, ellos pueden ser añadidos después, abriendo el paquete en Business Intelligence Development Studio (BIDS) y cambiando los valores.

Para evitar este proceso, un archivo de configuración puede ser creado, incluyendo todas las propiedades necesarias. Si alguna de las propiedades es cambiada después de que termine el despliegue, ellas necesitan ser cambiadas en el paquete SSIS también. Esto puede ser hecho actualizando el archivo con los nuevos valores, sin la necesidad de abrir el paquete entero y actualizarlo usando BIDS.

El archivo de configuración del paquete puede ser usado para actualizar los valores de la propiedad en tiempo de ejecución. SQL Server Integration Service soporta varias formas de configuración del paquete usando: SQL Server table, Parent package variable, Registry entry, Environment variable, y XML configuration file.

Para crear un archivo de configuración XML en Business Intelligence Development Studio, para el paquete SSIS existente, la pestaña Control Flow necesita ser abierta y, en el panel Properties, bajo el menú Misc, expanda la opción Configurations como se muestra en la siguiente imagen.

Expanding the Configurations option using BIDS

Esto abrirá la ventana Package Configurations Organizer. Para crear el archivo, la caja Enable package configurations debe ser seleccionada. Para crear el nuevo archivo, el usuario necesita hacer clic en el botón Add como se muestra en la imagen siguiente.

Click the Add button to create a new file using the Package Configurations Organizer

Al hacer clic en el botón Add se abrirá Package Configuration Wizard, donde el usuario puede elegir el tipo de archivo de configuración. En la lista desplegable Configuration type hay varios tipos como: XML configuration file, Environment variable, Registry entry, Parent package variable y SQL Server type.

El nombre del archivo debe ser especificado para avanzar a través del asistente, lo cual es explícitamente requerido por la aplicación en la caja de mensajes en la parte inferior de la ventana Package Configuration Wizard. Haciendo clic en el botón Browser el nombre y la localización del archivo pueden ser especificados, como se muestra a continuación.

Dialog showing that an XML configuration file name must be specified

Si un archivo con el mismo nombre ya existe, el diálogo emergente aparecerá ofreciendo rescribir el archivo existente o cambiar su nombre. Cuando el tipo y el nombre del archivo son especificados, el proceso puede continuar al siguiente paso haciendo clic en el botón Next, como se muestra aquí:

Specifying XML configuration file name to continue the process

El siguiente paso requiere que el usuario especifique el objeto exacto y las propiedades que serán incluidas en el archivo de configuración. Este es un paso importante porque sólo los objetos y las propiedades seleccionadas aquí serán añadidos al archivo de configuración.

Para los objetos que no fueron incluidos, el usuario tiene que o añadirlos luego modificando el archivo haciendo clic en el botón Edit en la ventana Package Configurations Organizer, o manualmente cambiar el valor de la propiedad usando BIDS. El paquete SSIS usando en esta bitácora importa los datos de la hoja de cálculo Excel a la tabla de la base de datos. Por lo tanto, la conexión Excel y la conexión SQL Server Destination han sido creadas.

Todas las propiedades para ambas conexiones estarán en la lista de objetos, y también las propiedades para todos los objetos del paquete, como Executables o Variables. La propiedad incluida en el archivo de configuración es seleccionada como se muestra en la siguiente imagen. Al menos uno de la caja de cualquiera de los/las propiedades/objetos deben ser seleccionadas para continuar con el siguiente paso.

Usando el archivo de configuración XML creado, el nombre de la tabla en la base de datos destino será cambiado de “ExcelData1” a “ExcelData2”, y la hoja de cálculo Excel será importada a una nueva tabla. Por supuesto, la tabla ExcelData2 debe ser apropiadamente creada antes de que el archivo haya sido modificado. Como se muestra en la imagen siguiente, el valor actual del objeto seleccionado es [dbo].[ExcelData1].

Selecting the properties for exporting using Package Configuration Wizard

Hacer clic en el botón Next moverá el proceso al siguiente paso. Este es un resumen para el proceso entero donde el nombre para la configuración debe ser especificado. El nombre será automáticamente actualizado en la caja Preview.

En la misma caja están: el tipo del archivo, la localización y todas las propiedades previamente seleccionadas, que serán incluidas en el archivo de configuración. Después de que el nombre de la configuración es especificado, y toda la información de la caja Preview está revisada y confirmada, haga clic en el botón Finish y la ventana Package Configuration Wizard se cerrará, y se pasará a la ventana Package Configuration Organizer. El archivo creado debería ser listado en esta ventana. Si es así, la ventana puede ser cerrada.

Package Configuration Wizard - Completing the Wizard dialog

Después de ejecutar el paquete SSIS sin hacer ningún cambio en el archivo XML, los datos deberían ser importados en la tabla ExcelData1 como se muestra en la siguiente imagen. La tabla ExcelData2 está todavía vacía.

Dialog showing the data imported in the ExcelData1 table

Cambiar el nombre de la tabla destino en el archivo XML re direccionará la importación de datos a la tabla ExcelData2 como se muestra aquí:

Changing the name of the destination table in the XML file will redirect importing data to the ExcelData2 table

Después de que Configured Value ha sido cambiado, el archivo necesita ser grabado. Una hoja de cálculo Excel será re direccionada a la nueva tabla en la siguiente corrida del paquete SSIS, como se muestra a continuación.

Excel worksheet will be redirected to the new table at the next run of the SSIS package

En lugar de abrir el proyecto entero en BIDS y cambiar el nombre de la tabla en el administrador de conexión, usar un archivo XML permite al usuario lograr esto en una manera más simple. El archivo de configuración puede ser también aplicado a otros paquetes SSIS.

Recursos útiles:
Package configurations
Adding the configuration file to an existing package
Deploying package with XML configuration

Marko Radakovic

Marko Radakovic

Marko is an IT and technical education teacher, who likes movies, video games, and heavy metal music.

He uses his spare time to play guitar, ride a bike and hang out with his friends. During winter, he likes skiing the most, but all other snow activities, too.

He is also author of various SQL Shack articles about SSIS packages and knowledgebase articles about ApexSQL Doc.

View all posts by Marko Radakovic
Marko Radakovic
3,782 Views