So when do you want rules executed - each time you assert an object?  You
could decorate working memory to accomplish that.

On 11/30/06, Francesco Campagnola <[EMAIL PROTECTED]> wrote:

Hi,
I'd like to know if is possible to make Drools capable of firing rules
(and so executing the action parts of the rules) without call every time the
fireAllRules() method on the WorkingMemory.

In my program I need that every time an activation is created in the
Agenda, this activation can be fired automatically.

I tried to get this behaviour calling fireAllRules() inside the
activationCreated method of an AgendaListener, but this resulted in rules
fired two times:
I get this output from my modified StateExample

==>[ActivationCreated(1): rule=Bootstrap; tuple=[fid:1:1], ]
[BeforeActivationFired: rule=Bootstrap; tuple=[fid:1:1], ]
[ObjectModified: handle=[fid:1:2]; old_object=A[FINISHED];
new_object=A[FINISHED]]
A finished
[AfterActivationFired(1): rule=Bootstrap]
[ObjectAsserted: handle=[fid:1:2]; object=A[FINISHED]]
==>[ActivationCreated(3): rule=A to B; tuple=[fid:1:2], [fid:2:3], ]
[BeforeActivationFired: rule=A to B; tuple=[fid:1:2], [fid:2:3], ]
[ObjectModified: handle=[fid:2:4]; old_object=B[FINISHED];
new_object=B[FINISHED]]
B finished
[AfterActivationFired(3): rule=A to B]
==>[ActivationCreated(3): rule=A to B; tuple=[fid:1:2], [fid:2:4], ]
[BeforeActivationFired: rule=A to B; tuple=[fid:1:2], [fid:2:4], ]
[ObjectModified: handle=[fid:2:5]; old_object=B[FINISHED];
new_object=B[FINISHED]]
B finished
[AfterActivationFired(3): rule=A to B]
[ObjectAsserted: handle=[fid:2:5]; object=B[FINISHED]]



Any help would be greatly appreciated. - Francesco




--
Geoffrey Wiseman

Reply via email to