Here is my drl file: It seems LHS of all rules executed first irrespective
of salience or focus. What am i doing wrong? Appreciate your help.
rule "Eval Window"
salience 10
agenda-group "Eval Window"
// activation-group "Eval Window"
auto-focus true
when
$data : AirTravelPolicyData($reqDep : fareRequest.requestedDeparture,
$reqRet : fareRequest.requestedReturn,
$itr : itinerary,
$evalWindow : policySettings.evaluationWindow,
$depart : departureFlight.departure,
$retrn : returnFlight.departure
)
eval ((DateUtil.subtractHours((Date)$reqDep,
((Integer)$evalWindow).intValue()))
.before((Date)$depart))
then
// modify block sets $itr.discardable to true
modify($itr) {
setAsDiscardable()
}
// update ($data);
drools.setFocus("Eval carrier");
end
rule "Eval carrier"
salience 5
agenda-group "Eval carrier"
// activation-group "Eval carrier"
when
$data : AirTravelPolicyData($prefCarrier : policySettings.preferredCarrier,
$carrier : departureFlight.carrier,
$discard : itinerary.discarded
)
// Eval Window rule changed discarded flag to true so this condition
should fail but it dose not ???
eval(((Boolean)$itr).booleanValue() == false)
then
// But.. when i print out the discard flag here it show as true.. In that
case how eval condiation is passed?
System.out.println("*********Current Itr in Eval carrier: " +
$discard );
end
Edson Tirelli-3 wrote:
This is wrong:
$data : MyFact( $anotherObj )
Is the parser accepting it without any error???? If so, it is a bug.
I can't even imagine what is the parsing result for such expression.
This is also wrong:
eval ($anotherObj.isDiscard() == true)
There is no previous binding for "$anotherObj". Only possible scenario
is
you defined it as a global.
So, whatever you are doing and seeing, I have no idea how you can
execute
rules.
Can you show us the whole DRL file you are using? Can you show the
snippet of code you are using to execute it?
[]s
Edson
2008/5/13 sridhar123 <sridhar.peddinti(a)sabre.com>:
>
> It still dosen't work as desired. Here is my code:
>
> rule A
> Salience 10
> when
> $data : MyFact( $anotherObj )
> then
> modify( $anotherObj ) {
> setDiscard(true)
> }
>
> rule B
> Salience 5
> when
> eval ($anotherObj.isDiscard() == true)
> then
> ...
>
> It seems, all When conditions are executed first irrespective of "then"
>
> I also tried with agenda group and having default focus on Rule A and in
> Then section setting focus to Rule B - still the condition doesnt match.
> When i inspect fact - after Rule A is executed, i see my flag is set to
> true
> - but not visible to Rule B.
>
> Do i need to write seperate drl files. Also, i am using eclipse 3.3 and
> ruleflow seems buggy i can not add any rule flow groups. do i need to use
> 3.2. I am using Drools 4.0.4
>
> thank you
>
>
>
>
>
> Alessandro Lazarotti wrote:
> >
> >
> >
> >
> >
> >
> >
> > rule A
> > Salience 10
> > when
> > $anotherObject: MyFact(discard != true)
> > then
> > modify($anotherObj){
> > setDiscard(true)
> > }
> >
> >
> > "Modify" update your fact in the current working memory.
> >
> >
> >
> > sridhar123 escreveu:
> >
> >
> > It means, I can not fire all rules at once, I need to groups and change
> > focus in my java code?
> >
> > I couldn't find any docs or examples to properly use Salience - could
> you
> > please share an example (if you have one)
> >
> > thx
> >
> >
> >
> > Alessandro Lazarotti wrote:
> >
> >
> > You need upate() the fact $anotherObj in Working Memory.
> >
> > sridhar123 escreveu:
> >
> >
> > rule A
> > Salience 10
> > when
> > $data : MyFact( $anotherObj )
> > then
> > $anotherObj.setDiscard(true)
> >
> > rule B
> > Salience 5
> > when
> > eval ($anotherObj.isDiscard() == true)
> > then
> > ...
> >
> >
> > I am trying to get Rule A executed before Rule B. So when condition in
> > Rule
> > B is valid. However i dont see "Saliene" has any effect. How else i
can
> > do
> > the above?
> >
> > thank you
> >
> >
> >
> >
> > _______________________________________________
> > 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
> >
> >
>
> --
> View this message in context:
>
http://www.nabble.com/Salience-not-working-tp17190028p17217969.html
> 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
>
--
Edson Tirelli
JBoss Drools Core Development
Office: +55 11 3529-6000
Mobile: +55 11 9287-5646
JBoss, a division of Red Hat @
www.jboss.com
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
View this message in context:
http://www.nabble.com/Salience-not-working-tp17190028p17219034.html
Sent from the drools - user mailing list archive at
Nabble.com.