[rules-users] Rule flow skip ruleSet node.

liuzhikun liuzhikun at viewhigh.com.cn
Fri Oct 30 03:34:03 EDT 2009


I want increase user age by rule.But ruleSet node trigge only one time.
When execute output:
    new Usesr
ageA: 0
inc
ageB: 1

ageA: 1
ageB: 1
ageA: 1
ageB: 1 
....
.....
rule:***************************
    package t2.state

import t2.state.User;
import java.util.Map;
import java.util.HashMap;

function Map createMap(String key,Object obj){
 Map m=new HashMap();
 m.put(key,obj);
 return m;
}

rule "boot"
 dialect "mvel"
 when
  u : User(age==0)
 then
  System.out.println(" new Usesr");
  kcontext.getKnowledgeRuntime().startProcess("p1rf",createMap("user",u));
end

rule "inc user age"
 dialect "mvel"
 ruleflow-group "inc age"
 no-loop true
 when
  u : User();
 then
  System.out.println("inc");
  modify(u){age+=1};
end


rule flow:************************************
    <?xml version="1.0" encoding="UTF-8"?> 
<process xmlns="http://drools.org/drools-5.0/process"
         xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
         xs:schemaLocation="http://drools.org/drools-5.0/process drools-processes-5.0.xsd"
         type="RuleFlow" name="p1 rule flow" id="p1rf" package-name="t2.state" >
 <header>
  <imports>
   <import name="t2.state.User"/>
  </imports>
  <variables>
    <variable name="user" >
      <type name="org.drools.process.core.datatype.impl.type.ObjectDataType" className="User" />
    </variable>
  </variables>
 </header>
 
 <nodes>
  <start id="1" name="Start"/>
  <join id="2" name="Restart" type="2"/>
  <actionNode id="3" name="changeAge">
   <action type="expression" dialect="mvel">System.out.println("ageA: "+user.age);</action>
  </actionNode>
  <ruleSet id="4" name="user rule" ruleFlowGroup="inc age"/>
  <actionNode id="5" name="changeAge">
   <action type="expression" dialect="mvel">System.out.println("ageB: "+user.age);System.in.read();</action>
  </actionNode>
  <split id="6" name="decide" type="2">
   <constraints>
    <constraint toNodeId="2" toType="DROOLS_DEFAULT" name="go to rest" type="rule" priority="1" dialect="mvel">User(age &lt; 6)</constraint>
    <constraint toNodeId="100" toType="DROOLS_DEFAULT" name="go to end" type="rule" priority="2" dialect="mvel">eval(true)</constraint>
   </constraints>
  </split>
  <end id="100" name="End"/>
 </nodes>
 
 <connections>
  <connection from="1" to="2"/>
  <connection from="2" to="3"/>
  <connection from="3" to="4"/>
  <connection from="4" to="5"/>
  <connection from="5" to="6"/>
  <connection from="6" to="2"/>
  <connection from="6" to="100"/>
 </connections>
 
</process>




liuzhikun
2009-10-30
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20091030/42e5ad62/attachment.html 


More information about the rules-users mailing list