<div>It does contain the essential steps I was suggesting. Please try it, and</div>
<div>if there are problems, we&#39;ll take a closer look...<br> </div>
<div>-W<br> </div>
<div><span class="gmail_quote">On 7/3/09, <b class="gmail_sendername">chris@twc</b> &lt;<a href="mailto:christopher.mcfarland@twc.state.tx.us">christopher.mcfarland@twc.state.tx.us</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><br>Wolfgang, is this correct? Thx<br><br>&lt;pre&gt;<br>   // populate working memory<br>   ExternalSpreadsheetCompiler converter = new<br>
ExternalSpreadsheetCompiler();<br>   InputStream spreadsheetStream = ...<br>   InputStream templateFileStream = ...<br>   String drl = converter.compile(spreadsheetStream, templateFileStream, 3,<br>3);<br>   Resource drlResource = ResourceFactory.newReaderResource(new<br>
StringReader(drl));<br>   KnowledgeBuilder kbuilder =<br>KnowledgeBuilderFactory.newKnowledgeBuilder();<br>   kbuilder.add(drlResource, ResourceType.DRL);<br>   KnowledgeBuilderErrors errors = kbuilder.getErrors();<br>   if (errors.size() &gt; 0) {<br>
       for (KnowledgeBuilderError error: errors) {<br>           System.err.println(error);<br>       }<br>       throw new IllegalStateException(&quot;Could not parse knowledge from<br>template example&quot;);<br>   }<br>
   KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();<br>   knowledgeBase.addKnowledgePackages(kbuilder.getKnowledgePackages());<br>   // create session<br>   StatefulKnowledgeSession rulesSession =<br>
knowledgeBase.newStatefulKnowledgeSession();<br>   KnowledgeRuntimeLogger rulesLogger =<br>KnowledgeRuntimeLoggerFactory.newConsoleLogger(rulesSession);<br>//&amp;lt;&amp;lt;CREATE LOGGER!<br>   FactHandle factHandle = rulesSession.insert(myFact);<br>
   // fire the rules<br>   rulesSession.fireAllRules();<br>&lt;/pre&gt;<br><br><br>Wolfgang Laun-2 wrote:<br>&gt;<br>&gt; You can use a KnowledgeBuilder with template-derived DRL-resources and set<br>&gt; up your KnowledgeBase from its results the same way you do it with plain<br>
&gt; .drl-files. Obtain a StatefulKnaowledgeSession and pass this to<br>&gt; the KnowledgeRuntimeLoggerFactory, as in your first code sample.<br>&gt; -W<br>&gt;<br>&gt;<br>&gt; On 6/30/09, chris@twc &lt;<a href="mailto:christopher.mcfarland@twc.state.tx.us">christopher.mcfarland@twc.state.tx.us</a>&gt; wrote:<br>
&gt;&gt;<br>&gt;&gt; I&#39;m trying to figure out how I can create a Logger to log rule<br>&gt;&gt; activations<br>&gt;&gt; for my Template File code. I followed the examples to successfully create<br>&gt;&gt; a<br>&gt;&gt; Logger for DRL and Decision Table examples. Apparently, to create a<br>
&gt;&gt; Logger,<br>&gt;&gt; the KnowledgeRuntimeLoggerFactory methods take a<br>&gt;&gt; KnowledgeRuntimeEventManager type, which<br>&gt;&gt; *StatefulKnowledgeSession*implements. But, for the Template File<br>&gt;&gt; examples, the<br>
&gt;&gt; *StatefulSession* from the &quot;unstable&quot; drools-core *does not* implement<br>&gt;&gt; this interface. SEE the code examples below - how do I create a Logger<br>&gt;&gt; for<br>&gt;&gt; my Template File code?<br>
&gt;&gt;<br>&gt;&gt; //#### DRL FILE &amp; EXCEL FILE EXAMPLE FOR CREATING A SESSION AND FIRING<br>&gt;&gt; THE<br>&gt;&gt; RULES:<br>&gt;&gt; //#### CREATING A RULES LOGGER WORKS<br>&gt;&gt;<br>&gt;&gt; // populate working memory<br>
&gt;&gt; KnowledgeBuilder kbuilder =<br>&gt;&gt; KnowledgeBuilderFactory.newKnowledgeBuilder();<br>&gt;&gt; kbuilder.add(...[DRL or DTABLE resources]...);<br>&gt;&gt; KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();<br>
&gt;&gt; knowledgeBase.addKnowledgePackages(kbuilder.getKnowledgePackages());<br>&gt;&gt; // create session<br>&gt;&gt; StatefulKnowledgeSession rulesSession =<br>&gt;&gt; knowledgeBase.newStatefulKnowledgeSession();<br>&gt;&gt; KnowledgeRuntimeLogger rulesLogger =<br>
&gt;&gt; KnowledgeRuntimeLoggerFactory.newConsoleLogger(rulesSession); //&lt;&lt;*CREATE<br>&gt;&gt; LOGGER!*<br>&gt;&gt; FactHandle factHandle = rulesSession.insert(myFact);<br>&gt;&gt; // fire the rules<br>&gt;&gt; rulesSession.fireAllRules();<br>
&gt;&gt;<br>&gt;&gt; //#### TEMPLATE FILE EXAMPLE FOR CREATING A SESSION AND FIRING THE RULES:<br>&gt;&gt; //#### CREATING A RULES LOGGER DOES NOT COMPILE!<br>&gt;&gt;<br>&gt;&gt; // populate working memory<br>&gt;&gt; ExternalSpreadsheetCompiler converter = new<br>
&gt;&gt; ExternalSpreadsheetCompiler();<br>&gt;&gt; InputStream spreadsheetStream = ...<br>&gt;&gt; InputStream templateFileStream = ...<br>&gt;&gt; String drl = converter.compile(spreadsheetStream, templateFileStream, 3,<br>
&gt;&gt; 3);<br>&gt;&gt; PackageBuilder builder = new PackageBuilder();<br>&gt;&gt; builder.addPackageFromDrl(new StringReader(drl));<br>&gt;&gt; RuleBase templateRuleBase = RuleBaseFactory.newRuleBase();<br>&gt;&gt; templateRuleBase.addPackage(builder.getPackage());<br>
&gt;&gt; // create session<br>&gt;&gt; StatefulSession rulesSession = templateRuleBase.newStatefulSession();<br>&gt;&gt; KnowledgeRuntimeLogger rulesLogger =<br>&gt;&gt; KnowledgeRuntimeLoggerFactory.newConsoleLogger(rulesSession);//&lt;&lt;*DOESN&#39;T<br>
&gt;&gt; COMPILE!*<br>&gt;&gt; FactHandle factHandle = rulesSession.insert(myFact);<br>&gt;&gt; // fire the rules<br>&gt;&gt; rulesSession.fireAllRules();<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; ------------------------------<br>
&gt;&gt; View this message in context: Drools 5 - how create Logger for Template<br>&gt;&gt; File based<br>&gt;&gt; rules?&lt;<a href="http://www.nabble.com/Drools-5---how-create-Logger-for-Template-File-based-rules--tp24277191p24277191.html">http://www.nabble.com/Drools-5---how-create-Logger-for-Template-File-based-rules--tp24277191p24277191.html</a>&gt;<br>
&gt;&gt; Sent from the drools - user mailing list<br>&gt;&gt; archive&lt;<a href="http://www.nabble.com/drools---user-f11823.html">http://www.nabble.com/drools---user-f11823.html</a>&gt;at Nabble.com.<br>&gt;&gt;<br>&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>&gt;&gt; rules-users mailing list<br>&gt;&gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
&gt;&gt;<br>&gt;&gt;<br>&gt;<br>&gt; _______________________________________________<br>&gt; rules-users mailing list<br>&gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
&gt;<br>&gt;<br><br>--<br>View this message in context: <a href="http://www.nabble.com/Drools-5---how-create-Logger-for-Template-File-based-rules--tp24277191p24327369.html">http://www.nabble.com/Drools-5---how-create-Logger-for-Template-File-based-rules--tp24277191p24327369.html</a><br>
Sent from the drools - user mailing list archive at Nabble.com.<br><br>_______________________________________________<br>rules-users mailing list<br><a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><br></blockquote></div><br>