sridhar123 wrote:
>
>
> 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
>>
>>
>
>
--