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 :

output delimited sur pluiseurs lignes par Tmap


Sujet :

Développement de jobs

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 27
    Points : 8
    Points
    8
    Par défaut output delimited sur pluiseurs lignes par Tmap
    Bonjour,

    Déjà pour commencer je tiens à précisez que ça ne fait que quelques jours que je travail sur Talend OS.
    Je doit générer un fichier CSV avec plusieurs lignes (de 2 à n) par "enregistrements" provenant d'une BDD.

    Ex de résultat attendu :

    // Premier enregistrement
    code ligne E;prenom 1;nom 1 ...
    code ligne B; adresse 1;tel 1 ...
    code ligne R;rib 1 ...
    code ligne R;rib 2 ...
    // Deuxième enregistrement
    code ligne E;prenom 1;nom 1 ...
    code ligne B; adresse 1;tel 1 ...
    code ligne R;rib 1 ...
    ETC
    Chaque ligne n'est pas forcement obligatoire et chaque code ligne peux revenir plusieurs fois comme le RIB dans mon exemple.

    Mon premier problème c'est qu'avec le composant Tmap en sortie je génère qu'une ligne et pas plusieurs à la fois.
    Mon second problème c'est que je ne sais pas comment gérer le fait qu'il peux y avoir plusieurs RIB (c'est un ex), pour le moment je n'en génère qu'un.

    Voici ce que je génère facilement pour le moment:

    // Premier enregistrement
    code ligne E;prenom 1;nom 1;code ligne B; adresse 1;tel 1;code ligne R;rib 1
    // Deuxième enregistrement
    code ligne E;prenom 1;nom 1;code ligne B; adresse 1;tel 1;code ligne R;rib 1
    ETC

    Vous est il possible de m’aiguiller un petit peu sur mon problème ?
    Merci d'avance

  2. #2
    Membre chevronné

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Points : 1 894
    Points
    1 894
    Par défaut
    Bonjour,

    commençons par le début

    Quelles sont les données à ta disposition au niveau de la base de données ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 27
    Points : 8
    Points
    8
    Par défaut
    J'ai des données venant de plusieurs table (mssql) :
    Entreprise
    rib
    adresse

    j'ai relier tout ça par un tMap.
    Mais déjà je n'ai rattaché qu'un seul rib par entreprise alors qu'il peux y en avoir plusieurs ou aucun.
    Pour les adresse par exemple s'est fixe donc pas de soucis.

  4. #4
    Membre chevronné

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Points : 1 894
    Points
    1 894
    Par défaut
    Ca manque toujours de précision, mais as-tu essayé en configurant ton lookup au niveau du tMap pour qu'il prenne "Toutes les correspondances" ?

    Voir ici pour un exemple concret.

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 27
    Points : 8
    Points
    8
    Par défaut
    Merci pour le lien j'ai compris le concept et avance déjà un peu plus.

  6. #6
    Membre averti

    Homme Profil pro
    informatique
    Inscrit en
    Avril 2013
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 280
    Points : 406
    Points
    406
    Billets dans le blog
    1
    Par défaut JOINTURE ENTRE LES TABLES
    tu pourras aussi penser d'abord à une jointure entre tes 3 tables.ensuite lier les elements que tu veux en sortir de ta map à ton out(sortir de map) je pense.

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 27
    Points : 8
    Points
    8
    Par défaut
    Merci, c'est ce que j'ai fait
    J'avance petit à petit

  8. #8
    Futur Membre du Club
    Inscrit en
    Juillet 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 27
    Points : 8
    Points
    8
    Par défaut
    Alors voici ou j'en suis.
    Pour chaque enregistrement j'arrive à générer plusieurs ligne grâce au paramètres (match model, toutes les correspondances) dans Tmap.
    J'ai donc ceci :

    // Premier enregistrement
    code ligne E;prenom 1;nom 1;code ligne B; adresse 1;tel 1;code ligne R;rib 1
    code ligne E;prenom 1;nom 1;code ligne B; adresse 1;tel 1;code ligne R;rib 2
    // Deuxième enregistrement
    code ligne E;prenom 1;nom 1;code ligne B; adresse 1;tel 1;code ligne R;rib 1

    Jusque là merci encore de votre aide
    L'étape suivante c'est celle ci :

    // Premier enregistrement
    code ligne E;prenom 1;nom 1 ...
    code ligne B; adresse 1;tel 1 ...
    code ligne R;rib 1 ...
    code ligne R;rib 2 ...
    // Deuxième enregistrement
    code ligne E;prenom 1;nom 1 ...
    code ligne B; adresse 1;tel 1 ...
    code ligne R;rib 1 ...

  9. #9
    Membre averti

    Homme Profil pro
    informatique
    Inscrit en
    Avril 2013
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 280
    Points : 406
    Points
    406
    Billets dans le blog
    1
    Par défaut utiliser un tdenormalizer
    utilise un tdenormalizer en regroupant sur la ligne et c'est ok je pense

  10. #10
    Futur Membre du Club
    Inscrit en
    Juillet 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 27
    Points : 8
    Points
    8
    Par défaut
    Si j'ai bien compris :
    Ton idée est de regroupé un enregistrement par ligne avec tdenormalize ?

  11. #11
    Membre averti

    Homme Profil pro
    informatique
    Inscrit en
    Avril 2013
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 280
    Points : 406
    Points
    406
    Billets dans le blog
    1
    Par défaut
    ouais

  12. #12
    Futur Membre du Club
    Inscrit en
    Juillet 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 27
    Points : 8
    Points
    8
    Par défaut
    Ok et après pour découper ma ligne en plusieurs ligne ?
    J'ai vu un splitrow mais j'avoue ne pas avoir testé encore

  13. #13
    Membre averti

    Homme Profil pro
    informatique
    Inscrit en
    Avril 2013
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 280
    Points : 406
    Points
    406
    Billets dans le blog
    1
    Par défaut
    essai deja denormalizer et tu verras ce que ça donne

  14. #14
    Futur Membre du Club
    Inscrit en
    Juillet 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 27
    Points : 8
    Points
    8
    Par défaut
    J'ai ça (en gros car j'ai beaucoup plus de champs) :

    // Premier enregistrement
    code ligne E;prenom 1;nom 1;code ligne B; adresse 1;tel 1;code ligne R;rib 1,rib 2;
    // Deuxième enregistrement
    code ligne E;prenom 1;nom 1;code ligne B; adresse 1;tel 1;code ligne R;rib 1

  15. #15
    Membre averti

    Homme Profil pro
    informatique
    Inscrit en
    Avril 2013
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 280
    Points : 406
    Points
    406
    Billets dans le blog
    1
    Par défaut
    je pense qu'on ne s'est pas compris.tu dois relier dans tdenormalize à ta tmap.dans le tdenormalize, tu ajoute comme parametre la ta ligne.relie ensuite ton tdenormalize à un tflowtoiterate et par la suite à une sortie(un importe la sortie,tlogrow,tjava,tfileoutput ....)

  16. #16
    Futur Membre du Club
    Inscrit en
    Juillet 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 27
    Points : 8
    Points
    8
    Par défaut
    La du cou je suis un peu perdu.
    Il sert à quoi le tflowtoiterate ?

    Si je fait le tdenormalize avant mon tmap comment je peux faire ma jointure ?

  17. #17
    Futur Membre du Club
    Inscrit en
    Juillet 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 27
    Points : 8
    Points
    8
    Par défaut
    Voici un imprim ecran de mon job simplifié.

    Nom : job.jpg
Affichages : 181
Taille : 71,6 Ko

  18. #18
    Membre chevronné

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Points : 1 894
    Points
    1 894
    Par défaut
    Vu ton schéma, je me demande si tu n'es pas partie dans la mauvaise direction ! Ca ressemble pas mal à un tFileOutputMS* ton truc !

    Tu fais comment le lien entre tes 3 sources de données ?

  19. #19
    Membre averti

    Homme Profil pro
    informatique
    Inscrit en
    Avril 2013
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 280
    Points : 406
    Points
    406
    Billets dans le blog
    1
    Par défaut
    salut je t'ai pas dit que le tdnormalize se trouvait avant ta tmap.biensur qu'il doit se placer après.par la suite tu relie ton tdnormalize(n'oublie pas d'ajouter ton parametre lign) à 1 tflowIterate.cela permettra de parcourir toute la sortie de ta tmap.et tu pourras par la suite ajouter une sortie de recuperation des données

    tmap=>tdenormalize(avec parametre par exple la ligne)=>tflowIterate=>sortie .ça devra marcher je pense

  20. #20
    Futur Membre du Club
    Inscrit en
    Juillet 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 27
    Points : 8
    Points
    8
    Par défaut
    Alors pour répondre :
    Je lie les 3 source de donnée avec une jointure dans mon tmap.
    Je vais regarder du coté de tFileOutputMS (que je ne connais pas), merci

    Merci Pekre je vais me pencher la dessus aujourd'hui, j'ai encore un peu de mal avec le principe talend et tous ces paramètres je t'avoue, du cou il est possible que je comprenne mal ce qu'on m'explique encore.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [E-2007 sur Vista]Problème d'accès à l'aide en ligne par F1
    Par Pier3d dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 28/02/2009, 00h21
  2. Calcul ligne par ligne sur le résultat d'une requête
    Par CanardJM dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/04/2008, 13h06
  3. Réponses: 5
    Dernier message: 25/06/2007, 11h01
  4. Réponses: 2
    Dernier message: 02/05/2007, 17h08
  5. Nombre de ligne par défaut sur un Picklist
    Par ranandria dans le forum Delphi
    Réponses: 1
    Dernier message: 02/04/2007, 13h50

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