hello <br>first thank you for your help.<br>But I don't know how declare the wariable.<br>workingMemory.setGlobal("L", new java.util.List());<br>the code used to execute my rule is :<br><br>&nbsp; public List fireRules(List dataObjects, InputStream rules) throws Exception {&nbsp;&nbsp;&nbsp; &nbsp; <br>&nbsp;&nbsp;&nbsp; // obtain the rule service provider<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; RuleServiceProviderManager.registerRuleServiceProvider(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "org.drools.jsr94.rules.RuleServiceProviderImpl",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.drools.jsr94.rules.RuleServiceProviderImpl.class);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RuleServiceProvider service = <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RuleServiceProviderManager.getRuleServiceProvider(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 "org.drools.jsr94.rules.RuleServiceProviderImpl");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; // load the rule adminstrator&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RuleAdministrator admin = service.getRuleAdministrator();&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; // load the rules and register them&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RuleExecutionSet res1 =<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; admin.getLocalRuleExecutionSetProvider( null ).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; createRuleExecutionSet( rules, null );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rules.close();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String bindUri = "res:://sample.drl";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; admin.registerRuleExecutionSet(bindUri, res1, null);&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; // obtain a rule runtime object from the rule
 service provider&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RuleRuntime runtime = service.getRuleRuntime();&nbsp; <br>&nbsp;&nbsp; // create a stateless object from the Rule Runtime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StatelessRuleSession session = (StatelessRuleSession)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; runtime.createRuleSession(bindUri, null, RuleRuntime.STATELESS_SESSION_TYPE);&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List resultRules = session.executeRules(dataObjects);<br>&nbsp;&nbsp;&nbsp; //session.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session.release();<br>&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp; workingMemory.setGlobal("L", new java.util.List());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return resultRules; <br>&nbsp;&nbsp;&nbsp; }<br>please help me,<br>best regards
 <br>Ismail<br><br><b><i>Scott Reed &lt;sreed@spamcop.net&gt;</i></b> a écrit&nbsp;:<blockquote class="replbq" style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"> fakhfakh ismail's message received 5/14/2007 3:48 PM:<br>&gt; Hello,<br>&gt; first sorry for my bad english.<br>&gt; I want to declare a variable of type List<br>&gt; <br>&gt; rule "userrole"<br>&gt;  <br>&gt; when<br>&gt;   $user1: User (userid1: userId)<br>&gt;   $user2: User (userId == userid1)<br>&gt;   then<br>&gt;      List L = new ArrayList();<br>&gt;         if (L.contains($user1.getname())== false)<br>&gt;         {<br>&gt;             L.add($user1.getname());<br>&gt;             System.out.println("hello");<br>&gt;         }<br>&gt;     end<br>&gt; <br>&gt; the problem is everytime the List don't save all element every execution <br>&gt; the variable  list is intialised as empty is there other place to <br>&gt; declare List?<br>&gt; (I try after when but error of
 parsing)<br><br>You need to declare the List in your Java code, set it as a Drools global, and declare it in the DRL <br>file:<br><br>In yourjava.java:<br>-----------<br>workingMemory.setGlobal("L", new java.util.List());<br>-----------<br><br>in yourdrl.drl:<br>-----------<br>global java.util.List L;<br><br>rule "userrole"<br><br>when<br>   $user1: User (userid1: userId)<br>   $user2: User (userId == userid1)<br>   then<br>         if (L.contains($user1.getname())== false)<br>         {<br>             L.add($user1.getname());<br>             System.out.println("hello");<br>         }<br>end<br>-----------<br><br>Wouldn't it be great to have a "static" section in the DRL syntax for temporaries like this?<br>_______________________________________________<br>rules-users mailing list<br>rules-users@lists.jboss.org<br>https://lists.jboss.org/mailman/listinfo/rules-users<br></blockquote><br><p>&#32;


      

      <hr size="1"> 
Ne gardez plus qu'une seule adresse mail ! <a href="http://www.trueswitch.com/yahoo-fr/">Copiez vos mails</a> vers Yahoo! Mail