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

Alimentation Discussion :

Problème pour créer un FilterRow step avec l'API Kettle


Sujet :

Alimentation

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Points : 22
    Points
    22
    Par défaut Problème pour créer un FilterRow step avec l'API Kettle
    Bonjour tout le monde,
    Je ne sais pas si beaucoup d'entre vous utilisent l'API Kettle pour créer en Java des transformations.
    J'ai donc un problème avec cette API pour créer un step qui filtre les rows. Je voudrais tout simplement diriger vers un fichier texte (CSV) toutes les entrées qui ont un numéro de maison inferieur à 16 ("Housno" < 16) et le reste vers une base de donnée. Le problème c'est qu'aucun critère ne semble répondre à ma condition (alors que cela devrait) et que toutes les données sont de toutes façons envoyés au FalseStep (même si je change ma condition).
    Le problème vient peut-être du fait que j'ai mal instancié mon objet Condition ou que j'ai oublié quelque chose dans la création de mon objet FilterRowsMeta. Je vous mets mes quelques lignes de code, au cas ou vous pouvez m'aider.

    Merci d'avance
    Adboyslim

    CODE :

    FilterRowsMeta fri = new FilterRowsMeta();
    fri.allocate();
    Condition cond = new Condition("Housno", Condition.FUNC_SMALLER, null, new ValueMetaAndData("constant", 16));
    fri.setCondition(cond);
    fri.setSendTrueStepname("write to a text file");
    fri.setSendFalseStepname("write to [" + targetTableName + "]");

    String filterstepname = "filter male rows";
    String filterstepid = steploader.getStepPluginID(fri);
    StepMeta filterstep = new StepMeta(filterstepid, filterstepname, (StepMetaInterface) fri);
    filterstep.setDescription("filter male rows");
    transMeta.addStep(filterstep);

    TransHopMeta fhi = new TransHopMeta(fromstep, filterstep);
    transMeta.addTransHop(fhi);
    fromstep = filterstep;

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 117
    Points
    117
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Condition cond = new Condition("Housno", Condition.FUNC_SMALLER, null, new ValueMetaAndData("constant", 16));
     
      |
     \|/
      ´
    Condition cond = new Condition("Housno", Condition.FUNC_SMALLER, null, new ValueMetaAndData("constant", new Long(16)));

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Points : 22
    Points
    22
    Par défaut
    Ok Matt, merci pour cette réponse.
    Mais il doit y avoir un autre problème car que ce soit avec cette correction ou même avec n'importe qu'elle autre Condition plus basique, aucune donnée ne passe JAMAIS dans le trueStep.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Condition cond = new Condition("Housno", Condition.FUNC_NULL, null, null);
    Ai-je oublié quelque chose pour définir mon FilterRowsMeta ou ma Condition?
    Dois-je bien définir deux TransHopMeta pour relier le filter step aux 2 output steps?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 117
    Points
    117
    Par défaut
    Dois-je bien définir deux TransHopMeta pour relier le filter step aux 2 output steps?
    Oui, évidemment. Fait comme Spoon. :-)

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Points : 22
    Points
    22
    Par défaut
    C'est ça que je trouve bizarre, dans le code de Spoon je ne vois aucune utilisation de la classe FilterRowsMeta ou de Condition.
    Si je n'y arrive pas tant pis j'essaierais de faire sans.
    Merci Matt

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 117
    Points
    117
    Par défaut
    Aha! Spoon ouvre le dialog FilterRowsDialog(.java) en utilisant notre système de plugins.
    FilterRowsDialog#ok() change FilterRowsMeta.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 117
    Points
    117
    Par défaut FYI
    Un example simple: TransBuilderFilter.java

  8. #8
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Points : 22
    Points
    22
    Par défaut
    Thanks a lot Matt!
    Ca marche parfaitement. Je peux continuer à tester différents step via l'API.

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

Discussions similaires

  1. Problème pour créer un setup avec Inno Setup
    Par encoremoi21258 dans le forum Logiciels Libres & Open Source
    Réponses: 1
    Dernier message: 05/05/2014, 20h07
  2. Problème pour créer un exécutable avec Cx-Freeze
    Par moumoute77 dans le forum Général Python
    Réponses: 2
    Dernier message: 17/02/2014, 01h05
  3. Problème pour créer des sous-figures avec subfig
    Par cmilie dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 2
    Dernier message: 17/07/2009, 10h22
  4. Problème pour piloter le port série avec TComPort
    Par Jayceblaster dans le forum Composants VCL
    Réponses: 6
    Dernier message: 08/12/2005, 14h21
  5. [XML word] problème pour créer des puces
    Par ratapapa dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 21/07/2005, 13h52

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