[rules-users] execute particular rules programmatically and dynamically
Michael Anstis
michael.anstis at gmail.com
Wed Apr 13 12:39:39 EDT 2011
Changed below; I forgot to change the draft I'd saved...
On 13 April 2011 17:37, Michael Anstis <michael.anstis at gmail.com> wrote:
> Here's a quick (and probably sub-optimal way) ;)
>
> When you copy values from the UI to Facts for validation you also include
> the context of the validation.
>
> I've also removed the inline evals you were using.
>
>
> rule "Rule1"
> salience 1
> dialect "mvel"
> when
> *ApplicationContext( context in ("screen1.panel1.editbox1",
> "screen1.panel1.editbox2") )*
> ad : ApplicationData( age == "" || ( == null ))
> then
> ad.setReturnMsg( "\n age should not be null or empty" );
> end
>
> rule "Rule2"
> dialect "mvel"
> when
> *ApplicationContext( context == "screen1.panel1.editbox1" )*
> ad : ApplicationData( $age : age != null , age != "" , age < 0 || >
> 100, minIssrdAge == "Years" )
>
> then
> ad.setReturnMsg( "\nage is out of the range(i.e. < 0 and > 100)" );
> end
>
> rule "Rule3"
> dialect "mvel"
> when
> *ApplicationContext( context == "screen1.panel1.editbox2" )*
> ad : ApplicationData( $age : age != null , age != "" , age <0 || >
> 600, minIssrdAge == "Years" )
> then
> ad.setReturnMsg( "\nage is out of the range(i.e. < 0 and > 600)"
> );
> end
>
> On 13 April 2011 17:19, Benson Fung <benson.redhat at gmail.com> wrote:
>
>> Hi,
>>
>> Here is the scenario :
>>
>> If there are 2 edit boxes and 2 dropdown list at the frontend like.
>>
>>
>> dropdown(minIssrdAge1) editbox(age1)
>> dropdown(minIssrdAge2) editbox(age2)
>>
>> everytime when I lost focus the editbox(age1 or age2), the
>> editbox(age1 or age2) value will be validated against the following
>> rules.
>> i.e. minIssrdAge1 and age1 will be validated together if lost focus
>> the editbox age1.
>> minIssrdAge2 and age2 will be validated together if lost focus
>> the editbox age2
>>
>> Rule1 is mandatory because both editbox are required field.
>> However, editbox(age1) is only valid within the 0 and 100. and
>> editbox(age2) is only valid within 0 and 600.
>>
>> In other words, editbox(age1) have to be validated against Rule1 +
>> Rule2. However, editbox(age2) have to validated against Rule1 +
>> Rule3.
>>
>> My question, how to design the rule attribute or at the java program
>> side so that different editbox can be validated against different
>> rule.
>>
>> Please help. I can't find any solution by now.
>>
>> rule "Rule1"
>> salience 1
>> dialect "mvel"
>> when
>> ad : ApplicationData( age == "" || ( == null ))
>> then
>> ad.setReturnMsg( "\n age should not be null or empty" );
>> end
>>
>>
>> rule "Rule2"
>> dialect "mvel"
>> when
>> ad : ApplicationData( $age : age != null , age != "" ,
>> minIssrdAge
>> == "Years" )
>> eval(Integer.parseInt($age) < 0) or
>> eval(Integer.parseInt($age) > 100)
>> then
>> ad.setReturnMsg( "\nage is out of the range(i.e. < 0 and >
>> 100)" );
>> end
>>
>> rule "Rule3"
>> dialect "mvel"
>> when
>> ad : ApplicationData( $age : age != null , age != "" ,
>> minIssrdAge
>> == "Years" )
>> eval(Integer.parseInt($age) < 0) or
>> eval(Integer.parseInt($age) > 600)
>> then
>> ad.setReturnMsg( "\nage is out of the range(i.e. < 0 and >
>> 600)" );
>> end
>> _______________________________________________
>> 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/20110413/bb5fb2ca/attachment.html
More information about the rules-users
mailing list