[rules-users] To access at the fact object

Mister Nono noel.maurice at univ-jfc.fr
Tue Dec 4 06:03:14 EST 2012


Hi,

I have the drools rule (made in guvnor server) :


1.	|	rule "driverRule"
2.	|	    salience 10
3.	|	    dialect "mvel"
4.	|	    when
5.	|	        Driver( driverAge : age > 18 && < 65 )
6.	|	    then
7.	|	        Driver fact0 = new Driver();
8.	|	        fact0.setName( "TOTO" );
9.	|	        insert( fact0 );
10.	|	end


... and the java code source :


KnowledgeAgent agent = 
KnowledgeAgentFactory.newKnowledgeAgent("/Guvnor.properties");
KnowledgeBase ruleBase = agent.getKnowledgeBase();
		       
StatefulKnowledgeSession workingMemory =
ruleBase.newStatefulKnowledgeSession();
		
Driver d = new Driver("Jack", 28, null);
workingMemory.insert(d);
		
workingMemory.fireAllRules();

for(Iterator i = workingMemory.getObjects().iterator(); i.hasNext();)
{
	Object obj = i.next();
	System.out.println(obj.getClass().getCanonicalName());
	
	if (obj instanceof Driver)
	{
		System.out.println("Driver name => " + ((Driver)obj).getName());
		System.out.println("Driver age => " + ((Driver)obj).getAge());
	}
}


But the drools rule changes the driver name "Jack" by "TOTO", but in the
console the initial name "Jack" is always displayed.

How to access at the objet who is in knowledge base (the modified objet) ?

Thank. ;)



--
View this message in context: http://drools.46999.n3.nabble.com/To-access-at-the-fact-object-tp4021064.html
Sent from the Drools: User forum mailing list archive at Nabble.com.


More information about the rules-users mailing list