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