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 :

Découper un fichier XML contenant x fichiers XML à l'intérieur


Sujet :

Développement de jobs

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Points : 20
    Points
    20
    Par défaut Découper un fichier XML contenant x fichiers XML à l'intérieur
    Bonjour,

    J’expose mon problème :
    Je reçois un fichier bancaire contenant x XML.

    Nom : im2.jpg
Affichages : 605
Taille : 50,9 Ko

    1- tFileInputFullRow pour effectuer la séparation des lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
    2- tMap pour repositionner en début de ligne qui a disparu avec tFileInputfFullRow
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+  row1.line
    3- tMap pour créer une variable IBAN pour restituer uniquement les IBAN à traiter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (row2.line.length()>=550)?row2.line.substring(522, 549): "" ->Var.IBAN
    SEPA1
    "FR76XXXXXXXXXXXXXXXXXXXXX".equals(Var.IBAN)

    SEPA2
    "FR76YYYYYYYYYYYYYYYYYYYYY".equals(Var.IBAN)


    4- En sortie de mon fichier positionnel j’ai un fichier avec chaque ligne correspondant à un xml

    Nom : im1.jpg
Affichages : 591
Taille : 255,5 Ko

    J’aimerai donc créer autant de fichier en sortie que de lignes
    Avez-vous une idée pour effectuer cette transposition ?

    Je vous remercie par avance de votre aide.

  2. #2
    Membre éclairé Avatar de MythOnirie
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2012
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juin 2012
    Messages : 376
    Points : 795
    Points
    795
    Par défaut
    Bonjour,

    Avez-vous tenter de rajouter dans le nom du fichier final une séquence ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    c'est à dire ?? je ne comprend pas

  4. #4
    Membre éclairé Avatar de MythOnirie
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2012
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juin 2012
    Messages : 376
    Points : 795
    Points
    795
    Par défaut
    Au lieu d'avoir dans le nom du fichier de sortie :
    "cheminrepretoire/monfichier.xml"
    Essayer quelque chose comme ça :
    "cheminrepretoire/monfichier_"+Numeric.sequence("s1",1,1)+".xml"

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    non ça ne fonctionne pas, le fichier en sortie comporte toujours tous les XML.

  6. #6
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 795
    Points : 1 685
    Points
    1 685
    Par défaut
    Bonjour everyBody,

    Je m'incruste dans la discussion !

    Pour avoir une sortie dans un nombre de ficher indéterminés il faut un enchaînement avec un flux iterate.

    a partir du tMap3 l'enchainement doit être le suivant :

    tMap3 -(main : sepa)-> tFlowToIterate -(iterate)-> tFixedFlowInput -(main)-> composant output.


    La sortie de sepa doit avoir une colonne de sortie par le nom de fichier comme indiqué par MythOnirie.

    le schema du tFixedFlowInput doit être le même que la sortie du tMap auquel au supprime le nom du fichier
    X = sepa.X
    Y = sepa.Y

    Ton composant de sortie le nom du fichier doit être sepa.nomDuFichier
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    Bonjour supergeoffrey,

    Merci pour tes précisions.
    En appliquant l'enchaînement que tu as décrit :

    tMap3 -(main : sepa)-> tFlowToIterate -(iterate)-> tFixedFlowInput -(main)-> composant output ("cheminrepretoire/monfichier_"+Numeric.sequence("s1",1,1)+".xml").

    J'ai bien plusieurs fichiers en sortie mais je n'ai plus de données à l'intérieur.
    Je véhicule la donnée jusqu'au tFlowToIterate puis je la perd après.
    Peut tu m'aider pour paramétrer le tFixedFlowInput car je ne l'ai jamais utiliser auparavant.
    Images attachées Images attachées  

  8. #8
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 795
    Points : 1 685
    Points
    1 685
    Par défaut
    Citation Envoyé par liner77 Voir le message
    Bonjour supergeoffrey,

    Merci pour tes précisions.
    En appliquant l'enchaînement que tu as décrit :

    tMap3 -(main : sepa)-> tFlowToIterate -(iterate)-> tFixedFlowInput -(main)-> composant output ("cheminrepretoire/monfichier_"+Numeric.sequence("s1",1,1)+".xml").

    J'ai bien plusieurs fichiers en sortie mais je n'ai plus de données à l'intérieur.
    Je véhicule la donnée jusqu'au tFlowToIterate puis je la perd après.
    Peut tu m'aider pour paramétrer le tFixedFlowInput car je ne l'ai jamais utiliser auparavant.
    ok le tFixedFlowInput est un input hardcodé.
    Tu édites ton schema, ça doit être le même que la sortie du tMap (qu'on appelle sepa dans cette exemple).
    Tu gardes 1 ligne, et une table seul. (Car on veut qu'un seul résultat)
    Tu vas avoir des colonnes qui s'ajoutent il faut que tu remplisses les valeurs.

    Si tu colonne se nomme A ta valeur sera sepa.A ...
    En fait tu as encore accès à la sortie de ton tMap à cet endroit.

    Pour que tu comprennes la différence entre un flow main et un flow iterate
    https://help.talend.com/reader/By3Z2...uBhDfYTnrkb6BQ
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

Discussions similaires

  1. Parser un fichier XML contenant des accents
    Par Shadew dans le forum Général Python
    Réponses: 4
    Dernier message: 17/06/2015, 18h27
  2. [XML] Passer un fichier CSV en un fichier XML
    Par stardeus dans le forum APIs
    Réponses: 3
    Dernier message: 14/03/2007, 17h01
  3. Réponses: 2
    Dernier message: 06/07/2006, 08h47
  4. Réponses: 6
    Dernier message: 14/04/2006, 11h18
  5. Réponses: 4
    Dernier message: 23/03/2006, 22h03

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