Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola!
tengo un archivo txt al cual le quiero agregar la fecha a partir de la fecha del archivo (FileTime())
el tema es que luego esta variable la quiero usar para que sea mi guia en la creacion de un QVD incremental, pero cuando lo aplico, de igual forma me está leyendo los archivos ya leidos y alamacenados en mi qvd y creo que no me funciona porque la fecha viene desde una variable.
¿Cómo puedo hacer para usar esa fecha en mi Where?
agradezo sus sugerencias y comentarios.
saludos Constanza
#qvd #incremental @QFabian
Hola @Constanza !, se me ocurre este ejemplo, avísame si es lo que andas buscando o vamos ajustándolo.
DataNew:
LOAD
FileTime() as FileDate,
field1,
field2,
field3
FROM [..\datanew.txt] (txt, codepage is 28591, embedded labels, delimiter is ',', msq);
let v_Date = date(peek('FileDate', 1, 'Data'),'DDMMYYYY');
Data:
LOAD
Date,
field1,
field2,
field3
FROM [YOUR QVD] (qvd)
Where
Date < $(v_Date);
saludos!
Hola @QFabian gracias, pero mira creo que no es lo mismo, pls me corriges si estoy mal.
Creo que es la variable la que no me sirve, porque cuando la fecha está dentro del archivo el qvd incremental me funciona perfecto. Gracias por las sugerencias!
mi codigo era mas o menos así:
++creé mi QVD original para que a partir de este vaya almacenando++ luego de crear el qvd, este es el código:
Table_MaxDate:
LOAD
max([9312 Date WVF]) as MaxDate
FROM [9312.qvd](qvd);
Let vMaxDate = Date(Peek ('MaxDate',0,'Table_MaxDate'));
drop table Table_MaxDate;
Incremental_9312:
Load
trim(TRCD) as [9312 TRCD],
trim(SSG) as [9312 SSG],
trim(SSY) as [9312 SSY],
Date(FileTime()) as [9312 Date WVF]
FROM [9312\archivo*.txt] (txt, codepage is 28591, embedded labels, delimiter is ';', msq)
Where Date(FileTime())> $(vMaxDate);
Concatenate
LOAD [9312 TRCD],
[9312 SSG],
[9312 SSY],
[9312 Date WVF]
FROM [9312.qvd](qvd);
Store Incremental_9312 into 9312.qvd(qvd);
Sabes como se puede solucionar? @QFabian O simplemente al tomarlo de la variable no se puede?
Hola @Constanza , puede ser que tengas que llevar la lectura masiva '*', a un ciclo for controlado, y de esa manera el where será con el Date(FileTime()) por archivo, algo así :
for each File in filelist (ruta\9312\*.txt)
Incremental_9312:
Load
trim(TRCD) as [9312 TRCD],
trim(SSG) as [9312 SSG],
trim(SSY) as [9312 SSY],
Date(FileTime( '$(File)' )) as [9312 Date WVF]
FROM [9312\'$(File)'] (txt, codepage is 28591, embedded labels, delimiter is ';', msq)
Where
Date(FileTime( '$(File)' ))> $(vMaxDate);
next File