I thought use of the "from" keyword allowed you to reason over facts (potentially) not in WM. I believe the OP's example is mentioned in the docs?
sent on the move
On 31 Oct 2011 15:08, "Wolfgang Laun" <wolfgang.laun@gmail.com> wrote:
Globals cannot to be used - directly or indirectly - as objects that should trigger
the firing of rules. It is only insert, modify or update, and retract that cause (re-)evaluation of LHS conditions.
-W
On 31 October 2011 15:05, elsdestickere <elsdestickere@yahoo.com> wrote:Hi,
I read docs about global and Hibernate to access your DB from the rules.
I tried something simular for in memory DAO's.
But some rules fire ("WM" in RHS) as the DAO has 3 items, but others ("dao"
in LHS) don't, how is that possible?
global RepositoryFactory repFact;
rule "dao"
when
k : Customer( ) from repFact.getCustomerRepository().findAll();
then
System.out.println( "Drools "+drools.getRule().getName()+": "
+k.getName());
end
rule "WM"
when
k : Customer( ) ;
then
System.out.println( "Drools "+drools.getRule().getName()+": "
+k.getName()+" + size: "+repFact.getCustomerRepository().findAll().size());
end
...
RepositoryFactory repFact = Registry.getRepositoryFactory();
ksession.setGlobal("repFact", repFact);
...
CustomerRepository customerRepo = Registry.getRepositoryFactory()
.getCustomerRepository();
customerRepo.add(tom);
customerRepo.add(elise);
customerRepo.add(bert);
ksession.insert(bert);
ksession.fireAllRules();
...
Output:
Drools WM: Bert + size: 3
br,
Els
--
View this message in context: http://drools.46999.n3.nabble.com/global-as-link-to-DB-different-results-tp3467897p3467897.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users