[rules-users] RuleFlow and facts

Mauricio Salatino salaboy at gmail.com
Thu Nov 26 06:05:24 EST 2009


First of all, why are you doing this:

               p : Parametre( para1 : para1)
                eval (para1 ==  "para1")
You can directly do:
  p : Parametre( para1 : para1 == "para1")

Can you show us the Drools Flow file?
To see what nodes do you include in that?
Probably your Ruleset node  (ruleflow-group) is never reached.



On Thu, Nov 26, 2009 at 8:18 AM, paf84 <pierre.belhomme at sogeti.com> wrote:

>
> Hello,
>
> I try to understand how to use Drolls.
> It's not the first time i work with rules (i know JRules).
> I have a probleme when i execute my ruleflow.
> I have some rules which belong to different ruleflow-group.
> I have put my ruleflow-group in my ruleflow.
>
> THe probleme is that my ruleflow never execute the "then" part of my rules.
>
>
> If i delete le ruleflow-group of my rules and i execute the drl file, all
> my
> "then" part are executed.
> I think i have a problem to give my facts to the ruleflow...
>
> Is somebody can help me ?
>
> thx!!
>
>
> Pierre
>
>
>
>
>
> my .java
>
>
> KnowledgeBase kbase = readKnowledgeBase();
>                        StatefulKnowledgeSession ksession =
> kbase.newStatefulKnowledgeSession();
>                        KnowledgeRuntimeLogger logger =
> KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "test");
>                        // start a new process instance
>                        System.out.println("init");
>                        Parametre parametre = new Parametre();
>                        parametre.para1 = "para1";
>                        parametre.para2 = "para2";
>                        Parametre parametre2 = new Parametre();
>                        parametre2.para1 = "para1";
>                        parametre2.para2 = "para2";
>                        ksession.insert(parametre);
>
>                        WorkItemHandler handler = new WorkItemHandler() {
>                                public void executeWorkItem(WorkItem
> workItem,WorkItemManager manager) {
>                                        System.out.println(">" +
> workItem.getParameters());
>                                        System.out.println("Executing work
> item " + workItem);
>
>  manager.completeWorkItem(workItem.getId(), null);
>                                }
>
>                                public void abortWorkItem(WorkItem workItem,
>                                                WorkItemManager manager) {
>                                        // Do nothing
>                                }
>                        };
>
>
>                        Map<String, Object> parametersDispo = new
> HashMap<String, Object>();
>                        parametersDispo.put("parametre", parametre);
>
>
>
>
>  ksession.getWorkItemManager().registerWorkItemHandler("groupe1",
> handler);
>
>                        ksession.startProcess("com.sample.ruleflow1",
> parametersDispo);
>
>                        ksession.fireAllRules();
>                        logger.close();
>                } catch (Throwable t) {
>                        t.printStackTrace();
>                }
>        }
>
>        private static KnowledgeBase readKnowledgeBase() throws Exception {
>                KnowledgeBuilder kbuilder =
> KnowledgeBuilderFactory.newKnowledgeBuilder();
>
>  kbuilder.add(ResourceFactory.newClassPathResource("Sample4.drl",
> RuleFlowTest.class), ResourceType.DRL);
>
>  kbuilder.add(ResourceFactory.newClassPathResource("ruleFlow1.rf"),
> ResourceType.DRF);
>
>                KnowledgeBuilderErrors errors = kbuilder.getErrors();
>                if (errors.size() > 0) {
>                        for (KnowledgeBuilderError error: errors) {
>                                System.err.println(error);
>                        }
>                        throw new IllegalArgumentException("Could not parse
> knowledge.");
>                }
>                KnowledgeBase kbase =
> KnowledgeBaseFactory.newKnowledgeBase();
>                kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
>                return kbase;
>        }
>
>
>        public static class Parametre {
>
>                private String para1;
>                private String para2;
>
>
>                public String getPara1(){
>                        return this.para1;
>                }
>                public String getPara2(){
>                        return this.para2;
>                }
>
>
>        }
>
>
>
>
>
>
>
>
>
> One of my rules :
>
> rule "test 1"
>
>        ruleflow-group "groupe1"
>        when
>                p : Parametre( para1 : para1)
>                 eval (para1 ==  "para1")
>
>        then
>                System.out.println( "groupe1 test 1" );
>
> end
>
> --
> View this message in context:
> http://old.nabble.com/RuleFlow-and-facts-tp26525341p26525341.html
> Sent from the drools - user mailing list archive at Nabble.com.
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>



-- 
- http://salaboy.wordpress.com
- http://www.jbug.com.ar
- Salatino "Salaboy" Mauricio -
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20091126/6ebf6015/attachment.html 


More information about the rules-users mailing list