[rules-users] execute Rules selectively

Wolfgang Laun wolfgang.laun at gmail.com
Fri Mar 25 10:48:43 EDT 2011


A cannot be a fact and a variable at the same time. If you have, say,
   class Box { String input;... }
as a Java class, you'll have to check that input != null and != "" before
you check that it contains characters according to a number. (This
could be done in a single rule.)

But you can't simply the string against numeric limits; you'll have to
do a conversion into another field or, preferably, into the application
object.

rule checkInput
when
    Box( $inp: input == null || == "" || not matches "\\d+" )
then
    ...error...
end

rule convert
when
    Box( $inp: input != null && != "" && matches "\\d+" )
then
    insert( new Data( Integer.valueOf( $inp ) ) );
end

rule checkRange
when
    Data( value < 0 || value > 100 )
then
    ... error ...
end

And, most certainly, you don't want to have this executed at the same time.

-W




On 25 March 2011 15:35, Benson Fung <benson.redhat at gmail.com> wrote:

> I see what you mean.  You are right, that means when the fact A is
> inserted , the rule engine will come up an agenda which is A()
> related, right?
>
> OK, let's take in another way.  If A is one of a variable of a Fact
> say X(), then only the 3 rules evaluate the A variable of the Fact X()
> in the 1000 rules of rulebase.  How can I only execute the 3 rules
> programmatically?
>
> In fact, the problem comes from the legacy window program.  When we
> develop the old window program, we can add lots of field validation of
> the field by right clicking the edit box, right?  Right now, we need
> to migrate to java-based solution and use the BRMS to store those
> validation rules.  The above 3 rules were put in the validation rules
> of the edit field of the window program, and now I put these 3 rules
> into the BRMS and revamp the window program frontend to whatever
> html/GWT/ZK frontend now.
>
> If cannot get what I mean, please tell me and I try to describe again.
>
>
> Thank you very much and thanks for your patience.
>
>
> Benson
>
> On Fri, Mar 25, 2011 at 9:39 PM, Mauricio Salatino <salaboy at gmail.com>
> wrote:
> > so you don't need to worry about them to fire...
> > Drools will evaluate only the meaningful rules for the fact A(). There is
> no
> > need for grouping in your situation.
> > Are you having a problem with you other rules and that's why are you
> trying
> > to separate them?
> > Greetings.
> >
> > On Fri, Mar 25, 2011 at 10:38 AM, Benson Fung <benson.redhat at gmail.com>
> > wrote:
> >>
> >> The other 997 rules are for another Fact.  Sorry for my misleading you.
> >>
> >>
> >> Benson
> >>
> >> On Fri, Mar 25, 2011 at 9:35 PM, Mauricio Salatino <salaboy at gmail.com>
> >> wrote:
> >> > but you have another 997 rules about the A() Fact? or the other rules
> >> > are
> >> > about another facts??
> >> > Greetings.
> >> >
> >> > On Fri, Mar 25, 2011 at 10:29 AM, Benson Fung <
> benson.redhat at gmail.com>
> >> > wrote:
> >> >>
> >> >> Thanks Mauricio,
> >> >>
> >> >> What I want is to only execute these 3 rules simultaneously out of
> >> >> 1000 rules in the rulebase.  Can you advise programmatically how to
> >> >> achieve?
> >> >>
> >> >> Thanks
> >> >>
> >> >>
> >> >> On Fri, Mar 25, 2011 at 9:19 PM, Mauricio Salatino <
> salaboy at gmail.com>
> >> >> wrote:
> >> >> > If you include all that rules inside a knowledge session and then
> if
> >> >> > you
> >> >> > insert A, all the rules will be evaluated.
> >> >> > There is no need to create an agenda group for that, unless I'm
> >> >> > missing
> >> >> > something else that you don't mention :)
> >> >> > Greetings.
> >> >> >
> >> >> > On Fri, Mar 25, 2011 at 10:10 AM, Benson Fung
> >> >> > <benson.redhat at gmail.com>
> >> >> > wrote:
> >> >> >>
> >> >> >> Hi Leonardo,
> >> >> >>
> >> >> >> Thanks for your patience.  Let me try to describe what I want in
> >> >> >> details.
> >> >> >>
> >> >> >> e.g.  There is a variable A with 3 rules in BRMS.
> >> >> >>
> >> >> >> The variable A is input by a user via an edit box at the frontend.
> >> >> >> Now there are 1000 rules in the BRMS rulebase.  However, 3 out of
> >> >> >> 1000
> >> >> >> rules are related to this variable A, like
> >> >> >>
> >> >> >> rule 'check_a_empty'
> >> >> >> when (( A == null) || (A == "") )
> >> >> >>
> >> >> >> then  return a message 'A cannot be empty'
> >> >> >>
> >> >> >> rule 'A_Range_0_100'
> >> >> >> when ((A < 0 ) || (A > 100) )
> >> >> >>
> >> >> >> then return a message 'A must be within the range between 0 and
> 100'
> >> >> >>
> >> >> >> rule 'check_A_Character'
> >> >> >> when ((A is not an integer))
> >> >> >>
> >> >> >> return a message 'A must be an integer'
> >> >> >>
> >> >> >>
> >> >> >> If I would like to execute the above 3 rules at the same time, how
> >> >> >> to
> >> >> >> write/develop the AgendaFilter class?
> >> >> >>
> >> >> >> Please advise
> >> >> >>
> >> >> >>
> >> >> >> Thank you very much
> >> >> >> Benson
> >> >> >>
> >> >> >> 2011/3/25 Leonardo Gomes <leonardo.f.gomes at gmail.com>:
> >> >> >> > Hi Benson,
> >> >> >> >
> >> >> >> > What exactly do you want to achieve? You want to execute rules
> in
> >> >> >> > parallel?
> >> >> >> >
> >> >> >> >
> >> >> >> >
> >> >> >> > On Fri, Mar 25, 2011 at 2:08 AM, Benson Fung
> >> >> >> > <benson.redhat at gmail.com>
> >> >> >> > wrote:
> >> >> >> >>
> >> >> >> >> Hi,
> >> >> >> >>
> >> >> >> >> I have setup about 10 rules in the rulebase.  Can you tell me
> how
> >> >> >> >> I
> >> >> >> >> can execute more than one specific rule at the same time?
>  Please
> >> >> >> >> help
> >> >> >> >>
> >> >> >> >>
> >> >> >> >> Thanks
> >> >> >> >> Benson
> >> >> >> >> _______________________________________________
> >> >> >> >> rules-users mailing list
> >> >> >> >> rules-users at lists.jboss.org
> >> >> >> >> https://lists.jboss.org/mailman/listinfo/rules-users
> >> >> >> >
> >> >> >> >
> >> >> >> > _______________________________________________
> >> >> >> > rules-users mailing list
> >> >> >> > rules-users at lists.jboss.org
> >> >> >> > https://lists.jboss.org/mailman/listinfo/rules-users
> >> >> >> >
> >> >> >> >
> >> >> >>
> >> >> >> _______________________________________________
> >> >> >> rules-users mailing list
> >> >> >> rules-users at lists.jboss.org
> >> >> >> https://lists.jboss.org/mailman/listinfo/rules-users
> >> >> >
> >> >> >
> >> >> >
> >> >> > --
> >> >> >  - CTO @ http://www.plugtree.com
> >> >> >  - MyJourney @ http://salaboy.wordpress.com
> >> >> >  - Co-Founder @ http://www.jbug.com.ar
> >> >> >
> >> >> >  - Salatino "Salaboy" Mauricio -
> >> >> >
> >> >
> >> >
> >> >
> >> > --
> >> >  - CTO @ http://www.plugtree.com
> >> >  - MyJourney @ http://salaboy.wordpress.com
> >> >  - Co-Founder @ http://www.jbug.com.ar
> >> >
> >> >  - Salatino "Salaboy" Mauricio -
> >> >
> >
> >
> >
> > --
> >  - CTO @ http://www.plugtree.com
> >  - MyJourney @ http://salaboy.wordpress.com
> >  - Co-Founder @ http://www.jbug.com.ar
> >
> >  - Salatino "Salaboy" Mauricio -
> >
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20110325/b19e78ea/attachment.html 


More information about the rules-users mailing list