|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : août 2002 Messages : 36 ![]() |
Bonjour,
Voilà mon problème, je dois générer un fichier texte à partir d'un fichier xml. J'arrive bien à "Parser" mon fichier xml. J'obtient alors des lignes dans mon objet "Fichier xml" (avec tFileInputXML). A partir d'une ligne obtenue, il faut que j'écrive dans un fichier texte N lignes de structures différentes. Exemple : 00ENTETE 01CARTE 02BENEF 03DROITS J'ai essayé en utilisant tMap, tJavaRow et TFileOutPositionnal mais je ne vois pas comment faire. Je n'arrive pas à écrire plusieurs lignes... Quelqu'un a-t-il déjà été confronté à ce problème ? |
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Inscription : juin 2002 Messages : 65 ![]() |
Bonjour,
Tu as une ligne que tu dois éclater en plusieurs en sortie ? Je te propose : tu prends ta ligne, tu la passes dans un tMap dans lequel tu prépares plusieurs sorties. Tu maps donc les champ de ton entrée dans les différentes sorties. Ainsi, pour une ligne en entrée, tu auras par exemple 2 sorties différentes. Enfin, il te suffit d'ajouter des tFileOutputPositionnal (autant de fois le composant que tu as de sorties). Ces composants vont pointer sur le même fichier, mais auront les schemas de tes sorties de tMap. Tu dois absolument régler l'ordre de tes sorties dans l'ordre où elles doivent apparaître dans le fichier en sortie. Et bien évidemment, tu n'oublies pas de chocher l'option "Append" sur les tFileOutput qui ne sont pas les premiers à s'écrire, sinon tu écrases à chaque fois le fichier. Si j'ai mal compris ta demande, désolé :p |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : août 2002 Messages : 36 ![]() |
Bonjour,
Merci pour ta réponse c'est effectivement bien ma problématique. Je vais essayer... |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : août 2002 Messages : 36 ![]() |
Effectivement, j'arrive bien a écrire mes deux types d'enregistrement dans un même fichier.
Par contre, ça m'écrit tous les enregistrement de type 01 puis tous les enregistrements de type 10. Ce que je voudrais c'est un enchainement 01,10,01,10... Est-ce que c'est possibles ? Je n'ai rien vu dans les options. |
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() Nicolas SaumandeArchitecte Décisionnel Inscription : février 2008 Messages : 693 ![]() |
Bonjour,
Il doit falloir paramétrer tes composants tFileOutputDelimited afin qu'ils écrivent ligne à ligne dans le fichier. Je crois qu'il faut cocher l'option 'Custom the flush buffer size' et mettre à 1 le 'Row number', dans les Advanced settings. Nicolas |
|
|
00
|
|
|
#6 |
|
Membre actif
![]() Consultant informatique Inscription : mars 2003 Messages : 130 ![]() |
chaque ligne a t'elle tjrs un enregistrement de type 01 et 10
si c'est le cas je te propose d'utiliser le composant tjavaFlex Pour chaque ligne tu fais boucle 2 fois la premiere fois en mettant 01 et la seconde en mettant 10 Si tu as du mal avec le Java n'hesite pas a demander + d'info je te donnerais un peu plus d'info |
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : août 2002 Messages : 36 ![]() |
J'ai résolu mon problème en rajoutant un n° de séquence au début de chacun de mes enregistrements. Utilisation de l'expression "Numeric.sequence("s1",1,1)" au niveau du TMap.
Ensuite je trie le fichier et je retrouve bien mes lignes dans l'ordre que je veux. Merci à tous de votre précieuse aide... je débute en Talend ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com