[rules-users] Help on using Drools with embedded objects

D1vy@@Ind1@ divya.rajendranath at gmail.com
Mon Feb 23 07:29:14 EST 2009


Sudhir,
Thanks for the information ...

To give more data..
I am using drools 4.0.7 version.

I have appropriate setters and getters in all my classes A, B, Z.

My drools file look like this:

rule "test"
	salience 20
	no-loop true
	when
		$a:A( b : B);
		eval (b.X == "testValue");
	then
		$a.setSomething();
		update($a);
	end

When I run this rule, it says 

Unable to create Field Extractor for 'B' : [Rule name=test,
agendaGroup=MAIN, salience=20, no-loop=true]
org.drools.RuntimeDroolsException: org.drools.RuntimeDroolsException:
Field/method 'B' not found for class 'com.test.java.A' 
Rule Compilation error : [Rule name=test, agendaGroup=MAIN, salience=20,
no-loop=true]
        Rule_test_0.java (8:323) : b.X cannot be resolved to a type
E

I have double checked if there was any typos in defining my fields, and
there exists no problem due to typos.

Could you please throw light on this exception ?


Thanks
-D




D1vy@@Ind1@ wrote:
> 
> Hi,
> 
> I am planning to use Drools - JBoss Rules Engine. My requirement is to
> disburse mails from my application to different groups based on various
> criteria. I want to use Drools here.
> 
> My object structure is as follows:
> 
> class A{
> 
> String B = "";
> 
> B b;
> 
> C c;
> }
> 
> Hence Obj A has embedded objects within it, and obj B and C further has
> embedded objects.
> 
> class B {
> 
> String X;
> 
> Z z;
> 
> }
> 
> class Z{
> 
> String t;
> 
> String s;
> 
> }
> 
> The decision on sending the mails based on the fields in embedded objects
> of
> A. I pass instance of A to Drools
> 
> Format of drl file:
> 
> package...;
> 
> import ..;
> 
> rule "Test"
> 
> when $a:A(B(Z(s == "testvalue")))
> 
> then
> 
> $a.setSomething();
> 
> update($a);
> 
> end
> 
> I wanted to know if this (accessing fields in embedded/child object) is
> feasible with Drools.
> 
> I get an error saying "UNable to compile myfile.drl when i try to fo this.
> 
> Could some one look into this issue and let me know the reason for this ?
> 
> 
> 
> Thanks
> 
> -D
> 
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 
> 

-- 
View this message in context: http://www.nabble.com/Help-on-using-Drools-with-embedded-objects-tp22158087p22160635.html
Sent from the drools - user mailing list archive at Nabble.com.




More information about the rules-users mailing list