So, ultimately this helped. One other thing I needed to get this working was a variable for my object, like you said below (brand.setGoodBrand). Once I changed that, it fired. The suggestion to use parameters was also good as it allows for more rule flexibility. When I used the setGoodBrand(true), it only worked if there was some sort of value in the action column for the rule, even an 'x', as Steven suggested. And I am able to get the changed values either by direct reference to the object or by getting the object from the session.
Thanks to Edson and Steven for the fast replies! RuleTable CONDITION ACTION product: Product brand: brand product.setGoodBrand($param); Cases hoover match case Brand Check hoover TRUE Bad Brand walmart FALSE Robert Costello -----Original Message----- From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Steven Williams Sent: Monday, January 12, 2009 6:26 PM To: Rules Users List Subject: Re: [rules-users] How to access data after rule fires If you put an X or something in the cell (i.e. just don't leave it empty) it should also work. On Tue, Jan 13, 2009 at 10:57 AM, Edson Tirelli <tire...@post.com> wrote: The action is not being executed. I don't use decision tables frequently, but I think that it ignores empty cells and is generating an empty consequence for your rule. Usually, you would place the method call on the header prototype and the parameter in the cell. So your cell would be: | hoover | true | | xyz | false | The method prototype would be something like (please check the correct syntax in the manual): brand.setGoodBrand( $param ); Where the engine would replace $param by the value you write in the cell. []s Edson 2009/1/12 Costello, Robert <rcos...@searshc.com> I tried that and it returned false, which doesn't make sense to me since the rule firing is to set the value to true, and in the execution the rule does fire. StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession(); Product p = new Product(); p.setBrand("hoover"); session.insert( p ); int u = session.fireAllRules(); System.out.println(u + " many rules fired"); System.out.println("is brand good? " + p.isGoodBrand()); Here's a snippet of the rule (decision table) CONDITION ACTION Product brand setGoodBrand(true); Cases hoover match case Brand Check hoover And the console returns: 1 many rules fired is brand good? false Robert Costello Lead Systems Engineer IMA Performance E3- 279A 847.286.0910 -----Original Message----- From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Edson Tirelli Sent: Monday, January 12, 2009 4:16 PM To: Rules Users List Subject: Re: [rules-users] How to access data after rule fires Can't you keep the reference to your object while firing the rules? MyObject x = ... ksession.insert( x ); ksession.fireAllRules(); boolean result = x.getBooleanAttribute(); []s Edson 2009/1/12 Costello, Robert <rcos...@searshc.com> So, how do I access data after the rules fire? If one has a rule which modifies a field on an object (a boolean, for example), and you want to return the object after the rules are complete, how do you do it? I tried this using a StatefulKnowledgeSession, getting an object collection after the rules fire, but I don't see that this works. Also googled the heck out of this and looked in all the documentation. I must be missing something, because the docs generally are pretty good. Any hints? Thanks in advance, Robert Costello _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Edson Tirelli JBoss Drools Core Development JBoss, a division of Red Hat @ www.jboss.com _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Edson Tirelli JBoss Drools Core Development JBoss, a division of Red Hat @ www.jboss.com _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Steven Williams Supervising Consultant Object Consulting Office: 8615 4500 Mob: 0439 898 668 Fax: 8615 4501 steven.willi...@objectconsulting.com.au www.objectconsulting.com.au consulting | development | training | support our experience makes the difference
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users