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 :

tJavaFlex : compter le nombre de champs égaux à une certaine valeur


Sujet :

Développement de jobs

  1. #1
    Membre actif
    Profil pro
    Gestionnaire de données
    Inscrit en
    Mars 2006
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestionnaire de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 356
    Points : 248
    Points
    248
    Par défaut tJavaFlex : compter le nombre de champs égaux à une certaine valeur
    Dans une table sql , j'ai un champ no_reg.

    Je voudrais compter , en utilisant tjavaflex, le nombre d'enregistrements de valeur "31" :

    J'ai mis le code suivant :

    (input_row.no_reg.equals("31")? i++ : i ;
    // si mon champ no_reg est egal à "31" , j'ajoute 1 à mon compteur

    ... mais cela ne fonctionne pas

    question 1 : tjavaFlex , c'est bien du code Java ?
    question 2 : où est mon erreur de syntaxe ?

  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
    Quel est le type de no_reg ?
    i est t-il bien déclaré,initialisé dans le start du tJavaFlex ?
    Comment est récupérée la valeur de i ? C'est pour en faire quoi ?

    edit : et pour l'erreur de syntaxe : c'est quoi cette parenthèse devant le input ?
    Pensez à la fonction Recherche

  3. #3
    Membre actif
    Profil pro
    Gestionnaire de données
    Inscrit en
    Mars 2006
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestionnaire de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 356
    Points : 248
    Points
    248
    Par défaut
    type de no_reg : string

    i est créée dans le code initial du tJavaFlex :
    i est récupérée dans le code final du tJavaFlex :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    globalMap.put("monCompteur", Integer.valueOf(i));

    parenthèse devant le input : je viens de l'enlever

    message d'erreur , cf shot
    Images attachées Images attachées  

  4. #4
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Ton entrée ne s'appelle tout simplement pas "input_row".

    Le nom de l'entrée se lit sur le lien qui précède ton composant tJavaFlex.
    Par défaut, Talend nomme ses lien rowN (avec N=1, 2, 3, etc.), mais tu peux modifier ce nom (tant qu'il est unique dans le job).

    La syntaxe doit donc s'adapter : par défaut "rowN.no_reg.equals("31")..."

    Par ailleurs, la syntaxe "condition?casTrue:casFalse" peut être piège : si tu n'es pas à l'aise avec elle, vise plutôt la syntaxe classique (d'autant plus que tu n'as pas besoin de "else", puisque tu ne récupère pas la valeur de i à chaque passage mais uniquement à la fin) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (rowN.no_reg.equals("31")) {
       i++;
    }
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  5. #5
    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
    Citation Envoyé par CyberChouan Voir le message
    Ton entrée ne s'appelle tout simplement pas "input_row".

    Le nom de l'entrée se lit sur le lien qui précède ton composant tJavaFlex.
    Bien vu ! En effet input_row/output_row ne fonctionne que pour le tJavaRow.
    Pensez à la fonction Recherche

  6. #6
    Membre actif
    Profil pro
    Gestionnaire de données
    Inscrit en
    Mars 2006
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestionnaire de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 356
    Points : 248
    Points
    248
    Par défaut
    ça marche !!

    En fait je voulais compter le nombre d'enregistrements non nuls pour un champ

    Voilà le code de mon tJavaFlex
    initial
    principal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (row1.no_reg !=  null) {
     i++ ;
    }
    final
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    globalMap.put("monCompteur", Integer.valueOf(i));
    Et dans le Message de mon tMsgBox j'ai mis :
    globalMap.get("monCompteur") + " enregistrements non nuls"

    Merci beaucoup pour votre aide.
    En fait je croyais que tJavaRow et tJavaFlex avaient la même syntaxe , hormis les parties "initial" et "final"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/06/2013, 16h11
  2. [AC-2007] Compter le nombre de champs ayant une certaine valeur
    Par tomatotep dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 20/06/2012, 11h01
  3. Compter le nombre de champs d'une structure
    Par o_live dans le forum Débuter
    Réponses: 5
    Dernier message: 02/03/2008, 17h16
  4. Compter le nombre de champs d'une table
    Par alexsimps dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 22/07/2007, 08h03
  5. Réponses: 2
    Dernier message: 27/03/2007, 22h15

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