Very right on. An empty cell resulted in no action. Thanks for the good advice.
Robert Costello
Lead Systems Engineer
IMA Performance
E3- 279A
847.286.0910
-----Original Message-----
From:
rules-users-bounces@lists.jboss.org
[mailto:rules-users-bounces@lists.jboss.org] On
Behalf Of Edson Tirelli
Sent: Monday, January 12, 2009
5:58 PM
To: Rules Users List
Subject: Re: [rules-users] How to
access data after rule fires
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 <rcost10@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-bounces@lists.jboss.org
[mailto:rules-users-bounces@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 <rcost10@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