[rules-users] How to get value of global variable from one rule to another
Alexander Komissarov
aleks.komissarov at gmail.com
Fri Jun 15 05:29:12 EDT 2007
2007/6/14, rules-users-request at lists.jboss.org <
rules-users-request at lists.jboss.org>:
>
> Send rules-users mailing list submissions to
> rules-users at lists.jboss.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://lists.jboss.org/mailman/listinfo/rules-users
> or, via email, send a message with subject or body 'help' to
> rules-users-request at lists.jboss.org
>
> You can reach the person managing the list at
> rules-users-owner at lists.jboss.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of rules-users digest..."
>
> Today's Topics:
>
> 1. How to get value of global variable from one rule to another
> (Alexander Komissarov)
> 2. RE: How to get value of global variable from one rule
> toanother (Anstis, Michael (M.))
> 3. Re: How to get value of global variable from one rule to
> another (Edson Tirelli)
> 4. Running on z/OS... (jdepaul)
>
>
> ---------- Пересланное письмо ----------
> From: "Alexander Komissarov" <aleks.komissarov at gmail.com>
> To: rules-users at lists.jboss.org
> Date: Thu, 14 Jun 2007 16:46:07 +0300
> Subject: [rules-users] How to get value of global variable from one rule
> to another
> Hello,
>
> Please give me advice for best way storing global variables.
>
> global java.lang.Integer res;
> global java.lang.Integer res2;
> ...
>
> I've several number of rules. One rule has variable initialization e.g.:
>
> ...
> rule "AmountsAreNotNull" salience 20
> when
> < conditions >
> then
> ...
> res = new Integer(a.compareTo(new BigDecimal(25)));
> res = (res == -1)?0:res;
> res = (res == -1)?0:res;
> res2 = new Integer(a.compareTo(b));
> res2 = (res2 == -1)?0:res2;
> ...
> end
>
> The values of these variables are proper and equal 1
>
> Then next rule has comparing for res|res2 values, but they have lost their
> values (res == null and res2 == null)
>
> rule "CompareValues" salience 10
> when
> res:Integer(intValue == 0)
> res2:Integer(intValue == 0)
> result:List()
> then
> result.add(Boolean.TRUE);
> end
>
> What decision you can advise me to save variables value between rules?
> Thanks.
> ____________________
> Regards,
> Komissarov Alexander
> mail: aleks.komissarov at gmail.com
> icq: 239128267
>
> ---------- Пересланное письмо ----------
> From: "Anstis, Michael \(M.\)" <manstis1 at ford.com>
> To: "Rules Users List" <rules-users at lists.jboss.org>
> Date: Thu, 14 Jun 2007 15:03:33 +0100
> Subject: RE: [rules-users] How to get value of global variable from one
> rule toanother
> I believe globals are to be used in the RHS of a rule and not the LHS
> which uses "normal" facts.
>
> I would suggest rule "AmountsAreNotNull" asserts new objects that activate
> rule "CompareValue" or something similar.
>
> Saving variables between rules should be accomplished using logically
> asserted facts.
>
> I hope this helps.
>
> Mike
>
> ------------------------------
> *From:* rules-users-bounces at lists.jboss.org [mailto:
> rules-users-bounces at lists.jboss.org] *On Behalf Of *Alexander Komissarov
> *Sent:* 14 June 2007 14:46
> *To:* rules-users at lists.jboss.org
> *Subject:* [rules-users] How to get value of global variable from one rule
> toanother
>
> Hello,
>
> Please give me advice for best way storing global variables.
>
> global java.lang.Integer res;
> global java.lang.Integer res2;
> ...
>
> I've several number of rules. One rule has variable initialization e.g.:
>
> ...
> rule "AmountsAreNotNull" salience 20
> when
> < conditions >
> then
> ...
> res = new Integer(a.compareTo(new BigDecimal(25)));
> res = (res == -1)?0:res;
> res = (res == -1)?0:res;
> res2 = new Integer(a.compareTo(b));
> res2 = (res2 == -1)?0:res2;
> ...
> end
>
> The values of these variables are proper and equal 1
>
> Then next rule has comparing for res|res2 values, but they have lost their
> values (res == null and res2 == null)
>
> rule "CompareValues" salience 10
> when
> res:Integer(intValue == 0)
> res2:Integer(intValue == 0)
> result:List()
> then
> result.add(Boolean.TRUE);
> end
>
> What decision you can advise me to save variables value between rules?
> Thanks.
> ____________________
> Regards,
> Komissarov Alexander
> mail: aleks.komissarov at gmail.com
> icq: 239128267
>
>
>
> ---------- Пересланное письмо ----------
> From: "Edson Tirelli" <tirelli at post.com>
> To: "Rules Users List" <rules-users at lists.jboss.org>
> Date: Thu, 14 Jun 2007 11:18:28 -0300
> Subject: Re: [rules-users] How to get value of global variable from one
> rule to another
>
> Globals are intended to provide a way to pass values in and out of the
> engine. Not for reasoning and exchange of values between rules.
> Values that are changed by rules and are reasoned over are clearly
> facts of your domain and should be modeled as such.
>
> []s
> Edson
>
> 2007/6/14, Alexander Komissarov <aleks.komissarov at gmail.com>:
> >
> > Hello,
> >
> > Please give me advice for best way storing global variables.
> >
> > global java.lang.Integer res;
> > global java.lang.Integer res2;
> > ...
> >
> > I've several number of rules. One rule has variable initialization e.g.:
> >
> > ...
> > rule "AmountsAreNotNull" salience 20
> > when
> > < conditions >
> > then
> > ...
> > res = new Integer(a.compareTo(new BigDecimal(25)));
> > res = (res == -1)?0:res;
> > res = (res == -1)?0:res;
> > res2 = new Integer(a.compareTo(b));
> > res2 = (res2 == -1)?0:res2;
> > ...
> > end
> >
> > The values of these variables are proper and equal 1
> >
> > Then next rule has comparing for res|res2 values, but they have lost
> > their values (res == null and res2 == null)
> >
> > rule "CompareValues" salience 10
> > when
> > res:Integer(intValue == 0)
> > res2:Integer(intValue == 0)
> > result:List()
> > then
> > result.add(Boolean.TRUE);
> > end
> >
> > What decision you can advise me to save variables value between rules?
> > Thanks.
> > ____________________
> > Regards,
> > Komissarov Alexander
> > mail: aleks.komissarov at gmail.com
> > icq: 239128267
> > _______________________________________________
> > rules-users mailing list
> > rules-users at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/rules-users
> >
> >
>
>
> --
> Edson Tirelli
> Software Engineer - JBoss Rules Core Developer
> Office: +55 11 3529-6000
> Mobile: +55 11 9287-5646
> JBoss, a division of Red Hat @ www.jboss.com
>
> ---------- Пересланное письмо ----------
> From: jdepaul <jjdepaul at us.ibm.com>
> To: rules-users at lists.jboss.org
> Date: Thu, 14 Jun 2007 08:42:15 -0700 (PDT)
> Subject: [rules-users] Running on z/OS...
>
> Is anyone running DROOLS on z/OS on a mainframe?! Any reason why it would
> NOT run on it?!
>
> James
>
> --
> View this message in context:
> http://www.nabble.com/Running-on-z-OS...-tf3922593.html#a11122860
> 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
>
>
Thanks all for explanations, but
Also, I've tried to map these values in the
rule "AmountsAreNotNull" salience 20
when
...
then
...
<res, res2 initialization>
map.put("result",res);
map.put("result2",res2);
...
and check it in the next rule:
rule "CompareValues" salience 10
when
map : Map( keySet contains "result" )
...
"keyset" couldn't found "result" and "result2" mapping
but! when I've checked "keyset" in RHS part of this rule "keyset" HAS proper
values of "result" and "result2":
...
then
Iterator k = map.keySet().iterator();
while (k.hasNext())
{
String key = k.next().toString();
LOGGER.info("Key: " + key + "; Value: " + map.get
(key).toString());
}
...
end
How I can check values of "result" and "result2" in LHS part of rule
"CompareValues"?
Thanks,
____________________
Regards,
Komissarov Alexander
mail: aleks.komissarov at gmail.com
icq: 239128267
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070615/35846ef1/attachment.html
More information about the rules-users
mailing list