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