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

Anstis, Michael (M.) manstis1 at ford.com
Fri Mar 2 04:15:35 EST 2007


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 at lists.jboss.org
[mailto:rules-users-bounces at lists.jboss.org] On Behalf Of jdepaul
Sent: 01 March 2007 19:35
To: rules-users at 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 at lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users




More information about the rules-users mailing list