IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement de jobs Discussion :

Traitement fichier Excel avec insertion en base


Sujet :

Développement de jobs

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 1
    Points
    1
    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

  2. #2
    Membre expérimenté Avatar de Benoit_Durand
    Profil pro
    Consultant en Business Intelligence Freelance
    Inscrit en
    Mars 2005
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence Freelance

    Informations forums :
    Inscription : Mars 2005
    Messages : 861
    Points : 1 308
    Points
    1 308
    Par défaut
    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

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 1
    Points
    1
    Par défaut
    Merci , pour ta réponse benoit , je testerai ça demain au boulot .
    Cdt

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 1
    Points
    1
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut
    Tu pourrais optimiser ton code avec un truc de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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)

    Tutoriels Talend
    Mes articles publiés
    Mon CV en-ligne

Discussions similaires

  1. traitement d'un fichier Excel avec Perl
    Par moiamatoallah dans le forum Langage
    Réponses: 4
    Dernier message: 18/03/2013, 14h00
  2. Réponses: 1
    Dernier message: 15/05/2009, 13h07
  3. Traitement de fichiers Excel avec MySql
    Par buzz73 dans le forum Débuter
    Réponses: 7
    Dernier message: 26/08/2008, 15h56
  4. Réponses: 2
    Dernier message: 21/03/2008, 16h08
  5. Traitement fichier excel avec vb6
    Par couscoussier dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 12/09/2006, 16h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo