Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/01/2011, 12h03   #1
Invité régulier
 
Inscription : août 2002
Messages : 36
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : août 2002
Messages : 36
Points : 9
Points : 9
Par défaut Ecrire un fichier avec plusieurs types de ligne

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 ?
guicecal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2011, 18h19   #2
Membre régulier
 
Inscription : juin 2002
Messages : 65
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juin 2002
Messages : 65
Points : 78
Points : 78
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
Images attachées
Type de fichier : png général.png (17,8 Ko, 14 affichages)
Type de fichier : png tmap.png (58,0 Ko, 10 affichages)
Deirdrhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 08h26   #3
Invité régulier
 
Inscription : août 2002
Messages : 36
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : août 2002
Messages : 36
Points : 9
Points : 9
Bonjour,

Merci pour ta réponse c'est effectivement bien ma problématique.
Je vais essayer...
guicecal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 11h44   #4
Invité régulier
 
Inscription : août 2002
Messages : 36
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : août 2002
Messages : 36
Points : 9
Points : 9
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.
guicecal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 12h10   #5
Membre émérite
 
Homme Nicolas Saumande
Architecte Décisionnel
Inscription : février 2008
Messages : 693
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Saumande
Âge : 36
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Architecte Décisionnel

Informations forums :
Inscription : février 2008
Messages : 693
Points : 879
Points : 879
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
DevNico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 12h12   #6
Membre actif
 
Consultant informatique
Inscription : mars 2003
Messages : 130
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : mars 2003
Messages : 130
Points : 181
Points : 181
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
kisskool45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 11h27   #7
Invité régulier
 
Inscription : août 2002
Messages : 36
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : août 2002
Messages : 36
Points : 9
Points : 9
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 !
guicecal est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h42.


 
 
 
 
Partenaires

Hébergement Web