<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> public Collection<SomeData> getSomeDataFeed</code><code>
{</code><code><br>
</code><code> ...</code><code><br>
</code><code> }</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"> wm </span><span class="java_operator">=</span><span class="java_plain"> 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"> </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> when</code><code><br>
</code><code> SomeData( ) from dataSource.someDataFeed</code><code><br>
</code><code> then</code><code><br>
</code><code> // 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>