Lectura de Archivos de Texto con DTSx Package

19/02/2009 - 18:49 por Jose Luis Cocha | Informe spam
Tengo una aplicación que genera un archivo de texto cada hora. Ejemplo
TXT200902120500.TXT y a la hora siguiente genera TXT200902120600.TXT tengo
un DTSx con Integration services de SQL 2005 que me hace la carga y
depuración de la información, pero no se como hacer que mi fuentes de
información sean variables para que así a cada hora que se ejecute mi
proceso cambie el nombre de archivo de origen para el input del Package
DTSx.

Saludos y Gracias

José Luis Cocha
Lima Perú

Preguntas similare

Leer las respuestas

#1 Rubén Garrigós
20/02/2009 - 07:40 | Informe spam
Puedes utilizar una expresión que te modifique la propiedad del nombre del
fichero en cuestion en función de la hora actual de ejecución. Las distintas
partes de la fecha que necesites las puedes extraer utilizando la función
DATEPART de SSIS.

Rubén Garrigós
Solid Quality Mentors

"Jose Luis Cocha" wrote in message
news:
Tengo una aplicación que genera un archivo de texto cada hora. Ejemplo
TXT200902120500.TXT y a la hora siguiente genera TXT200902120600.TXT
tengo un DTSx con Integration services de SQL 2005 que me hace la carga y
depuración de la información, pero no se como hacer que mi fuentes de
información sean variables para que así a cada hora que se ejecute mi
proceso cambie el nombre de archivo de origen para el input del Package
DTSx.

Saludos y Gracias

José Luis Cocha
Lima Perú


Respuesta Responder a este mensaje
#2 Jose Luis Cocha
21/02/2009 - 19:45 | Informe spam
El problema es que en donde se añaden expresiones el código que acepta es
muy limitado y no me deja hacer bifurcaciones if else, como podría en esa
propiedad colocar una función personalizada.

Saludos

José Luis Cocha
Lima Perú


"Rubén Garrigós" escribió en el mensaje de
noticias:
Puedes utilizar una expresión que te modifique la propiedad del nombre del
fichero en cuestion en función de la hora actual de ejecución. Las
distintas partes de la fecha que necesites las puedes extraer utilizando
la función DATEPART de SSIS.

Rubén Garrigós
Solid Quality Mentors

"Jose Luis Cocha" wrote in message
news:
Tengo una aplicación que genera un archivo de texto cada hora. Ejemplo
TXT200902120500.TXT y a la hora siguiente genera TXT200902120600.TXT
tengo un DTSx con Integration services de SQL 2005 que me hace la carga y
depuración de la información, pero no se como hacer que mi fuentes de
información sean variables para que así a cada hora que se ejecute mi
proceso cambie el nombre de archivo de origen para el input del Package
DTSx.

Saludos y Gracias

José Luis Cocha
Lima Perú





Respuesta Responder a este mensaje
#3 Jose Mariano Alvarez
23/02/2009 - 03:07 | Informe spam
Debes trabajar en la solapa de control de tu paquete DTSX.
Tienes el FOREACH para procesar los archivos de una carpeta.
Puedes usar variables para asignar el nombre y luego al final mover el
archivo a otro lugar para que no lo vuelva a encontrar por ejemplo

Looping over files with the Foreach Loop
http://www.sqlis.com/post/Looping-o...-Loop.aspx



Saludos


Ing. Jose Mariano Alvarez
SQLTotal Consulting

(Cambia los ceros por O y saca lo que sobra)

Este mensaje se proporciona tal como es, SIN GARANTIAS de ninguna clase. Por
favor tratar de indicar la versión de SQL y Service Pack. La inclusión de
(CREATE, INSERTS, etc.) para poder reproducir el problema también ayuda.










"Jose Luis Cocha" wrote in message
news:
El problema es que en donde se añaden expresiones el código que acepta es
muy limitado y no me deja hacer bifurcaciones if else, como podría en esa
propiedad colocar una función personalizada.

Saludos

José Luis Cocha
Lima Perú


"Rubén Garrigós" escribió en el mensaje de
noticias:
Puedes utilizar una expresión que te modifique la propiedad del nombre
del fichero en cuestion en función de la hora actual de ejecución. Las
distintas partes de la fecha que necesites las puedes extraer utilizando
la función DATEPART de SSIS.

Rubén Garrigós
Solid Quality Mentors

"Jose Luis Cocha" wrote in message
news:
Tengo una aplicación que genera un archivo de texto cada hora. Ejemplo
TXT200902120500.TXT y a la hora siguiente genera TXT200902120600.TXT
tengo un DTSx con Integration services de SQL 2005 que me hace la carga
y depuración de la información, pero no se como hacer que mi fuentes de
información sean variables para que así a cada hora que se ejecute mi
proceso cambie el nombre de archivo de origen para el input del Package
DTSx.

Saludos y Gracias

José Luis Cocha
Lima Perú





Respuesta Responder a este mensaje
#4 Jose Luis Cocha
25/02/2009 - 16:41 | Informe spam
El Foreach es excelente pero solo me funcionaria para leer archivos en
secuencia yo necesito generar el nombre de acuerdo a la fecha y hora de
proceso
También necesito verificar si el archivo existe antes de leerlo. Es decir si
son las 10am mi proceso deberá leer el archivo TXT2009022509.LOG siempre y
cuando este exista; así sucesivamente las 24 horas del día.

Saludos y Gracias

José Luis Cocha
Lima Perú


"Jose Mariano Alvarez"
escribió en el
mensaje de noticias:
Debes trabajar en la solapa de control de tu paquete DTSX.
Tienes el FOREACH para procesar los archivos de una carpeta.
Puedes usar variables para asignar el nombre y luego al final mover el
archivo a otro lugar para que no lo vuelva a encontrar por ejemplo

Looping over files with the Foreach Loop
http://www.sqlis.com/post/Looping-o...-Loop.aspx



Saludos


Ing. Jose Mariano Alvarez
SQLTotal Consulting

(Cambia los ceros por O y saca lo que sobra)

Este mensaje se proporciona tal como es, SIN GARANTIAS de ninguna clase.
Por favor tratar de indicar la versión de SQL y Service Pack. La inclusión
de (CREATE, INSERTS, etc.) para poder reproducir el problema también
ayuda.










"Jose Luis Cocha" wrote in message
news:
El problema es que en donde se añaden expresiones el código que acepta es
muy limitado y no me deja hacer bifurcaciones if else, como podría en esa
propiedad colocar una función personalizada.

Saludos

José Luis Cocha
Lima Perú


"Rubén Garrigós" escribió en el mensaje de
noticias:
Puedes utilizar una expresión que te modifique la propiedad del nombre
del fichero en cuestion en función de la hora actual de ejecución. Las
distintas partes de la fecha que necesites las puedes extraer utilizando
la función DATEPART de SSIS.

Rubén Garrigós
Solid Quality Mentors

"Jose Luis Cocha" wrote in message
news:
Tengo una aplicación que genera un archivo de texto cada hora. Ejemplo
TXT200902120500.TXT y a la hora siguiente genera TXT200902120600.TXT
tengo un DTSx con Integration services de SQL 2005 que me hace la carga
y depuración de la información, pero no se como hacer que mi fuentes de
información sean variables para que así a cada hora que se ejecute mi
proceso cambie el nombre de archivo de origen para el input del Package
DTSx.

Saludos y Gracias

José Luis Cocha
Lima Perú





Respuesta Responder a este mensaje
#5 Jose Mariano Alvarez
27/02/2009 - 13:32 | Informe spam
La experiencia de años de procesar CDR de centrales telefonicas me dice que

1- Si no tienes archivo de control con metadata del archivo de datos que
garantice la completitud del archivo, la sola eistencia del archivo de
datos, no es garantia de la integridad del archivo, sobre todo si usas FTP.

2- Puedes usar el foreach perfectamente mientras al final de tu cadena de
proceso muevas el archivo a otro lugar asi no lo vuelves a procesar o llevas
una tabla de control de archivos y verificas alli si lo procesaste.

Si lo que precisas es en lugar de procesasr, es generar los archivos, puedes
utilizar las variables del SSIS y el script task para generar ese nombre.

Debes modificar las propiedades del conection string en tiempo de ejecucion.


Saludos


Ing. Jose Mariano Alvarez
Microsoft MVP
SQLTotal Consulting

(Cambia los ceros por O y saca lo que sobra)

Este mensaje se proporciona tal como es, SIN GARANTIAS de ninguna clase. Por
favor tratar de indicar la versión de SQL y Service Pack. La inclusión de
(CREATE, INSERTS, etc.) para poder reproducir el problema también ayuda.










"Jose Luis Cocha" wrote in message
news:
El Foreach es excelente pero solo me funcionaria para leer archivos en
secuencia yo necesito generar el nombre de acuerdo a la fecha y hora de
proceso
También necesito verificar si el archivo existe antes de leerlo. Es decir
si son las 10am mi proceso deberá leer el archivo TXT2009022509.LOG
siempre y cuando este exista; así sucesivamente las 24 horas del día.

Saludos y Gracias

José Luis Cocha
Lima Perú


"Jose Mariano Alvarez"
escribió en el
mensaje de noticias:
Debes trabajar en la solapa de control de tu paquete DTSX.
Tienes el FOREACH para procesar los archivos de una carpeta.
Puedes usar variables para asignar el nombre y luego al final mover el
archivo a otro lugar para que no lo vuelva a encontrar por ejemplo

Looping over files with the Foreach Loop
http://www.sqlis.com/post/Looping-o...-Loop.aspx



Saludos


Ing. Jose Mariano Alvarez
SQLTotal Consulting

(Cambia los ceros por O y saca lo que sobra)

Este mensaje se proporciona tal como es, SIN GARANTIAS de ninguna clase.
Por favor tratar de indicar la versión de SQL y Service Pack. La
inclusión de (CREATE, INSERTS, etc.) para poder reproducir el problema
también ayuda.










"Jose Luis Cocha" wrote in message
news:
El problema es que en donde se añaden expresiones el código que acepta
es muy limitado y no me deja hacer bifurcaciones if else, como podría en
esa propiedad colocar una función personalizada.

Saludos

José Luis Cocha
Lima Perú


"Rubén Garrigós" escribió en el mensaje de
noticias:
Puedes utilizar una expresión que te modifique la propiedad del nombre
del fichero en cuestion en función de la hora actual de ejecución. Las
distintas partes de la fecha que necesites las puedes extraer
utilizando la función DATEPART de SSIS.

Rubén Garrigós
Solid Quality Mentors

"Jose Luis Cocha" wrote in message
news:
Tengo una aplicación que genera un archivo de texto cada hora. Ejemplo
TXT200902120500.TXT y a la hora siguiente genera TXT200902120600.TXT
tengo un DTSx con Integration services de SQL 2005 que me hace la
carga y depuración de la información, pero no se como hacer que mi
fuentes de información sean variables para que así a cada hora que se
ejecute mi proceso cambie el nombre de archivo de origen para el input
del Package DTSx.

Saludos y Gracias

José Luis Cocha
Lima Perú





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida