¿Te ha pasado alguna vez que quieres cambiar la variable de entorno de un paquete de Integration Services (SSIS) después de haberlo desplegado?
Para no tener que pasar nuevamente por el proceso de despliegue, desde la versión 2012 de SSIS tenemos ambientes y variables de ambiente que podemos modificar dinámicamente, dándonos un potente y flexible modelo de despliegue.
Para este ejemplo, supondremos que ya hemos desplegado un paquete con anterioridad y cambiaremos una variable de ambiente usando el SP [catalog].[set_environment_variable_value] ubicado en nuestro de catálogo SSISDB.
USE [SSISDB]
GO
--Declaramos las variables
DECLARE @RC int
DECLARE @folder_name nvarchar(128)
DECLARE @environment_name nvarchar(128)
DECLARE @variable_name nvarchar(128)
DECLARE @value sql_variant
-- Seteamos los valores de los parámetros
SET @folder_name = N'PTR'
SET @environment_name = N'PTR_Produccion'
SET @variable_name = N'FileShare'
SET @value = N'\\new-fileshare-name\PTR_integracion_prd\'
-- Este es el SP que nos permitirá cambiar la variable
EXECUTE @RC = [catalog].[set_environment_variable_value]
@folder_name
,@environment_name
,@variable_name
,@value
GO
Como vemos, los parámetros que necesita este SP son:
- folder_name: nombre de la carpeta que contiene el ambiente. Es nvarchar(128)
- environment_name: nombre del ambiente. Es nvarchar(128)
- variable_name: nombre de la variable de ambiente. Es nvarchar(128)
- value: el nuevo valor de la variable de ambiente.
En este caso sencillo lo hemos usado para cambiar el valor de una variable llamada ‘Fileshare’ en el ambiente ´PRT_Produccion´.
Por último, si queremos verificar el cambio que hemos realizado podemos consultar la tabla internal.environment_variables:
SELECT * FROM SSISDB.internal.environment_variables
WHERE name LIKE 'FileShare'
De esta manera, hemos usado los ambientes y variables de ambiente para configurar dinámicamente el comportamiento de un paquete SSIS. Espero que te haya sido de utilidad!
Si tienes alguna duda, comentario o sugerencia, puedes mandarme un email a bitácoradeundba@gmail.com.