Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Constanza
Contributor II
Contributor II

QVD incremental

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 

Labels (1)
4 Replies
QFabian
Specialist III
Specialist III

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!

QFabian
Constanza
Contributor II
Contributor II
Author

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);

Constanza
Contributor II
Contributor II
Author

Sabes como se puede solucionar? @QFabian  O simplemente al tomarlo de la variable no se puede? 

QFabian
Specialist III
Specialist III

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

 

https://help.qlik.com/pt-BR/sense/August2021/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptContro...

 

QFabian