[rules-users] Externalizing Rule parameters - patterns/bestpractices

Anstis, Michael (M.) manstis1 at ford.com
Wed Dec 12 10:23:15 EST 2007


Ultimately I guess the decision is yours, as you possess the domain
knowledge.
 
In your example, if the amount 2000 is static you could externalise this
into a global; if however it is dependant upon another domain entity
(ClientType for example) you might introduce it as another Fact.
 
You could also look into externalising by using the "from" keyword (although
the result needs to be static as the rule engine cranks).
 
My preference, if the parameters are static, would be for the use of globals
read by the service tier and put into the WM.
 
With kind regards,
 
Mike


  _____  

From: rules-users-bounces at lists.jboss.org
[mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Krishna Satya
Sent: 12 December 2007 15:10
To: rules-users at lists.jboss.org
Subject: [rules-users] Externalizing Rule parameters -
patterns/bestpractices


Hi, I am a new user to Drools and having passed the first few days of
reading and experimenting with the tool I am now looking to see how rule
parameters can be externalized.  And along those lines looking for patterns
and best practices.  I have searched through the user forums (maybe not
submitting the right search critera) and through samples etc.    

My query is from my intent that application should be decoupled from rules
and the rules are decoupled from its parameters.

I am wondering if Decision tables is the recommended approach or
externalizing/sourcing from Db recommended.  Does the Business Service that
interacts with the rule engine source the rule parameters and push it into
working memory for the rule to pickup...or should the rule declaration be
tightly coupled to its parameters. 

For example (Quick Psudo code, not sure if I have made any syntactical
errors):

rule "Fee Waive Rule"
    when
         clientRequest : Request(account.balance > 2000 )
    then
          clientRequest.setFee(0);
end

rule "Fee Apply Rule"
    when
         clientRequest : Request(account.balance < 2000 )
    then
         clientRequest.setFee(5);
end

In the example above what are the best ways to externalize and make
available to the rule the account balance and fee parameters? 

Any guidance on patterns/best practices/examples would be much appreciated.

Regards.
- Krishna


  

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20071212/c992865d/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 4159 bytes
Desc: not available
Url : http://lists.jboss.org/pipermail/rules-users/attachments/20071212/c992865d/attachment.bin 


More information about the rules-users mailing list