<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Look at screen shot for questions 1 and 2<br>
<br>
<img src="cid:part1.04090904.06080405@dna20.com" alt=""><br>
<br>
<br>
UI is a little screwy but you can check for null.<br>
<br>
As for question 3, if you look at the source of your drl, you'll see
if you have a named reference to your object if not, you cannot use
it on the right hand side. If you look at my rule, I'm setting the
contents of <b>override </b>to <b>resultNumberToPick </b>which
is what I think your trying to accomplish.<br>
<br>
hth<br>
<br>
Minh<br>
<br>
<br>
On 10/7/2010 2:15 PM, Dean Whisnant wrote:
<blockquote
cite="mid:86842F7EF952B940B49255CEDB657F2C20C535FEF1@Exchange07.basysnet.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<meta name="Generator" content="Microsoft Word 12 (filtered
medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Monaco;
        panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:862062333;
        mso-list-type:hybrid;
        mso-list-template-ids:-567091636 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-text:"%1\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal">Hello,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></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. <o:p></o:p></p>
<p class="MsoNormal" style=""><span style="font-family: Monaco;
color: black;"><o:p> </o:p></span></p>
<p class="MsoNormal" style=""><span style="font-family: Monaco;
color: black;"> ksession.insert(myObjectIn);</span><span
style="font-family: Monaco;"><o:p></o:p></span></p>
<p class="MsoNormal" style=""><span style="font-family: Monaco;
color: black;"> ksession.insert(myObjectOut);</span><span
style="font-family: Monaco;"><o:p></o:p></span></p>
<p class="MsoNormal" style=""><span style="font-family: Monaco;
color: black;"> ksession.fireAllRules();</span><span
style="font-family: Monaco;"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The first object has around 1,000 fields
and the second has
250, so my class structure is quite broad.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">In a DRL file I have created the following
rule:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style=""><b><span style="font-family:
Monaco; color: rgb(150, 0, 0);">rule</span></b><span
style="font-family: Monaco; color: black;"> </span><span
style="font-family: Monaco; color: green;">"Primary
Diagnosis Code"</span><span style="font-family: Monaco;"><o:p></o:p></span></p>
<p class="MsoNormal" style=""><span style="font-family: Monaco;
color: black;"> </span><b><span style="font-family:
Monaco; color: rgb(150, 0, 0);">when</span></b><span
style="font-family: Monaco;"><o:p></o:p></span></p>
<p class="MsoNormal" style=""><span style="font-family: Monaco;
color: black;"> $ccl
: anObjectIn(IncomingDiag1 != </span><b><span
style="font-family: Monaco; color: rgb(150, 0, 0);">null</span></b><span
style="font-family: Monaco; color: black;">)</span><span
style="font-family: Monaco;"><o:p></o:p></span></p>
<p class="MsoNormal" style=""><span style="font-family: Monaco;
color: black;"> $cdl
: anObjectOut()</span><span style="font-family: Monaco;"><o:p></o:p></span></p>
<p class="MsoNormal" style=""><span style="font-family: Monaco;
color: black;"> </span><b><span style="font-family:
Monaco; color: rgb(150, 0, 0);">then</span></b><span
style="font-family: Monaco; color: black;"> </span><span
style="font-family: Monaco;"><o:p></o:p></span></p>
<p class="MsoNormal" style=""><span style="font-family: Monaco;
color: black;"> $cdl.PrimaryDiag
= $ccl.IncomingDiag1;</span><span style="font-family:
Monaco;"><o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-family: Monaco; color:
rgb(150, 0, 0);">end</span></b><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></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.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></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.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The questions that are hitting me now are:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoListParagraph" style="text-indent: -0.25in;"><!--[if !supportLists]--><span
style="">1)<span style="font: 7pt "Times New
Roman";">
</span></span><!--[endif]-->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 source shows “”””.<o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent: -0.25in;"><!--[if !supportLists]--><span
style="">2)<span style="font: 7pt "Times New
Roman";">
</span></span><!--[endif]-->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?<o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent: -0.25in;"><!--[if !supportLists]--><span
style="">3)<span style="font: 7pt "Times New
Roman";">
</span></span><!--[endif]-->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:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><span
style="font-family: Monaco; color: black;">anObjectIn</span><span
style="font-family:
"Tahoma","sans-serif"; color: rgb(68,
68, 68);"> fact0 = new </span><span style="font-family:
Monaco; color: black;">anObjectIn</span><span
style="font-family:
"Tahoma","sans-serif"; color: rgb(68,
68, 68);"> ();<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><span
style="font-family:
"Tahoma","sans-serif"; color: rgb(68,
68, 68);">fact0.</span><span style="font-family: Monaco;
color: black;"> IncomingDiag1</span><span
style="font-family:
"Tahoma","sans-serif"; color: rgb(68,
68, 68);"> ( 11 );<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><span
style="font-family:
"Tahoma","sans-serif"; color: rgb(68,
68, 68);">insertLogical(fact0 );</span> <o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 0.25in;"> <o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 0.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?<o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left: 0.25in;">Thank you!<o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 0.25in;"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left: 0.25in;">Dean Whisnant<o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 0.25in;">Senior
Software Developer<o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 0.25in;">basys, inc.<o:p></o:p></p>
</div>
<pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
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>
</body>
</html>