SSIS – Uso de Condicionales en componentes Derived Columns

Quizás se han preguntado alguna vez si es posible el uso de condicionales dentro de un componente de un Data Flow para de esta manera setear el valor de un campo de destino si se cumple determinada condición en un dato de origen. Por ejemplo, si el campo Sexo es igual a 1 (sexo = 1) en el destino debe almacenarse el Valor “Mascuilno”, caso contrario, debe almacenarse el valor “Femenino”. La sintaxis sería la siguiente:
([sexo] == ”1”) ? “Masculino” : “Femenino”
Esta sintaxis puede aplicarse en un componente Derived Column como se puede ver en el siguiente ejemplo. Lo primero que haremos es crear un fichero como el siguiente:


Luego crearemos un nuevo proyecto de Integration Services en SQL Server Business Intelligence Development Studio con el nombre de “Conditional”.
Crearemos las conexiones de origen y destino respectivas como se ven en las siguientes imágenes.






Conexión de Origen – Flat File


Conexión de Destino – Flat File


Insertamos en el Control Flow un Data Flow Task la que llamaremos “Conditional Data Flow task” y dentro de este último insertaremos un Flat File Source, un Derived Column y en Flat File Destination y los relacionaremos como se muestra en la figura siguiente:


En el componente Derived Column pondremos el siguiente código que permitirá realizar la determinación del Sexo del Cliente que se está procesando.


Posteriormente, en el Flat File Destination debemos cambiar el mapeo de campos como se ve en la siguiente figura, para que de esta manera la nueva columna derivada que hemos creado se vincule con la columna “sexo” del fichero de destino.


El resultado del proceso será el siguiente un archivo llamado Cliente_Destino.txt con el siguiente contenido:

1 comentarios:

Unknown dijo...

Hola Que tal?
Realice este tutorial pero cuando lo ejecuto en el archivo de salida solo aparecenh el nombre de las columnas y no el contenido. A que se debera esto? Muchas gracias! Saludos,