Let me say again: this MUST give you a compilation error:

       eval(((Boolean)$itr).booleanValue() == false)

   There is no $itr bound in your rule, so, how is it possible that you are executing your rules? Either there is a bug in the compilation process or you are missing something...

   []s
   Edson


2008/5/13 sridhar123 <sridhar.peddinti@sabre.com>:


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@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@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
>> >
>> >
>>
>> --
>> 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@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@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.

_______________________________________________
rules-users mailing list
rules-users@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