<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<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:Consolas;
        panose-1:2 11 6 9 2 2 4 3 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";
        color:black;}
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;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
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";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
-->
</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]-->
</head>
<body bgcolor=white lang=EN-US link=blue vlink=purple>
<div class=WordSection1>
<p class=MsoNormal><span style='color:#1F497D'>Minh,<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>Thank you again.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>For #1, that will work for me.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>For #2, actually, I figured this
one out. Not completely intuitive, but I am starting to get the feel for the
UI and knowing what I do I think I could teach our users some of the
subtleties.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>Have a great day!<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>Dean…<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>
<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";
color:windowtext'>From:</span></b><span style='font-size:10.0pt;font-family:
"Tahoma","sans-serif";color:windowtext'> rules-users-bounces@lists.jboss.org
[mailto:rules-users-bounces@lists.jboss.org] <b>On Behalf Of </b>Minh Huon<br>
<b>Sent:</b> Friday, October 08, 2010 4:51 PM<br>
<b>To:</b> Rules Users List<br>
<b>Subject:</b> Re: [rules-users] Guvnor LHS and RHS questions<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>For question 1, if your asking can a object matched be
automatically set to a variable that you can later reference? No.
You have to provide the binding else how would you know how to reference it.<br>
<br>
For question 2, the or part is tricky from the UI as you have to do the and
first then or embedded in the and. You accomplish that via <b>Multiple
field constraints</b>. So I guess you always want to start on the outter
condition and work your way in due to the quirkiness of the UI.<br>
<br>
<img width=1280 height=984 id="_x0000_i1026"
src="cid:image001.png@01CB67D9.860156F0"><br>
<br>
HTH<br>
Minh<br>
<br>
On 10/8/2010 5:11 AM, Dean Whisnant wrote: <o:p></o:p></p>
<p class=MsoNormal><span style='color:#1F497D'>Minh,</span><o:p></o:p></p>
<p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p>
<p class=MsoNormal><span style='color:#1F497D'>Thank you! The binding to
a variable is the part I was missing in order to accomplish 2 & 3 and #1
was as simple as using the formula to say null.</span><o:p></o:p></p>
<p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p>
<p class=MsoNormal><span style='color:#1F497D'>Last night I worked through this
and some matching Regex issues I had.</span><o:p></o:p></p>
<p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p>
<p class=MsoNormal><span style='color:#1F497D'>I do have two follow on questions
if you don’t mind:</span><o:p></o:p></p>
<p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p>
<p class=MsoListParagraph style='text-indent:-.25in'><span style='color:#1F497D'>Can
the binding be done in another way where you don’t have to set it up on each
rule?</span><o:p></o:p></p>
<p class=MsoListParagraph style='text-indent:-.25in'><span style='color:#1F497D'>How
does one go about creating an “or” condition here in guvnor? </span><o:p></o:p></p>
<p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in'><span
style='color:#1F497D'>If ((string1 != null || string2 != “AB”)
&& string1 != string2) then</span><o:p></o:p></p>
<p class=MsoListParagraph style='margin-left:1.0in;text-indent:-.25in'><span
style='color:#1F497D'>If (string1 == “ABC” || string1 ==”XYZ” |
string1==”QWERTY”) then</span><o:p></o:p></p>
<p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p>
<p class=MsoNormal><span style='color:#1F497D'>These scenarios all seem so
simple to me from a DRL hand coding, so I know they must be able to be handled
in guvnor and I’m just missing some subtle nuance.</span><o:p></o:p></p>
<p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p>
<p class=MsoNormal><span style='color:#1F497D'>I appreciate the help…</span><o:p></o:p></p>
<p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p>
<p class=MsoNormal><span style='color:#1F497D'>Dean</span><o:p></o:p></p>
<p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p>
<div>
<div style='border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0in 0in 0in;
border-color:-moz-use-text-color -moz-use-text-color'>
<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";
color:windowtext'>From:</span></b><span style='font-size:10.0pt;font-family:
"Tahoma","sans-serif";color:windowtext'> <a
href="mailto:rules-users-bounces@lists.jboss.org">rules-users-bounces@lists.jboss.org</a>
[<a href="mailto:rules-users-bounces@lists.jboss.org">mailto:rules-users-bounces@lists.jboss.org</a>]
<b>On Behalf Of </b>Minh Huon<br>
<b>Sent:</b> Thursday, October 07, 2010 8:31 PM<br>
<b>To:</b> Rules Users List<br>
<b>Subject:</b> Re: [rules-users] Guvnor LHS and RHS questions</span><o:p></o:p></p>
</div>
</div>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>Look at screen shot for questions 1 and 2<br>
<br>
<img border=0 width=994 height=900 id="_x0000_i1025"
src="cid:image002.png@01CB67D9.860156F0"><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: <o:p></o:p></p>
<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><span style='font-family:Monaco'> </span><o:p></o:p></p>
<p class=MsoNormal><span style='font-family:Monaco'>
ksession.insert(myObjectIn);</span><o:p></o:p></p>
<p class=MsoNormal><span style='font-family:Monaco'>
ksession.insert(myObjectOut);</span><o:p></o:p></p>
<p class=MsoNormal><span style='font-family:Monaco'>
ksession.fireAllRules();</span><o:p></o:p></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><b><span style='font-family:Monaco;color:#960000'>rule</span></b><span
style='font-family:Monaco'> </span><span style='font-family:Monaco;color:green'>"Primary
Diagnosis Code"</span><o:p></o:p></p>
<p class=MsoNormal><span style='font-family:Monaco'> </span><b><span
style='font-family:Monaco;color:#960000'>when</span></b><o:p></o:p></p>
<p class=MsoNormal><span style='font-family:Monaco'>
$ccl : anObjectIn(IncomingDiag1 != </span><b><span style='font-family:Monaco;
color:#960000'>null</span></b><span style='font-family:Monaco'>)</span><o:p></o:p></p>
<p class=MsoNormal><span style='font-family:Monaco'>
$cdl : anObjectOut()</span><o:p></o:p></p>
<p class=MsoNormal><span style='font-family:Monaco'> </span><b><span
style='font-family:Monaco;color:#960000'>then</span></b><span style='font-family:
Monaco'> </span><o:p></o:p></p>
<p class=MsoNormal><span style='font-family:Monaco'>
$cdl.PrimaryDiag = $ccl.IncomingDiag1;</span><o:p></o:p></p>
<p class=MsoNormal><b><span style='font-family:Monaco;color:#960000'>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'>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:-.25in'>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:-.25in'>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:-.25in'>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'>anObjectIn</span>” or to “logically insert fact <span
style='font-family:Monaco'>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:.25in'><span style='font-family:Monaco'>anObjectIn</span><span
style='font-family:"Tahoma","sans-serif"'> fact0 = new </span><span
style='font-family:Monaco'>anObjectIn</span><span style='font-family:"Tahoma","sans-serif"'>
();</span><o:p></o:p></p>
<p class=MsoNormal style='margin-left:.25in'><span style='font-family:"Tahoma","sans-serif"'>fact0.</span><span
style='font-family:Monaco'> IncomingDiag1</span><span style='font-family:"Tahoma","sans-serif"'>
( 11 );</span><o:p></o:p></p>
<p class=MsoNormal style='margin-left:.25in'><span style='font-family:"Tahoma","sans-serif"'>insertLogical(fact0
);</span> <o:p></o:p></p>
<p class=MsoNormal style='margin-left:.25in'>
<o:p></o:p></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?<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.25in'> <o:p></o:p></p>
<p class=MsoNormal style='margin-left:.25in'>Thank you!<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.25in'> <o:p></o:p></p>
<p class=MsoNormal style='margin-left:.25in'>Dean Whisnant<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.25in'>Senior Software Developer<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.25in'>basys, inc.<o:p></o:p></p>
<pre> <o:p></o:p></pre><pre> <o:p></o:p></pre><pre>_______________________________________________<o:p></o:p></pre><pre>rules-users mailing list<o:p></o:p></pre><pre><a
href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><o:p></o:p></pre><pre><a
href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><o:p></o:p></pre><pre><o:p> </o:p></pre><pre><o:p> </o:p></pre><pre>_______________________________________________<o:p></o:p></pre><pre>rules-users mailing list<o:p></o:p></pre><pre><a
href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><o:p></o:p></pre><pre><a
href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><o:p></o:p></pre></div>
</body>
</html>