Los Servicios de Integración de SQL Server (SQL Server Integration Services, SSIS) han estado creciendo hacia una solución empresarial a través de los últimos tres lanzamientos. Las variables eran un paso en esa dirección, pero con los despliegues de Poyectos al Catálogo SSIS en SQL Server 2012, Microsoft lo ha enfatizado aún más. Los parámetros de proyecto se han vuelto la solución ideal para cambiar valores de variables en los paquetes en tiempo de ejecución. Este artículo va a sumergirse en un ejemplo que parametriza el Nombre del Servidor y el Catálogo Inicial (nombre de la base de datos) en una cadena de conexión para paquetes en un proyecto.
La Cadena de Conexión para la base de datos puede ser creada para un paquete individual o para un proyecto en Visual Studio. Estos Administradores de Conexión están disponibles para ya sea sólo el paquete o cualquier paquete en el proyecto. Si la conexión a la base de datos necesita ser usada en múltiples paquetes, use el Administrador de Conexiones de Proyecto (Project Connection Manager).
Una vez que la conexión es creada en el Administrador de Conexiones, está también disponible para los paquetes del proyecto. Las propiedades de la conexión son cambiadas desde el Administrador de Conexiones de Paquete (Package Connection Manager), lo cual puede ser confuso. La Figura 2 muestra el prefijo (proyecto) en el nombre de la conexión en el paquete DimProduct. Una conexión (DW) creada sólo en el paquete no tendrá este prefijo.
Las propiedades disponibles cuando se selecciona la conexión en el Administrador de Conexiones de Paquetes pueden ser cambiadas para parametrizar la cadena de conexión. La propiedad Expression va a ser usada para cambiar la cadena de conexión. La cadena completa puede ser cambiada o sólo partes como el Nombre del Servidor o el Catálogo Inicial (nombre de la base de datos). La Figura 3 muestra cómo se hace clic derecho en la conexión de base de datos ADVDW14 (proyecto) y se selecciona el submenú Parametrize…, lo cual es un atajo.
Pero antes de usar atajos, es mejor aprender las áreas usadas por SSIS para completar esta parametrización. La primera área nueva es Parámetros de Proyecto (Project Parameters) en el Explorador de Solución en el proyecto. Los Parámetros de Proyecto son globales para todos los Paquetes en un solo Proyecto SSIS. Así que, si usted usa el parámetro en más de un paquete en el proyecto, y el valor es cambiado antes de ejecutar, entonces todos los paquetes verán y usarán el nuevo valor.
Habrán 2 nuevos parámetros: ServerName y DatabaseName. Los parámetros de proyecto ServerName y DatabaseName nos permitirán desplegar este paquete a diferentes instancias SSIS (QA o Producción) y cambiar el parámetro cuando se esté ejecutando. Los valores usados cuando se está desarrollando y probando este paquete serán diferentes que cuando se desplegó a producción.
Para crear Parámetros de Proyecto, sólo haga doble clic en el archivo Project.param en el explorador de soluciones. Habrá un botón en la barra de herramientas disponible para crear nuevos parámetros.
Coloque el nombre del parámetro en la columna name (nombre). El Tipo de Dato (Data Type) en este caso es cadena (string). El valor es usado para el valor inicial. Column Required (Columna Requerida) es usada para forzar un valor en el parámetro antes de ejecutar. Un error es retornado cuando el parámetro Required (Requerido) no tiene valor.
Para cambiar la cadena de conexión para usar parámetros de proyecto, seleccione la conexión en el paquete Connection Managers (Administradores de Conexión) y vaya a la ventana de propiedades. Si la ventana de propiedades no es visible ya, haga clic derecho en la conexión y seleccione Properties. Es conveniente tener las propiedades estacionadas a la derecha y debajo del explorador de soluciones.
Haga clic en la elipse a la derecha de la propiedad Expressions y aparecerá la ventana Property Expressions Editor.
Una de las propiedades disponibles es ConnectionString, pero esto le hace editar toda la cadena en lugar de sólo partes de la cadena. La propiedad ServerName para el nuevo Parámetro de Proyecto es obvia, pero la propiedad DatabaseName no lo es a menos que a usted le sea familiar trabajar con cadenas de conexión de bases de datos SQL Server. La propiedad usada para cambiar la base de datos es InitialCatalog. Esta propiedad puede ser rastreada hasta los días del controlador OBDC original, los cuales, por cierto, están volviendo.
Cuando InitialDialog es seleccionado, el siguiente paso es asociar el Parámetro de Proyecto DatabaseName con esta propiedad Expression. Esto es hecho haciendo clic en la elipse debajo de la columna Expression de la Propiedad.
La Figura 11 muestra la ventana Expression Builder (Constructor de Expresiones). Esta ventana permite arrastrar y soltar Parámetros de Proyecto a la caja de texto Expression. Una vez arrastrados y soltados, los Parámetros de Proyecto tendrán un símbolo @ como prefijo en el nombre del parámetro. Hay un botón llamado Evaluate Expression para mostrar los resultados de la expresión. La expresión puede contener otras variables, expresiones o texto codificado como parte del valor. El botón es útil para asegurarse de que la expresión creada es correcta y válida.
Repita estos pasos para la propiedad ServerName. El Proyecto y los Paquetes están listos para ser desplegados.
El proyecto puede ser desplegado a la instancia SSIS haciendo clic derecho en el proyecto y seleccionando Deploy del submenú. El asistente le pedirá una instancia SSIS para desplegar el proyecto. Habrá un área de selección diferente para la carpeta en el Catálogo SSIS.
La Figura 14 muestra el paquete configurado en SQL Server Agent como un paso en el trabajo. La pestaña de configuración de este Paso de Trabajo puede ser usada para cambiar los valores del Parámetro de Proyecto.
La Figura 15 muestra las áreas para cambiar estos valores para los Parámetros del Proyecto. El primero es el Parámetro en sí mismo. El segundo es un Ambiente (Environment) que está asociado con el Proyecto. Si el valor necesita cambiar para múltiples paquetes en el proyecto, use el Ambiente. Los Ambientes ayudan con la administración del cambio para múltiples paquetes en un proyecto desplegado.
Puede parecer que hay muchos pasos a cumplir para obtener el resultado deseado. Pero una vez que esto está configurado, la configuración puede ser cambiada en el Ambiente del proyecto una vez que esté desplegado al Catálogo SSIS. Más acerca del Catálogo SSIS de Ambientes será cubierto en otro artículo.
Barra lateral:
El Catálogo SSIS puede ser creado en una nueva instalación de SQL Server 2012, 2014 o 2016. En SQL Server Management Studio (SSMS), el explorador de objetos mostrará una carpeta llamada Integration Services Catalog. Si usted hace clic derecho en esta carpeta, un submenú Create Catalog… estará disponible para crear la base de datos SSIS en esta instancia. La Figura 16 muestra la selección del menú deshabilitada porque el Catálogo ya ha sido creado.