Hello,
I have a problem with running ruleflow with ForEach node (Drools 5.0.1): 
ForEach node contains two action nodes(let's say A1 and A2) and one rule set 
node(let's say R1). I have one object, that is inserted into working memory 
(let's call it O1), and passed to process instance as a process variable. The 
collection expression in ForEach node contains collection of parameters. The 
nodes inside ForEach node are connected as
A1 -> R1 -> A2 so for each parameter from the collection the following sequence 
is performed: in A1 the parameter is set to O1 via setter and update(O1) is 
called, then the rule set R1 is activated, where some actions are done with the 
object. And then, in A2, some data, which was changed during 'R1' stage, is 
extracted from object.
The problem is that actions are not called in right consequence. For example, 
for 4 elements in the collection, the sequence, in which the nodes are 
triggered is following: A1,A1,A1,A1,R1,A2,A2,A2,A2 instead of  A1, R1, A2, A1, 
R1, A2, A1, R1, A2, A1, R1, A2

The code, used to run drools is:

Map variables = new HashMap();
                  variables.put(OBJECT_VARIABLE_NAME, object);
                  ksession.insert(object);
                  ksession.startProcess(processId, variables);
                  ksession.fireAllRules();

Can you explain such behavior?

Thank you.
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to