|
List Info
Thread: Accumulate x No-loop
|
|
| Accumulate x No-loop |
  United States |
2008-05-02 15:45:01 |
Hi
When I use accumulate and update, no-loop is ignored and the
rule is
recursive.
Why?
The Rule:
rule "Nota final das questoes"
no-loop true
when
questionarioResposta : QuestionarioResposta()
$result : Number() from
accumulate(QuestaoResposta($nota:nota,$peso:questao.questaoP
eso.peso)
from
questionarioResposta.getQuestoesResposta(),
sum($nota * (Double)$peso))
$resultFinal : Number() from
accumulate(QuestaoResposta($nota:nota,$peso:questao.questaoP
eso.peso)
from
questionarioResposta.getQuestoesResposta(),
sum( $peso ))
then
System.out.println($result.doubleValue() /
$resultFinal.doubleValue());
questionarioResposta.setNotaFinal($result.doubleValue() /
$resultFinal.doubleValue());
update( questionarioResposta );
end
_______________________________________________
rules-users mailing list
rules-users lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
|
|
| Re: Accumulate x No-loop |
  United States |
2008-05-03 08:55:33 |
Sorry, my code is ugly in last email...
This is more clean:
rule "The Rule"
no-loop true
when
questionarioResposta : QuestionarioResposta()
$resultFinal : Number() from
accumulate(QuestaoResposta($peso:questao.questaoPeso.peso)
from
questionarioResposta.getQuestoesResposta(),
sum( $peso ))
then
System.out.println($resultFinal);
update( questionarioResposta );
end
This is a recursive and no-loop is ignored.
Who knows why this?
Thanks
Alessandro Lazarotti escreveu:
> Hi
> When I use accumulate and update, no-loop is ignored
and the rule is
> recursive.
> Why?
>
> The Rule:
>
> rule "Nota final das questoes"
> no-loop true
> when
>
> questionarioResposta : QuestionarioResposta()
> $result : Number() from
>
accumulate(QuestaoResposta($nota:nota,$peso:questao.questaoP
eso.peso)
> from
> questionarioResposta.getQuestoesResposta(),
> sum($nota *
(Double)$peso))
>
$resultFinal :
> Number() from
>
accumulate(QuestaoResposta($nota:nota,$peso:questao.questaoP
eso.peso)
> from
> questionarioResposta.getQuestoesResposta(),
> sum( $peso
))
>
then
> System.out.println($result.doubleValue() /
> $resultFinal.doubleValue());
> questionarioResposta.setNotaFinal($result.doubleValue()
/
> $resultFinal.doubleValue());
> update( questionarioResposta );
> end
>
> _______________________________________________
> 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
|
|
| Re: Accumulate x No-loop |
  United States |
2008-05-05 10:07:28 |
It's a bug?
Alessandro Lazarotti escreveu:
> Sorry, my code is ugly in last email...
> This is more clean:
>
> rule "The Rule"
> no-loop true
> when
>
> questionarioResposta : QuestionarioResposta()
>
> $resultFinal : Number() from
>
accumulate(QuestaoResposta($peso:questao.questaoPeso.peso)
> from
> questionarioResposta.getQuestoesResposta(),
> sum( $peso
))
> then
> System.out.println($resultFinal);
> update( questionarioResposta );
> end
>
> This is a recursive and no-loop is ignored.
> Who knows why this?
>
> Thanks
>
>
>
>
>
>
>
>
>
> Alessandro Lazarotti escreveu:
>> Hi
>> When I use accumulate and update, no-loop is
ignored and the rule is
>> recursive.
>> Why?
>>
>> The Rule:
>>
>> rule "Nota final das questoes"
>> no-loop true
>> when
>
>
>
>
>
>
>>
>> questionarioResposta :
QuestionarioResposta()
>> $result : Number() from
>>
accumulate(QuestaoResposta($nota:nota,$peso:questao.questaoP
eso.peso)
>> from
>> questionarioResposta.getQuestoesResposta(),
>>
sum($nota * (Double)$peso))
>>
$resultFinal :
>> Number() from
>>
accumulate(QuestaoResposta($nota:nota,$peso:questao.questaoP
eso.peso)
>> from
>> questionarioResposta.getQuestoesResposta(),
>> sum(
$peso ))
>>
then
>> System.out.println($result.doubleValue() /
>> $resultFinal.doubleValue());
>>
questionarioResposta.setNotaFinal($result.doubleValue() /
>> $resultFinal.doubleValue());
>> update( questionarioResposta );
>> end
>>
>> _______________________________________________
>> 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
>
_______________________________________________
rules-users mailing list
rules-users lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
|
|
| Re: Accumulate x No-loop |

|
2008-05-05 11:53:48 |
|
Hi Alessandro, just saw your e-mail and answered to you, but basically no-loop will not work for cases like this. Either specify your constraints in a way they prevent the loop or use lock-on-active.
rule "Nota final das questoes"
when
$qr : QuestionarioResposta( $nf : notaFinal )
$result : Number( this != $nf )
from accumulate(
QuestaoResposta($nota:nota,$peso:questao.questaoPeso.peso)
from $qr.questoesResposta,
sum( $nota * (Double)$peso )
)
then
modify( $qr ) {
setNotaFinal($result)
}
end
Hope it helps. Edson
2008/5/5 Alessandro Lazarotti < alessandro siq.com.br">alessandro siq.com.br>:
It's a bug?
Alessandro Lazarotti escreveu:
-- 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
|
| Re: Accumulate x No-loop |
  United States |
2008-05-06 12:51:13 |
|
Ok Edson, it's working fine now!
Thanks
Alesssandro
Edson Tirelli escreveu:
mail.gmail.com"
type="cite">
Hi Alessandro, just saw your e-mail and answered to you, but
basically no-loop will not work for cases like this.
Either specify your constraints in a way they prevent the loop or
use lock-on-active.
rule "Nota final das questoes"
when
$qr : QuestionarioResposta( $nf : notaFinal )
$result : Number( this != $nf )
from accumulate(
QuestaoResposta($nota:nota,$peso:questao.questaoPeso.peso)
from $qr.questoesResposta,
sum( $nota * (Double)$peso )
) then
modify( $qr ) {
setNotaFinal($result)
}
end
Hope it helps.
Edson
--
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
lists.jboss.org">rules-users lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
|
[1-5]
|
|
|
about | contact Other archives ( Real Estate discussion Medical topics )
|