<br><br><div class="gmail_quote">2010/10/7 Dean Whisnant <span dir="ltr">&lt;<a href="mailto:dean@basys.com">dean@basys.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">









<div lang="EN-US" link="blue" vlink="purple">

<div>

<p class="MsoNormal">Hello,</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">I’ve only been working with Drools for a little over a
month or so now and I’ve begun integrating it into my application via
Eclipse and creating DRL files.  The nature of this application is to take
a data record from one file and create a new data record in another file. 
This is done in a batch of any number of records, depending on the number of
records sent to us in the first file. To accomplish this I have two classes,
one representing each file, and I create and object for each of them, inserting
them into the knowledge session and then fire the rule.  </p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-family:Monaco;color:black"> </span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-family:Monaco;color:black">                ksession.insert(myObjectIn);</span><span style="font-family:Monaco"></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-family:Monaco;color:black">                ksession.insert(myObjectOut);</span><span style="font-family:Monaco"></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-family:Monaco;color:black">                ksession.fireAllRules();</span><span style="font-family:Monaco"></span></p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">The first object has around 1,000 fields and the second has
250, so my class structure is quite broad.</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">In a DRL file I have created the following rule:</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal" style="text-autospace:none"><b><span style="font-family:Monaco;color:#960000">rule</span></b><span style="font-family:Monaco;color:black"> </span><span style="font-family:Monaco;color:green">&quot;Primary
Diagnosis Code&quot;</span><span style="font-family:Monaco"></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-family:Monaco;color:black">     </span><b><span style="font-family:Monaco;color:#960000">when</span></b><span style="font-family:Monaco"></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-family:Monaco;color:black">           $ccl
: anObjectIn(IncomingDiag1 != </span><b><span style="font-family:Monaco;color:#960000">null</span></b><span style="font-family:Monaco;color:black">)</span><span style="font-family:Monaco"></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-family:Monaco;color:black">           $cdl 
: anObjectOut()</span><span style="font-family:Monaco"></span></p>

<p class="MsoNormal" style="text-autospace:none"><span style="font-family:Monaco;color:black">     </span><b><span style="font-family:Monaco;color:#960000">then</span></b><span style="font-family:Monaco;color:black"> </span><span style="font-family:Monaco"></span></p>


<p class="MsoNormal" style="text-autospace:none"><span style="font-family:Monaco;color:black">           $cdl.PrimaryDiag
= $ccl.IncomingDiag1;</span><span style="font-family:Monaco"></span></p>

<p class="MsoNormal"><b><span style="font-family:Monaco;color:#960000">end</span></b></p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">This rule fires great and the PrimaryDiag field in myObjectOut
is updated with what iss in myObjectIn.<span style="font-family:Monaco;color:black">IncomingDiag</span>.  I can then write the object back out
the the database fine.</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">A requirement of my project is that I allow users (analysts)
to create their own rules that are above and beyond those I might create in a
.drl file. To do so we are looking to deploy Guvnor and let them use the Guided
editor to create rules.  I’ve already loaded my fact models into
Guvnor and have them available in the drop down conditions.</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">The questions that are hitting me now are:</p>

<p class="MsoNormal"> </p>

<p><span>1)<span style="font:7.0pt &quot;Times New Roman&quot;">     
</span></span>On the LHS when I’ve chosen the fiels
IncomingDiag the only options I have for conditions are “equal to”,
“not equal to”, “matches”, and “sounds like”.
I don’t see an option for null or notnull. If I were to choose “not
equal to” I then have the options for Literal Values, New Formulas, or
Expression Editor (which has none by default).  I haven’t seen any
examples where someone is evaluating a field in Guvnor for being either “”
or null.  How would one accomplish this?  The literal value does not
allow you to leave it blank as in “” and if you type “”
in it, the </p></div></div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div lang="EN-US" link="blue" vlink="purple"><div><p>source shows “”””.</p>

<p><span>2)<span style="font:7.0pt &quot;Times New Roman&quot;">     
</span></span>On the LHS, if I were to want to evaluate IncomingDiag1
== IncomingDiag2 I don’t see a method except if I were to choose New
Formula and type in the field name Incoming Diag2.  Is there another way
that they could be prompted for the field choises again?</p></div></div></blockquote><div>If you create a  bound variable, then you will see when you select the value of the operateor a &quot;bound variable&quot; button. So that then you can select the bound variable.</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div lang="EN-US" link="blue" vlink="purple"><div>

<p><span>3)<span style="font:7.0pt &quot;Times New Roman&quot;">     
</span></span>On the RHS, when I go to add a new then, I’m
prompted to choose only to either “insert fact <span style="font-family:Monaco;color:black">anObjectIn</span>” or to “logically insert fact
<span style="font-family:Monaco;color:black">anObjectIn</span>” or to
manually enter DRL logic.  Both of the inserts appear to create logic that
would create a new object with the data in it:</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal" style="margin-left:.25in"><span style="font-family:Monaco;color:black">anObjectIn</span><span style="color:#444444"> fact0 = new </span><span style="font-family:Monaco;color:black">anObjectIn</span><span style="color:#444444"> ();</span></p>


<p class="MsoNormal" style="margin-left:.25in"><span style="color:#444444">fact0.</span><span style="font-family:Monaco;color:black"> IncomingDiag1</span><span style="color:#444444"> ( 11 );</span></p>

<p class="MsoNormal" style="margin-left:.25in"><span style="color:#444444">insertLogical(fact0 );</span> </p>

<p class="MsoNormal" style="margin-left:.25in">        </p>

<p class="MsoNormal" style="margin-left:.25in">        But
what I really want is something similar to my DRL from above.  Am I
missing something?  Or would this have to be a case where they would
manually enter the DRL statement?</p>

<p class="MsoNormal" style="margin-left:.25in"> </p>

<p class="MsoNormal" style="margin-left:.25in">Thank you!</p>

<p class="MsoNormal" style="margin-left:.25in"> </p>

<p class="MsoNormal" style="margin-left:.25in">Dean Whisnant</p>

<p class="MsoNormal" style="margin-left:.25in">Senior Software Developer</p>

<p class="MsoNormal" style="margin-left:.25in">basys, inc.</p>

</div>

</div>


<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" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br>