<div>It does contain the essential steps I was suggesting. Please try it, and</div>
<div>if there are problems, we'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> <<a href="mailto:christopher.mcfarland@twc.state.tx.us">christopher.mcfarland@twc.state.tx.us</a>> 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><pre><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() > 0) {<br>
for (KnowledgeBuilderError error: errors) {<br> System.err.println(error);<br> }<br> throw new IllegalStateException("Could not parse knowledge from<br>template example");<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>//&lt;&lt;CREATE LOGGER!<br> FactHandle factHandle = rulesSession.insert(myFact);<br>
// fire the rules<br> rulesSession.fireAllRules();<br></pre><br><br><br>Wolfgang Laun-2 wrote:<br>><br>> You can use a KnowledgeBuilder with template-derived DRL-resources and set<br>> up your KnowledgeBase from its results the same way you do it with plain<br>
> .drl-files. Obtain a StatefulKnaowledgeSession and pass this to<br>> the KnowledgeRuntimeLoggerFactory, as in your first code sample.<br>> -W<br>><br>><br>> On 6/30/09, chris@twc <<a href="mailto:christopher.mcfarland@twc.state.tx.us">christopher.mcfarland@twc.state.tx.us</a>> wrote:<br>
>><br>>> I'm trying to figure out how I can create a Logger to log rule<br>>> activations<br>>> for my Template File code. I followed the examples to successfully create<br>>> a<br>>> Logger for DRL and Decision Table examples. Apparently, to create a<br>
>> Logger,<br>>> the KnowledgeRuntimeLoggerFactory methods take a<br>>> KnowledgeRuntimeEventManager type, which<br>>> *StatefulKnowledgeSession*implements. But, for the Template File<br>>> examples, the<br>
>> *StatefulSession* from the "unstable" drools-core *does not* implement<br>>> this interface. SEE the code examples below - how do I create a Logger<br>>> for<br>>> my Template File code?<br>
>><br>>> //#### DRL FILE & EXCEL FILE EXAMPLE FOR CREATING A SESSION AND FIRING<br>>> THE<br>>> RULES:<br>>> //#### CREATING A RULES LOGGER WORKS<br>>><br>>> // populate working memory<br>
>> KnowledgeBuilder kbuilder =<br>>> KnowledgeBuilderFactory.newKnowledgeBuilder();<br>>> kbuilder.add(...[DRL or DTABLE resources]...);<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); //<<*CREATE<br>>> LOGGER!*<br>>> FactHandle factHandle = rulesSession.insert(myFact);<br>>> // fire the rules<br>>> rulesSession.fireAllRules();<br>
>><br>>> //#### TEMPLATE FILE EXAMPLE FOR CREATING A SESSION AND FIRING THE RULES:<br>>> //#### CREATING A RULES LOGGER DOES NOT COMPILE!<br>>><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>>> PackageBuilder builder = new PackageBuilder();<br>>> builder.addPackageFromDrl(new StringReader(drl));<br>>> RuleBase templateRuleBase = RuleBaseFactory.newRuleBase();<br>>> templateRuleBase.addPackage(builder.getPackage());<br>
>> // create session<br>>> StatefulSession rulesSession = templateRuleBase.newStatefulSession();<br>>> KnowledgeRuntimeLogger rulesLogger =<br>>> KnowledgeRuntimeLoggerFactory.newConsoleLogger(rulesSession);//<<*DOESN'T<br>
>> COMPILE!*<br>>> FactHandle factHandle = rulesSession.insert(myFact);<br>>> // fire the rules<br>>> rulesSession.fireAllRules();<br>>><br>>><br>>> ------------------------------<br>
>> View this message in context: Drools 5 - how create Logger for Template<br>>> File based<br>>> rules?<<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>><br>
>> Sent from the drools - user mailing list<br>>> archive<<a href="http://www.nabble.com/drools---user-f11823.html">http://www.nabble.com/drools---user-f11823.html</a>>at Nabble.com.<br>>><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>
>><br>>><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>
><br>><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>