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;
Partager