Previously Edson had suggested using the "from" CE.
Here is the example from his previous posting
rule "Device not working (condition id = 4)"
when
alertDefinition : AlertDefinition (conditionID==
4, eid : entityID)
Power( value < 1000 ) from dao.getPower( eid )
Temperature( deviceTemp > 50, ambTemp > 40 ) from
dao.getTemperature(eid)
then
log("Triggered Device not working alert for "+
eid);
end
The "from" CE (conditional expression) is not
available in the current released jboss rules version
(3.0.5) and you probably have to use the nightly build
to use it.
-Rahul
--- "Anstis, Michael (M.)" <manstis1(a)ford.com> wrote:
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(a)lists.jboss.org
[mailto:rules-users-bounces@lists.jboss.org] On
Behalf Of jdepaul
Sent: 01 March 2007 19:35
To: rules-users(a)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(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users