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 :

Parcours de toutes les lignes avant continuer traitement


Sujet :

Développement de jobs

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Points : 16
    Points
    16
    Par défaut Parcours de toutes les lignes avant continuer traitement
    Bonjour,

    Je souhaiterai faire un traitement particulier lors d'une TMAP

    Format d'entrée du job :

    - N° Facture
    - Tarif Element Facture
    - Total Facture

    Je souhaiterai que toutes les lignes en sortie de mon job contienne le total par facture (Somme des elements).

    J'ai essayé de mettre le total de chaque facture dans la globalmap (clé "n°facture"). Cela fonctionne grâce a un Tjavarow mais j'ai un problème pour affecter le total a chaque ligne. Il faudrait que toutes les lignes soient traitées dans mon tjavarow avant de faire l'affectation du total pour chaque ligne.

    Connaissez vous un moyen pour spécifier que toutes les lignes doivent être traitées avant de passer à l'objet suivant ?
    Ou avez vous un autre fonctionnement à me conseiller pour mon résultat.

    Merci de votre aide.

  2. #2
    Membre actif
    Profil pro
    Gestionnaire de données
    Inscrit en
    Mars 2006
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestionnaire de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 356
    Points : 248
    Points
    248
    Par défaut
    Est-ce que vous pourriez mettre un exemple pour le fichier d'entrée et un pour le fichier de sortie ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    Bonjour,

    Voici un exemple en entrée :

    N° Facture,ElementFacture,MontantTotal
    12;20;0
    12;30;0
    12;50;0
    13;20;0
    13;20;0


    Fichier attendu en sortie :

    N° Facture,ElementFacture,MontantTotal
    12;20;100 100 etant la somme de 20+30+50
    12;30;100
    12;50;100
    13;20;40 40 etant la somme de 20+20
    13;20;40

    Avez vous une solution à me proposer ?

    Merci

  4. #4
    Membre actif
    Profil pro
    Gestionnaire de données
    Inscrit en
    Mars 2006
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestionnaire de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 356
    Points : 248
    Points
    248
    Par défaut
    en entrée : est-ce un fichier texte , du xls , ou une table sql ?
    même question pour la sortie

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    mes données viennent d'un sous job et la sortie sera un tbufferoutput

  6. #6
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2010
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 343
    Points : 653
    Points
    653
    Par défaut
    Bonjour,

    Avec talend, il faut le faire en 2 fois :

    Premiere etape pour faire l’agrégation :

    tFileInput -- main -> tAgreggateRow -- main -> vers le lookup etape 2.

    Dnas le tagregateRow, il faut utilsé le numero de facture comme clef et la fonction somme pour le resultat

    2eme etape pour valoriser chaque factures :

    le Resultat de l'etape 1 en lookup du tMap

    tFileInput -- main -> tMap -> tFileOuput

    pour chaque enregistrement, il faut faire la jointure sur le numero de facture pour valorisé la somme total

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    Le problème est que mes rows proviennent d'un sousjob est donc je ne peux pas rejouer 2 fois le traitement.

  8. #8
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2010
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 343
    Points : 653
    Points
    653
    Par défaut
    Tu peux sauvegarder temporairement le résultat de ton subjob dans un thashOutput et relire 2 fois le contenu avec un 2 tHashInput

  9. #9
    Membre actif
    Profil pro
    Gestionnaire de données
    Inscrit en
    Mars 2006
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestionnaire de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 356
    Points : 248
    Points
    248
    Par défaut
    La seule 1ère étape (tAgreggateRow) ne suffit pas ?

  10. #10
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2010
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 343
    Points : 653
    Points
    653
    Par défaut
    @jeanphi45 :

    On ne connait pas la somme total par numero de facture, avant de l'avoir calculer. Il faut donc bien faire une agregation puis utiliser le resultat pour valoriser le reste des lignes.

  11. #11
    Membre actif
    Profil pro
    Gestionnaire de données
    Inscrit en
    Mars 2006
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestionnaire de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 356
    Points : 248
    Points
    248
    Par défaut
    ah oui , j'avais oublié qu'il fallait répéter le total pour chaque ligne

Discussions similaires

  1. Réponses: 5
    Dernier message: 25/07/2013, 11h05
  2. Fusionner toutes les lignes d'un fichier
    Par _Mac_ dans le forum Linux
    Réponses: 2
    Dernier message: 02/12/2005, 14h18
  3. Supprimer toutes les lignes et colonnes d'un tableau
    Par pekka77 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/12/2005, 11h26
  4. Réponses: 1
    Dernier message: 29/11/2005, 00h37
  5. Réponses: 4
    Dernier message: 11/10/2005, 15h03

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