Bonjour à tous,
Je travaille sur un job Talend mais je stagne sur un point particulier (novice oblige). J'espère pouvoir obtenir un peu d'aide pour me débloquer.
J'ai un fichier CSV qui possède une liste de demandes (chaque ligne représente une demande). A chaque demande, il peut y avoir zéro ou un contributeur. Il peut y avoir plusieurs demandes pour un même contributeur.
Le traitement que je souhaite faire est le suivant. A partir de ce fichier CSV, je souhaite récupérer pour chaque contributeur la liste des demandes qu'il a faite pour ensuite lui envoyer par mail (pour l'instant je souhaite simplement l'afficher dans la console).
Pour illustrer tout ça par rapport à mon fichier ci-dessus :
- ZAL aurait reçu un mail avec 2 demandes
- PAM un mail avec une demande
Si je devais schématiser :
[Fichier CSV] ---- pour chaque contributeur ----> [Liste de toutes ses demandes] ----> [Mail avec sa liste dans le corps du mail]
Mon problème est le suivant : je n'arrive pas à faire la boucle qui me permettrait pour chaque contributeur d'avoir sa liste de demandes (pour ensuite lui envoyer un mail avec cette liste générée).
Voici ce que j'ai essayé mais cela ne marche pas complètement :
- tFilterRow_Contributeurs : enlève les lignes où il n'y a pas de contributeurs associés (colonne contributeur vide)
- tUniqRow_Contributeurs : obtient la liste des contributeurs sans doublons (par exemple un contributeur qui a fait deux demandes sera présent une seule fois dans la liste)
- tFlowToIterate_1 : permet de parcourir la liste précédente ligne par ligne
- tFixedFlowInput_1 : ne pouvant connecter le tFlowToIterate_1 directement sur le tMap, je passe par un tFixedFlowInput qui me communique la liste des contributeurs
- ListeDemande : contient toutes les demandes
- tMap_1 : me permet de lier les demandes aux contributeurs grâce au filtre sur la sortie du tMap row4.contributeur.equals(row5.contributeur)
- tLogRow = affiche le résultat
Mon tLogRow n'affiche qu'un seul résultat des contributeurs. J'ai l'impression que mon tMap a cassé le lien Iterate et fait que mon job s'arrête dès la première opération (liste des demandes d'un contributeur) alors qu'il devrait le faire pour les autres.
Voici le résultat en console :
Alors qu'il devrait m'afficher :Envoyé par résultat actuel
Notez que si j'enlève la ligne avec comme contributeur "PAM", j'obtiens le résultant suivant :Envoyé par résultat souhaité
Toute aide est la bienvenue. Merci.P1|OK|ART|ANI|ZAL|ZAL
P3|OK|LUI|ANI|ZAL|ZAL
Partager