[rules-users] conditional insert of 'exist' or 'not' keywords in decision table s

Olenin, Vladimir (MOH) Vladimir.Olenin at moh.gov.on.ca
Mon Feb 19 09:08:14 EST 2007


Thanks, Steve. That really seems to do the trick. Are there any wiki pages
on this new functionality? Or for now one should refer to the source code &
unit tests?

 

I also wonder what other functionality the new templating engine has? Is it
possible to define different 'types' of rules in the same 'rule' template
and refer to these types from 'Excel' data fields (eg, have one column per
rule where you can refer 'rule template XXX' from drl file; this value can
override some default value for example). If not, how such situations can be
handled? (ie, when one needs several type of rules driven by the same data?)

 

Thanks,

 

Vlad

  _____  

From: rules-users-bounces at lists.jboss.org
[mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Steven Williams
Sent: 17 February 2007 04:25
To: Rules Users List
Subject: Re: [rules-users] conditional insert of 'exist' or 'not' keywords
in decision table s

 

Hi Vlad,

With the new decision table handling you could use the following template to
do it:

Given a table as follows:


exists, 21, 25

, comprehensive


not, 64, 100

exists, comprehensive

the following template does what you want:

template header
driver[]
policy[]

package This_is_a_ruleset;
#generated from Decision Table
import example.model.Driver;
import example.model.Policy ;

template "Driver policy"
driver
policy

rule "driver policy $row.rowNumber$"
    when
        $driver0$
        Driver(age >= $driver1$, age <= $driver2$)
        $policy0$ 
        Policy(type = "$policy1$")
then
    //do smth
end
end template

the code to call it was:
    public void testColumnKeywords() {
        final ExternalSpreadsheetCompiler converter = new
ExternalSpreadsheetCompiler(); 
        final String drl = converter.compile( "/data/TestWorkbook.xls",
"/templates/test_keywords.drl",
                                              InputType.XLS, 1, 1 ); // DT
starts at Row 1, Column 1 
        System.out.println(drl);
    }

cheers
Steve

On 2/17/07, Olenin, Vladimir (MOH) < <mailto:Vladimir.Olenin at moh.gov.on.ca>
Vladimir.Olenin at moh.gov.on.ca> wrote:

Hi,

 

I wonder if it's possible to pass some Column keywords as parameters from
template values, eg:

 


Condition

Condition


$1 Driver

$1 Policy


age >= $2, age <= $3

type


exists, 21, 25

, comprehensive


not, 64, 100

exists, comprehensive

 

I'd expect the above table would generate two rules like:

 

Rule 1

When

            exists Driver (age >= 21, age <= 25)

            Policy(type == "comprehensive")

Then

            // do smth

End

 

 

Rule 2

When

            not Driver (age >= 64, age <= 100)

            exists Policy (type == "comprehensive")

then

            // do smth

End

 

 

 

The above example is just a mock up derived from one of the examples in the
documentation to demonstrate the point (meaning, the rules themselves might
not make sense from business point of view or can be implemented differently
for this particular case).

 

So, any way to achieve this? Whether in current version (3.0.x) or the
upcoming release (3.2)

 

Thanks,

 

Vlad


_______________________________________________
rules-users mailing list
rules-users at lists.jboss.org <mailto:rules-users at lists.jboss.org> 
https://lists.jboss.org/mailman/listinfo/rules-users
<https://lists.jboss.org/mailman/listinfo/rules-users> 




-- 
Steven Williams

Supervising Consultant

Object Consulting
Office: 8615 4500 Mob: 0439 898 668 Fax: 8615 4501 
stevenw at objectconsulting.com.au <mailto:stevenw at objectconsulting.com.au> 
www.objectconsulting.com.au <http://www.objectconsulting.com.au> 

consulting | development | training | support 
our experience makes the difference 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070219/cddb992d/attachment.html 


More information about the rules-users mailing list