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/11/2011, 15h18   #1
Invité de passage
 
Homme Florian
Développeur informatique
Inscription : novembre 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme Florian
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2011
Messages : 3
Points : 4
Points : 4
Par défaut Traitement fichier Excel avec insertion en base

Bonjour , je suis débutant sur Talend ( 2 semaines ) .
Je dois dévélopper une application ETL , qui récupere des données sur du fichier excel , les formatte , ensuite exécute une requete SELECT pour récupérer l'id max de la table , puis génére un script SQL INSERT de ces données .

les données du fichier excel sont des groupes de 3 lignes , chaque groupe de 3 correspondant a un identifiant .
Donc lorsque je fais le select Max(id_creance) , je dois l'incrémenter a chaque changement de groupe a commencer par le premier :

maxID+1 - ligne 1 - (+values)
maxID+1 - ligne 2 - (+values)
maxID+1 - ligne 3 - (+values)
maxId+2 - ligne 1 - (+values)
maxID+2 - ligne 2 - (+values)
maxID+2 - ...
maxId+3 - ...
etc....

chaque groupe peut etre identifié par un ID_echeance

Mon schéma actuel :

TFileInputExcel -> TMap -> TflowToItereate -> TOracleInput -> tMap2 -> INSERT.sql

Comment faire que l'id récupéré en SELECT s'incrémente toute les 3 lignes ?
Sachant kil exécute la requete en Iterate , il faudrai arriver à lui faire exécute
Id+1 au premier groupe , id+2 au deuxieme groupe et, id +3 au troisieme groupe etc .


J'espere avoir expliqué clairement le problème , ceci est mon premier post ,
Merci d'avance pour votre aide
luvtribe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 17h46   #2
Membre Expert
 
Avatar de Benoit_Durand
 
Benoit Durand
Consultant en Business Intelligence Freelance
Inscription : mars 2005
Messages : 816
Détails du profil
Informations personnelles :
Nom : Benoit Durand
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Consultant en Business Intelligence Freelance

Informations forums :
Inscription : mars 2005
Messages : 816
Points : 1 089
Points : 1 089
Bonjour,

Pas sûr d'avoir tout compris.
Je pense qu'il faut faut ajouter un compteur (en variable globale) dans le iterate et l'incrémenter à chaque tour. Et faire un truc du genre en java.
Si moncompteur==3 alors Id=Id+1; monCompteur=1;

Un screenshot du job et un nouveau sujet ne seraient pas un luxe.

cordialement,
Benoit Durand
__________________
Pensez à la fonction Recherche
Benoit_Durand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 16h03   #3
Invité de passage
 
Homme Florian
Développeur informatique
Inscription : novembre 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme Florian
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2011
Messages : 3
Points : 4
Points : 4
Merci , pour ta réponse benoit , je testerai ça demain au boulot .
Cdt
luvtribe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 14h54   #4
Invité de passage
 
Homme Florian
Développeur informatique
Inscription : novembre 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme Florian
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2011
Messages : 3
Points : 4
Points : 4
Par défaut Solution

re:

Afin de traiter ce problème d'incrémentation d'id par groupe de 3 lignes j'ai écrit
une routine java qui s'éxécute lors du passage de données dans le tMap et qui incrémente des variable en static dans la classe de routine .
=> routines.routinesCompteur.getValueCompteur()

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
public class routinesCompteur {...
 
...
static int cpt=0;
static int compteurGroupe=1;
...
public static int getValueCompteur(){
 
    	cpt++;
    	IF(cpt<=3){
    		RETURN compteurGroupe;
    	}
    	else{
    		cpt=0;
    		compteurGroupe++;
    		RETURN compteurGroupe;
    	}
 
}
Cela fonctionne mais ce n'est certainement pas la meilleure solution
luvtribe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 16h48   #5
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 628
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 628
Points : 1 515
Points : 1 515
Tu pourrais optimiser ton code avec un truc de ce genre :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class routinesCompteur {...   
... 
static int cpt=0; 
static int compteurGroupe=1; 
... 
   public static int getValueCompteur()
   {
           cpt++;
           IF(cpt>3){
                 cpt=0;
                 compteurGroupe++;   
           }      
   
    RETURN compteurGroupe;
    }

}
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse 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 17h51.


 
 
 
 
Partenaires

Hébergement Web