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 18/05/2011, 17h58   #1
Invité de passage
 
Homme YVES TANGUY
Conseil - Consultant en systèmes d'information
Inscription : mai 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme YVES TANGUY

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information

Informations forums :
Inscription : mai 2011
Messages : 13
Points : 3
Points : 3
Par défaut tMap : comment sélectionner sur des substring ?

Bonjour,


tFileInputDelimited2
|
(row2/lookup)
|
tFileInputDelimited1- (row1/main)-----------tMap------tFileOutoutPutExcel

Mes champs sont :
row1.Service : string
row2.Envt : string

Filtre : dans le filtre j'ai mis un filtre basé sur une routine user IS_PART_OF()

IS_PART_OF (row1.Service, row2.Envt) : retourne vrai si row2.Envt est dans row1.Service faux sinon

Dans le tMap
j'ai mis un lien entre row2.Envt et l'output (Excel file)

Résultat : je ne retrouve que des blancs et jamais donc row2.Envt

Auriez-vous une suggestion ?

Merci d'avance.
YVESTA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 11h29   #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
La construction du job que tu décris semble correcte. Peux-tu remplacer ta routine par un simple :
row1.Service.indexOf(row2.Envt) >= 0

voir, si la casse n'a pas d'importance :
row1.Service.toLowerCase().indexOf(row2.Envt.toLowerCase()) >= 0
tetsu no tama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 14h50   #3
Invité de passage
 
Homme YVES TANGUY
Conseil - Consultant en systèmes d'information
Inscription : mai 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme YVES TANGUY

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information

Informations forums :
Inscription : mai 2011
Messages : 13
Points : 3
Points : 3
Bonjour Testu no Tama,

j'ai introduit ton filtre et obtiens l'erreur suivante , je vais essayer d'activer les traces pour voir

Citation:
[statistics] connecting to socket on port 4010
[statistics] connected
Exception in component tMap_3
java.lang.NullPointerException
at changements_clos_dans_le_mois.rapportincidents_0_1.RapportIncidents.tFileInputDelimited_1Process(RapportIncidents.java:3533)
at changements_clos_dans_le_mois.rapportincidents_0_1.RapportIncidents.runJobInTOS(RapportIncidents.java:6316)
at changements_clos_dans_le_mois.rapportincidents_0_1.RapportIncidents.main(RapportIncidents.java:6186)
[statistics] disconnected
YVESTA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 15h13   #4
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
Une de tes chaînes est nulle, auquel cas, tu peux faire ainsi dans le filtre :
Code :
1
2
row1.Service!=NULL && 
row1.Service.toLowerCase().indexOf(row2.Envt.toLowerCase()) >= 0
tetsu no tama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 17h01   #5
Invité de passage
 
Homme YVES TANGUY
Conseil - Consultant en systèmes d'information
Inscription : mai 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme YVES TANGUY

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information

Informations forums :
Inscription : mai 2011
Messages : 13
Points : 3
Points : 3
J'ai inséré le !=null dans le filtre mais toujours le même problème

Citation:
[statistics] connected
Exception in component tMap_3
java.lang.NullPointerException
at changements_clos_dans_le_mois.rapportincidents_0_1.RapportIncidents.tFileInputDelimited_1Process(RapportIncidents.java:3537)
at changements_clos_dans_le_mois.rapportincidents_0_1.RapportIncidents.runJobInTOS(RapportIncidents.java:6320)
at changements_clos_dans_le_mois.rapportincidents_0_1.RapportIncidents.main(RapportIncidents.java:6190)
[statistics] disconnected
Job RapportIncidents terminé à 16:29 19/05/2011. [Code sortie=1]
Je commence à penser que le modèle n'est pas le bon
YVESTA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 17h13   #6
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
Peux-tu insérer ici un screen-shot de ton tmap stp ?
tetsu no tama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 10h27   #7
Invité de passage
 
Homme YVES TANGUY
Conseil - Consultant en systèmes d'information
Inscription : mai 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme YVES TANGUY

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information

Informations forums :
Inscription : mai 2011
Messages : 13
Points : 3
Points : 3
Bonjour ,

J'ai refait l'exercice avec et sans jointure en prenant des petites tables de données.

voici 4 quatre screen-shots des tMap et données sources/résultat obtenus.


Merci d'avance.
Images attachées
Type de fichier : jpg tMap_avec_jointure.jpg (161,1 Ko, 10 affichages)
Type de fichier : jpg donnees_resulatAvecJointure.jpg (107,1 Ko, 6 affichages)
Type de fichier : jpg tMap_SANS_jointure.jpg (177,3 Ko, 6 affichages)
Type de fichier : jpg donnees_resulatSANSJointure.jpg (157,4 Ko, 6 affichages)
YVESTA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 10h53   #8
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
Reprend le premier tMap (avec jointure) et change l'option "match model" en "Toutes les lignes".

Pour le reste, tout m'a l'air parfaitement en ordre.
tetsu no tama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 17h24   #9
Invité de passage
 
Homme YVES TANGUY
Conseil - Consultant en systèmes d'information
Inscription : mai 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme YVES TANGUY

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information

Informations forums :
Inscription : mai 2011
Messages : 13
Points : 3
Points : 3
Bonjour,

j'ai repris le tMap avec jointure et en activant "Toutes les Lignes" sur le match model mais je tombe sur le cas suivant :

Code :
1
2
row1.Service = PREPRODUCTION
row2.Environnement = PRODUCTION
l'expression row1.Service.IndexOf(row2.Environnement) est vraie et au lieu de récupérer PREPRODUCTION je récupère PRODUCTION.

J'ai enrichi le filtre pour prendre en compte ce cas mais ca ne marche pas , je me demande si je ne vais pas tenter un tJoin.

Aurais-tu une suggestion ?

Merci d'avance.
YVESTA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 14h15   #10
Membre habitué
 
Avatar de bbl22
 
Inscription : février 2009
Messages : 114
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 114
Points : 112
Points : 112
Bjr,
pour corriger l'erreur avec le NullpointerException, il faut que tu fasses un contrôle sur les valeurs null
tu fais:

Code :
1
2
(Relational.ISNULL(row1.Service) || Relational.ISNULL(row2.Envt) )?
:row1.Service.toLowerCase().indexOf(row2.Envt.toLowerCase()) >= 0
j'espère avoir pu contribuer à debugger ton job.
__________________
bbl MeMa
bbl22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 14h38   #11
Invité de passage
 
Homme YVES TANGUY
Conseil - Consultant en systèmes d'information
Inscription : mai 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme YVES TANGUY

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information

Informations forums :
Inscription : mai 2011
Messages : 13
Points : 3
Points : 3
Bonjour,

merci pour ton conseil , j'ai sécurisé le filtre en testant les valeurs null , pour l'instant ca marche.

Cordialt,
YVES.
YVESTA 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 14h47.


 
 
 
 
Partenaires

Hébergement Web