Qlik Community

QlikView Scripting

Discussion Board for collaboration on QlikView Scripting.

Not applicable

Comment déterminer le nom d'un fichier source par une variable?

Bonjour je suis nouveau sur QlikView et travaille sur mon premier projet.

Une partie des données utilisées par mon document provient de fichiers XLSX mis a jours tous les mois.

L'idée est que les utilisateurs les stockent dans un dossier dédié et que l'application parvienne a identifier le dernier fichier ajouté pour l'utiliser au chargement des données.

J'ai donc créé une boucle sur les fichiers oú v_stringFileList est une variable dont la valeur correspond à la pattern de nom de fichier a parcourir (un préfixe, un joker * et un suffixe)

filelist:
FOR each File IN filelist ('$(v_stringFileList)')

fileTable:

LOAD FileName('$(File)') as Filename,

     FileBasename() as FileBasename,

     FileExtension() as FileExtension,

     FileDir() as FileDir,

     //FilePath() as FilePath,

     FileSize('$(File)') as FileSize,

     FileTime('$(File)') as FileTime

     FROM '$(File)';

next File

Cela me stocke les informations sur les fichier a partir de quoi je détermine le fichier qui m'interesse. En l'occurence les nom de fichiers ayant une date je me base sur le nom du fichier.

SET v_lefichieraimporter = MaxString(Filename);

En mode affichage dans un bloc texte je parviens bien a récupérer le nom de fichier voulu grace a l'expression

= $(v_lefichieraimporter);

Mais dans le script de chargement des données cela ne fonctionne pas.

LOAD *

FROM

FROM [$(v_lefichieraimporter)]  // J'ai essayé pas mal de combinaisons $(=$(v_lefichieraimporter)), et d'autres plus incongrues

Quelqu'un aurait-il un conseil ? c'est frustrant de parvenir a évaluer un variable via une expression et ne pas y parvenir dans le script…

Il doit y avoir un petit truc que je n'ai pas compris...

merci de votre aide

1 Reply
Not applicable

Re: Comment déterminer le nom d'un fichier source par une variable?

J'ai mis en place une solution alternative qui consiste a récupérer le nom de mon fichier par le biais d'une table temporaire dans laquelle je recharge filetable dans l'ordre decroissant du nom de fichier puis récupère le nom de fichier de la premiere ligne avec la fonction peek().

TMP:

LOAD Filename RESIDENT fileTable ORDER BY Filename desc;

LET v_sourceFile = peek('Filename',0,'TMP');

DROP TABLE TMP;

et ça marche…

Community Browser