IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement de jobs Discussion :

Séparer une liste en plusieurs pour un traitement ultérieur


Sujet :

Développement de jobs

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Séparer une liste en plusieurs pour un traitement ultérieur
    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 :
    Citation Envoyé par résultat actuel
    P3|OK|LUI|JAL|PAM|PAM
    Alors qu'il devrait m'afficher :
    Citation Envoyé par résultat souhaité
    P3|OK|LUI|JAL|PAM|PAM
    P1|OK|ART|ANI|ZAL|ZAL
    P3|OK|LUI|ANI|ZAL|ZAL
    Notez que si j'enlève la ligne avec comme contributeur "PAM", j'obtiens le résultant suivant :
    P1|OK|ART|ANI|ZAL|ZAL
    P3|OK|LUI|ANI|ZAL|ZAL
    Toute aide est la bienvenue. Merci.

  2. #2
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut
    Voilà comment je procéderai si j'étais à ta place.
    Juste après le t_Uniq_Contibuteurs, au lieu de mettre tIterate je mettrai un tBuffetOuput.

    Après je créerai un tBufferInput que je lierai avec le premier composant "ListDemande" via un lien "OnSubJobOk".

    Ainsi le premier traitement se terminera en mettant en mémoire tampon les contributeurs uniques. Le deuxième traitement (commençant par tBufferInput) fera la jointure avec la "ListDemande" via ton tMap et affichera le résultat dans un tLogRow.

    Essai de faire cela, ça devrait faire l'affaire.
    "Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant." Mohammed le Messager d’Allah (que la paix et le salut d'Allah soient sur lui)

    Tutoriels Talend
    Mes articles publiés
    Mon CV en-ligne

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/10/2013, 15h44
  2. Dev infopath pour modifier 1 item d'une liste et plusieurs items d'une autre liste
    Par Nico2010 dans le forum Développement Sharepoint
    Réponses: 2
    Dernier message: 19/04/2012, 16h30
  3. Quel objet utiliser pour afficher une liste de plusieurs résultats
    Par jlachapelle dans le forum Windows Forms
    Réponses: 1
    Dernier message: 15/08/2008, 20h33
  4. Réponses: 1
    Dernier message: 13/06/2008, 17h24
  5. [ul/li] Séparer une liste sur plusieurs colonnes
    Par Wookai dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 22/06/2007, 14h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo