Bonjour,
J'ai un fichier csv en entrée que je souhaite filtrer avec le composant tFilterRow.
Je souhaite utiliser le mode avancé de mon tFilterRow, c'est-à-dire, écrire en toutes lettres l'expression du filtre comme ceci :
Mon problème est le suivant : dans l'expression de mon filtre, le nom du champ "monchamp" n'est pas connu d'avance et il doit être calculé à la volée et en amont de mon composant tFilterRow. Pour cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part input.row.monchamp.equals("mavaleur")...
1. Je récupère le nom du champ sur lequel je souhaite appliquer le filtre, ici, il s'agit de monchamp (monchamp est forcément présent dans le schéma du fichier à lire en entrée)
2. Je génère l'expression de mon filtre en toutes lettres : input.row.monchamp.equals("mavaleur")
3. Je stocke l'expression de mon filtre dans une variable tSetGlobalVar
4. Je saisis dans mon composant tFilterRow ceci
Talend en veut rien savoir et il me dit qu'il ne peut pas convertir un string en boolean.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ((String)globalMap.get("mon_expression_filtre"))
Je m'attendais tout simplement à ce qu'il substitue
en
Code : Sélectionner tout - Visualiser dans une fenêtre à part ((String)globalMap.get("mon_expression_filtre"))mais visiblement, cela ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part input.row.monchamp.equals("mavaleur")
Auriez-vous une idée svp ?
Merci pour votre aide.
Merci
Partager