Use a global variable.

In your java code use a property file and the "inject" to drools using the setGlobal method() of your session.

session.setGlobal("maxBalance", 100) 

and in your drl


global java.lang.Integer maxBalance;

rule “basic rule”

                when

                                Account($balance : balance < maxBalance)

                then  

                                System.out.println(“Account balance: “ + $balance + “ is less than " + maxBalance.toString() );

                end



From: gmacgregor@pocketkings.ie
To: rules-users@lists.jboss.org
Date: Mon, 8 Feb 2010 18:11:57 +0000
Subject: [rules-users] Dynamic Rules

Hi All,

 

Just getting started using Drools and I have a question about dynamic rules. I have written a simple application based on one of the tutorials.

 

Rule:

rule “basic rule”

                when

                                Account($balance : balance < 100)

                then  

                                System.out.println(“Account balance: “ + $balance + “ is less than 100“);

                end

 

 

This rule works fine in my test application but is there a way to replace the static 100 with a dynamic value like, AccountRulesConfig.lowBalance, basically testing against the value of another object rather than a static value?

 

Thanks

 

 Glenn



¿Quieres tener a tus amigos de Facebook en Messenger? ¡Clic AQUÍ!