<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 12/18/2012 07:46 PM, jgauss wrote:<br>
    </div>
    <blockquote cite="mid:1355856367259-4021241.post@n3.nabble.com"
      type="cite">
      <pre wrap="">Hi,

I have a doubth about rules.
Can I to evaluate a rule using a external source?, for instance a database
or always is it with a statics conditions?</pre>
    </blockquote>
    Hi,<br>
    <br>
    I think best practice is to insert a global, for instance, if you
    have an entity of the class:<br>
    <br>
    <code>class AGlobalDataSource</code><code> {</code><code><br>
    </code><code><br>
    </code><code>&nbsp; public Collection&lt;SomeData&gt; getSomeDataFeed</code><code>
      {</code><code><br>
    </code><code>&nbsp;&nbsp;&nbsp; ...</code><code><br>
    </code><code>&nbsp; }</code><code><br>
    </code><code>}</code><br>
    <br>
    Then you insert the data source into the working memory global:<br>
    <br>
    <code><a id="d0e4572">
        <pre xmlns="" class="JAVA"><span class="java_type">AGlobalDataSource dataSource = new AGlobalDataSource();
WorkingMemory</span><span class="java_plain">&nbsp;wm&nbsp;</span><span class="java_operator">=</span><span class="java_plain">&nbsp;rulebase</span><span class="java_separator">.</span><span class="java_plain">newStatefulSession</span><span class="java_separator">();</span>
<span class="java_plain">wm</span><span class="java_separator">.</span><span class="java_plain">setGlobal</span><span class="java_separator">(</span><span class="java_plain">&nbsp;</span><span class="java_literal">"dataSource"</span><span class="java_separator">,</span><span class="java_plain"> dataSource </span><span class="java_separator">);</span></pre>
      </a></code><br>
    Then you should be able to read from that global's properties, like:<br>
    <br>
    <code>global AGlobalDataSource dataSource;</code><code><br>
    </code><code><br>
    </code><code>rule "test from data source"</code><code><br>
    </code><code>&nbsp;&nbsp;&nbsp; when</code><code><br>
    </code><code>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SomeData( ) from dataSource.someDataFeed</code><code><br>
    </code><code>&nbsp;&nbsp;&nbsp; then</code><code><br>
    </code><code>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // action</code><code><br>
    </code><code>end</code><br>
    <br>
    Bear in mind that the engine does not know if any data from the data
    source is changed and the rules need to be re-evaluated.<br>
    <br>
    Regards,<br>
    Willem<br>
    <blockquote cite="mid:1355856367259-4021241.post@n3.nabble.com"
      type="cite">
      <pre wrap="">

Thanks.



--
View this message in context: <a class="moz-txt-link-freetext" href="http://drools.46999.n3.nabble.com/Evaluating-Rules-tp4021241.html">http://drools.46999.n3.nabble.com/Evaluating-Rules-tp4021241.html</a>
Sent from the Drools: User forum mailing list archive at Nabble.com.
_______________________________________________
rules-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>