2016/02/01

SSIS, GENERANDO ARCHIVOS CON NOMBRES DINAMICOS

PROBLEMA:
Requerimos generar un archivo desde SSIS donde depositaremos nuestros datos y que el nombre de dicho archivo cambie de acuerdo a la fecha en la cual fue generado, sin embargo el Flat File Connection Manager necesita del archivo para poder realizar la conexión y tener listo las columnas, los tipos de datos, su longitud entre otras cosas, para poder utilizarla como un destino, que puedo hacer?

SOLUCION:
Necesitamos crear una variable la cual asignaremos una expresión para introducirla a la configuración de un Flat File Connection Manager, les explico como realizar esto, primero es necesario notar que para crear un Flat File Connection Manager este requiere el nombre del archivo, pero el nombre del archivo lo desconocemos por lo tanto, que es lo que tenemos que hacer si el nombre del archivo se generará dinámicamente?

Debemos crear un archivo y después,  abrirlo en el Flat File Connection Manager:

Ahora necesitamos crear una variable de tipo STRING que almacenara el nombre dinámico del archivo que se generará.

La expresion es la siguiente:

"C:\\SSIS\\nombreArchivoDinamico\\archivoPruebaConFormatoFechaYYYYMMDDHHMMSS" + (DT_WSTR,4)YEAR(GETDATE()) 
    + RIGHT("0" + (DT_WSTR,2)MONTH(GETDATE()), 2)
    + RIGHT("0" + (DT_WSTR,2)DAY( GETDATE()), 2) 
    + RIGHT("0" + (DT_WSTR,2)DATEPART("hh", GETDATE()), 2) 
    + RIGHT("0" + (DT_WSTR,2)DATEPART("mi", GETDATE()), 2)
    + RIGHT("0" + (DT_WSTR,2)DATEPART("ss", GETDATE()), 2)
+ ".txt"

Establecemos la propiedad DelayValidation a True

Ahora es necesario asignar nuestra variable a la propiedad ConnectionString de nuestra conexión al archivo.

Creamos una fuente de datos ficticia, puede ser un archivo, una consulta, etc,  para el ejemplo utilizaré un archivo:
Lo abrimos desde un Flat File Connection Manager, el cual nombraremos archivoFuente

Ahora es necesario generar un Data Flow Task que nos permita hacer la carga desde el archivo fuente a nuestro archivo destino, veamos como hacerlo:






Con esto ya podemos generar archivo con nombres dinámicos, la clave de todo esto se encuentra en la correcta asignación del nombre en la variable así como designar la propiedad ConnectionString que recibirá su contenido precisamente de esta variable, después les explicaré como generar archivo XLSx con nombres dinámicos.

Espero que les sirva.

SALUDOS!
COMPARTE ESTA INFORMACION SI TE PARECIO INTERESANTE

0 comentarios:

Publicar un comentario