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 29/03/2011, 17h55   #1
Membre habitué
 
Inscription : août 2005
Messages : 117
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2005
Messages : 117
Points : 145
Points : 145
Par défaut Parcourir un tableau d'objet dans un tJavaFlex

Voilà, j'ai un problème un peu spécifique.

J'ai un job qui prend un paramètre une String (qui est un tableau d'objets sérialisé et encodé en base64). Je dé sérialise et décode cet objet dans un premier tJavaFlex. Jusque là, tout se passe pour le mieux.

De manière très schématisée, voici les objets présents dans mon tableau passé en paramètre de mon job.

Class monObjet{
private String id;
private String propriete2;
private String propriete3;
private String[] propriete4;
}

Je parcours donc, dans un premier tJavaFlex tous mes objets présents dans le tableau préalablement désérialisé et décodé.

J'ai besoin d'un deuxième flux qui me présente, en sortie, l'information suivante :
id;String (correspondant à un élément du tableau propriété4)
1;tuple1 du tableau propriete4 de l'objet ayant pour id 1
1;tuple2 du tableau propriete4 de l'objet ayant pour id 1
2;tuple1 du tableau propriete4 de l'objet ayant pour id 2
2;tuple2 du tableau propriete4 de l'objet ayant pour id 2
2;tuple3 du tableau propriete4 de l'objet ayant pour id 2

Or, j'arrive bien, dans un tJavaFlex2 à afficher ces données mais lorsque je les affecte à un tFileOutPutDelimited, le flux de sortie est dédoublonné et je me retrouve avec :
1;tuple2 du tableau propriete4 de l'objet ayant pour id 1
2;tuple3 du tableau propriete4 de l'objet ayant pour id 2

Voici le design global de mon job :

tJavaFlex1 --> tMap --> tFileOuputDelimited1
--> tjavaFlex2 --> tFileOuputDelimited2

tJavaFlex1 :
OK >Désérialisation et décodage du tableau d'objet et parcours de ce dernier pour chaque objet.
OK >Passage en sortie du tableau propriete4 en temps que type Object.

tFileOuputDelimited1 :
OK > réception d'une ligne par objet (listant les propriétés de type primitif)

tjavaFlex2
(main)
OK > Lecture pour chaque ligne du flux de la propriété id
OK > récupération du tableau et parcours de chaque String
OK > Affichage de chaque String présente dans le tableau
KO > affectation au flux de sortie
tetsu no tama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 17h27   #2
Membre habitué
 
Inscription : août 2005
Messages : 117
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2005
Messages : 117
Points : 145
Points : 145
J'ai actuellement contourné le problème en faisant appel à un sousJob pour chaque Objet (via un trunJob ayant pour paramètre la propriété id de l'objet(String et le paramètre tableau de String (Object)).

Je réalise ensuite, dans mon sous job, le traitement du tableau via un tJavaFlex.

Cette solution de contournement fonctionne mais n'est pas satisfaisante car je fais appel à un sous-Job pour chacun de mes objets présent dans le tableau d'objet que je récupère dans le job père. Je laisse donc le thread ouvert pour le moment en espérant qu'une âme charitable puisse me venir en aide.
tetsu no tama est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h50.


 
 
 
 
Partenaires

Hébergement Web