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 :

NOMMAGE FICHIER tAdvancedFileOutputXML


Sujet :

Développement de jobs

  1. #1
    Membre du Club
    NOMMAGE FICHIER tAdvancedFileOutputXML
    Bonjour,

    J'aurai besoin d'un petit coup de main.

    J'aimerai nommer mon fichier XML de sortie grâce à un élément venant du out1 du tMap_1.

    D'habitude je trouve toujours des solutions un peu obscures grâce à un tFlowToIterate mais là, impossible de m'en sortir, peut-être existe il une solution + propre?

    Dans l'exemple, j'aimerai que mon fichier s'appelle comme NOM_FICHIER_XML venant du out1.




  2. #2
    Membre expérimenté
    Si ton nom de fichier est unique
    Oui le XMl c'est chiant pour ecrire à la suite :p
    avec nom de fichier = out1.NOM_FICHIER

    tMap -out1-> tFlowToIterate -iterate-> tFixedFlowInput -> tFileOutputXML


    Sinon il y a une option simple et une méthode du coté obscur

    Solution simple : tu crées des CSV en ecrivant à la suite et quand tout est fini tu les transforme en XML

    Solution obscur : tMap -out1-> tJavaRow -> tAggregateRow -iterate-> tFlowToIterate -row7> tFixedFlowInput -row8> tFileOutputXml
    Le tJavaRow doit copier dans un object java out1. Tu ne peux pas utiliser output1 car le même objet est utilisé à chaque ligne. Tu peux instancier un
    Code java :Sélectionner tout -Visualiser dans une fenêtre à part
    new out1Struct();
    . Du coup en sortie du tJavaRow tu as un schema Nom_Fichier (String) + rowSave (object).
    Le tAggregateRow doit agréger les ligne sauvegardées par nom de fichier. Il doit avoir en schema de sortie Nom_Fichier (String) + rowsByFile (Liste).
    Le tFixedFlowInput doit créer un nombre de ligne = à la taille de la liste row7.rowsByFile et avoir le même schema que celui de la sortie du tMap. Le but est de lire chaque ligne de la liste.
    Le tFiletFileOutputXml doit avoir comme nom de fichier row7.Nom_Fichier
    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

  3. #3
    Membre du Club
    Alors je pense que je suis tombé sur un méchant bug de Talend, je m'explique.

    Dans le nommage du fichier XML, il n'accepte pas la valeur contenu dans le out1.NOM_FICHIER_XML et même si je mets cette valeur dans une variable globale, le nommage n'accepte pas la variable spécifiée.

    Donc j'ai utilisé un technique de sioux, à savoir, je nommage le fichier temp.xml (en dur), et après je fais un tFileCopy où je renomme le temp.xml vers le contenu de la variable globale (qui elle est dynamique).



    Je passe le sujet en résolu.

###raw>template_hook.ano_emploi###