I also need to make a rule with a lookup tables, and I have found that the new version of rules support 'from'.

 

The syntaxe it's something like:

'from'

'from' allows the engine to reason over data not inside the engine, this can be used with global variables to interact with data providing services, such as hibernate. MVEL provides the scripting language capabilities for this, any previously bound variable can be used in the MVEL expression. The following example shows a hibernate named query with some dummy properties that returns a list of Restaurants. Restaurant() is a standard pattern, and can have its own field constraint and bindings like any other pattern.

    $r : Restaurant( $postCode ) from hbSession.getNamedQuery( "some query" ).setProperties( [ key1 : value2, key2 : value ] ).list()

 

I haven’t tried it yet, and I have some questions also. But go ahead! J

__________________________________

Francisco Brum - francisco.brum@link.pt

Link Consulting - http://www.link.pt/

Tel.: 213 100 031

Av. Duque D'Ávila, 23 4º Esq.

1000-138 Lisboa

 

-----Original Message-----
From: rules-users-bounces@lists.jboss.org [mailto:rules-users-bounces@lists.jboss.org] On Behalf Of Anstis, Michael (M.)
Sent: sexta-feira, 2 de Março de 2007 9:16
To: Rules Users List
Subject: RE: [rules-users] Rules with Lookup Tables...

 

I don't have the syntax at hand but Edson has previously posted about

using "from" in similar circumstances.

 

This would allow you to access a lookup table on a database as part of

the LHS of a rule.

 

-----Original Message-----

From: rules-users-bounces@lists.jboss.org

[mailto:rules-users-bounces@lists.jboss.org] On Behalf Of jdepaul

Sent: 01 March 2007 19:35

To: rules-users@lists.jboss.org

Subject: [rules-users] Rules with Lookup Tables...

 

 

I need to evaluate a set of Rules with some of the operators comparing

values

from Facts against a changing Lookup Table - for instance:

 

Some Partners may have several lookup tables defined like this:

 

NISSAN has partner_ids = {2222, 4444, 5555, 66666} and port_locations =

{ABC, EFG, GEE, FDD...}  - these values are stored in the database and

need

to be evaluated at run-time.

 

I suppose one way I could do this is to write a rule like this (sorry,

syntax probably off a bit)...:

 

rule "partner and port match"

  when

    $shipment: Shipment(customerName== "NISSAN", partnerID== "2222"

                                 || customerName=="NISSAN",

partnerID=="3333"

                                 || customerName=="NISSAN",

parternID=="4444")

 

                                 || customerName=="NISSAN",

portLocation=="ABC"

                                 || customerName=="NISSAN",

portLocation=="EFG"

                                 || customerName=="NISSAN",

partLocation=="FDD")

  then

    System.out.println("Found the right one!");

end

 

Trouble is that the values in these lookup tables change frequently, so

I

would like to create a rule that references a lookup table that does a

DB

lookup to evaluate the values at run-time - something like this:

 

rule "partner and port with lookup-table"

  when

    $shipment: Shipment(customerName== "NISSAN", partnerID in

$(partner_ids

) )  <-- db lookup here

 

                                 || customerName=="NISSAN", portLocation

in

$(port_locations))  <-- db lookup here

  then

    System.out.println("Found the right one!");

end

 

 

I know this is probably a stretch in this case - just wondering if

anyone

else was able to solve such a problem?!  If so, how -

 

Thanks,

James

 

--

View this message in context:

http://www.nabble.com/Rules-with-Lookup-Tables...-tf3329159.html#a925682

5

Sent from the drools - user mailing list archive at Nabble.com.

 

_______________________________________________

rules-users mailing list

rules-users@lists.jboss.org

https://lists.jboss.org/mailman/listinfo/rules-users

 

_______________________________________________

rules-users mailing list

rules-users@lists.jboss.org

https://lists.jboss.org/mailman/listinfo/rules-users