Hello,

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.

                ksession.insert(myObjectIn);
                ksession.insert(myObjectOut);
                ksession.fireAllRules();

The first object has around 1,000 fields and the second has 250, so my class 
structure is quite broad.

In a DRL file I have created the following rule:

rule "Primary Diagnosis Code"
     when
           $ccl : anObjectIn(IncomingDiag1 != null)
           $cdl  : anObjectOut()
     then
           $cdl.PrimaryDiag = $ccl.IncomingDiag1;
end

This rule fires great and the PrimaryDiag field in myObjectOut is updated with 
what iss in myObjectIn.IncomingDiag.  I can then write the object back out the 
the database fine.

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.

The questions that are hitting me now are:


1)      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 """".

2)      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?

3)      On the RHS, when I go to add a new then, I'm prompted to choose only to 
either "insert fact anObjectIn" or to "logically insert fact anObjectIn" 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:

anObjectIn fact0 = new anObjectIn ();
fact0. IncomingDiag1 ( 11 );
insertLogical(fact0 );

        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?

Thank you!

Dean Whisnant
Senior Software Developer
basys, inc.
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to