Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
gadje1
Creator
Creator

retrieve caption in a field based on the value of another field

Hi everybody,

I need to retrieve caption based on an other field value.

My job is like this :

0695b00000EbOfDAAV.jpg

My tMap and my expression test :

0695b00000EbOfNAAV.jpg

My csv file with the selling plan :

0695b00000EbOhUAAV.jpg

I need to catch "Bois" instead "A", "LAMES TERRASSE" instead "A;A45", "TERRASSE BOIS EXOTIQUES" instead "A;A45;110" ...

Here is my output result :

0695b00000EbOkXAAV.jpg

In A' i should catch "BOIS", in 2' "LAMES TERRASSE", in 3' "TERRASSE BOIS EXOTIQUES", in 4' "TERRASSE CUMARU";

But in my output result i catch everytime the same value as show above.

If somebody have any idea ...

Thanks.

Labels (2)
1 Solution

Accepted Solutions
gjeremy1617088143

en fait vous voudriez par exemple :

BOIS, LAMES TERRASSE,TERRASSE BOIS EXOTIQUE, TERRASSE CUMARU. pour AA45110100.

soit il faut le faire en 4 fois, une jointure par champs, ex 1ere jointure Activite, puis un nouveaux tmap jointure sur activité + FAMILLE etc.

Ou alors il faut créér un dictionnaire de clé valeur : A : bois ,AA45 LAME TERASSE , AA45110 : TERRASSE BOIS EXOTIQUE etc le stocker dans des variables globales puis pour chaque champs du output (String)globalMap.get("(la valeur des champs concatenés ex A ou AA45)").

View solution in original post

7 Replies
gjeremy1617088143

Bonjour,

la jointure ne se fait que sur l'activité alors qu'il faut prendre en compte aussi la famille sous famille etc, il faudrait dabord agreger toutes ces données.

faire une petite fonction qui concatene toutes ces chaines (ACTIVITE, FAMILLE,SOUS FAMILLE ETC pour en faire une clé unique.

Bien à vous

 

gadje1
Creator
Creator
Author

Bonjour et merci de votre retour,

J'ai déjà des jointures sur tous les champs du plan de vente dans mon tMap. Faites vous référence à mon expression ?

J'ai fait une expression pour chaque niveau de mon plan de vente mais n'ai associé que la variable "LIB_ACTIVITE" au schéma de sortie le temps d'un test. Si ma sortie n'est pas la bonne inutile de le faire pour les autres sorties des autres niveaux du plan de vente.

Par contre, je ne vois pas pourquoi agréger les champs de chaque ligne du plan de vente ?

A moins que ce soit pour splitter les lignes et en indiquant les bons index ?

 

gjeremy1617088143

en fait vous voudriez par exemple :

BOIS, LAMES TERRASSE,TERRASSE BOIS EXOTIQUE, TERRASSE CUMARU. pour AA45110100.

soit il faut le faire en 4 fois, une jointure par champs, ex 1ere jointure Activite, puis un nouveaux tmap jointure sur activité + FAMILLE etc.

Ou alors il faut créér un dictionnaire de clé valeur : A : bois ,AA45 LAME TERASSE , AA45110 : TERRASSE BOIS EXOTIQUE etc le stocker dans des variables globales puis pour chaque champs du output (String)globalMap.get("(la valeur des champs concatenés ex A ou AA45)").

gjeremy1617088143

pour la première solution l’idéal c'est de stocker filepvt2 dans un hash ou buffer via les composant tHash ou tBuffer, pour pouvoir faire appel au jeux de donnée a chaque fois et utiliser des tJoin plutot que des tMap qui sont beaucoup plus legers afin de les enchainer sans trop impacter les ressources de la jvm.

gadje1
Creator
Creator
Author

Ok, je regarde ça et je reviens vous dire ce qu'il en est. Merci de votre retour.

gadje1
Creator
Creator
Author

Bon, j'ai finalement opté pour plusieurs requêtes sql, tout est ok.

Merci.

Anonymous
Not applicable

Hello,

Sorry for our silence and great this issue is fixed.

As this is an international forum and English is the language we use, it is highly appreciated if you could post question and answer in English.

Thanks for your understanding!

Best regards

Sabrina