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 02/07/2007, 11h25   #1
Membre du Club
 
Avatar de SebastienM
 
Inscription : juin 2007
Messages : 309
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 309
Points : 52
Points : 52
Par défaut Talend - nombre de lignes

Bonjour, je voudrais récupérer le nombre de lignes insérées lors d'une insertion avec liaison (tMap).
J'ai essayé avec l'objet tAggregateRow mais sans succès.
Est-ce possible ?
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 14h29   #2
Membre éclairé
 
Avatar de bouvda
 
Inscription : octobre 2005
Messages : 252
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2005
Messages : 252
Points : 312
Points : 312
Envoyer un message via MSN à bouvda
Bonjour,

pas besoin d'utiliser un composant tAggregateRow qui sert à faire des agrégations (clause GROUP BY en SQL). Pour obtenir le nombre de lignes insérées, il suffit d'utiliser la propriété NB_LINE_INSERTED du composant tMSSqlOutput (si la base est SQL Server mais ça marche avec les composants pour les autres bases). Il faut utiliser le nom interne du composant et non celui affiché (le nom interne "Unique name" est écrit dans le panneau Outline en bas à gauche ou dans Main dans l'onglet Properties).

Ce qui donne quelque chose dans ce genre :
Code :
1
2
 
((Integer)globalMap.get("tMSSqlOutput_1_NB_LINE_INSERTED"))
Pour voir les autres propriétés disponibles, il suffit de taper le nom interne du composant suivi d'un point puis Ctrl+Espace pour avoir l'auto-complétion.
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 14h53   #3
Membre du Club
 
Avatar de SebastienM
 
Inscription : juin 2007
Messages : 309
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 309
Points : 52
Points : 52
Mmmmm si j'ai bien compris, faut le taper en Java ?
Parce que je voudrais l'insérer dans une table de journalisation...
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 15h05   #4
Membre éclairé
 
Avatar de bouvda
 
Inscription : octobre 2005
Messages : 252
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2005
Messages : 252
Points : 312
Points : 312
Envoyer un message via MSN à bouvda
Oui il faut le taper en Java.
Pour l'insérer dans une table, j'essaierais de taper le code en java dans un composant tJavaRow dont l'output serait reliée à un tMSSQLInput ou équivalent.
Ainsi si l'output se nomme MonOutput,cela donnerait (après avoir défini le schéma du composant pour avoir un champ nb_lignes) :
Code :
1
2
 
MonOutput.nb_lignes = ((Integer)globalMap.get("tMSSqlOutput_1_NB_LINE_INSERTED"));
bouvda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 15h33   #5
Membre du Club
 
Avatar de SebastienM
 
Inscription : juin 2007
Messages : 309
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 309
Points : 52
Points : 52
Merci de votre réponse. J'ai écrit une routine mais impossible de la lancer ; j'ai essayé d'éditer le code via les fichiers java, il supprime automatiquement ce que j'ai tapé.

[edit] : Oups, j'avais pas vu le composant tJavaRow
SebastienM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 10h44   #6
Futur Membre du Club
 
Étudiant
Inscription : mars 2007
Messages : 44
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 44
Points : 17
Points : 17
Citation:
Envoyé par bouvda
Oui il faut le taper en Java.
Pour l'insérer dans une table, j'essaierais de taper le code en java dans un composant tJavaRow dont l'output serait reliée à un tMSSQLInput ou équivalent.
Ainsi si l'output se nomme MonOutput,cela donnerait (après avoir défini le schéma du composant pour avoir un champ nb_lignes) :
Code :
1
2
 
MonOutput.nb_lignes = ((Integer)globalMap.get("tMSSqlOutput_1_NB_LINE_INSERTED"));
ou en faisant un CTRL + Espace ca t'eviteras de tout reecrire

EDIT : J'ai pas vu que tu l'avais deja mis à la fin du message...
szoubir 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 20h03.


 
 
 
 
Partenaires

Hébergement Web