List Info

Thread: Accumulate x No-loop




Accumulate x No-loop
country flaguser name
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-userslists.jboss.org

https://lists.jboss.org/mailman/listinfo/rules-users

Re: Accumulate x No-loop
country flaguser name
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-userslists.jboss.org
> 
https://lists.jboss.org/mailman/listinfo/rules-users
>
_______________________________________________
rules-users mailing list
rules-userslists.jboss.org

https://lists.jboss.org/mailman/listinfo/rules-users

Re: Accumulate x No-loop
country flaguser name
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-userslists.jboss.org
>> 
https://lists.jboss.org/mailman/listinfo/rules-users
>>
> _______________________________________________
> rules-users mailing list
> rules-userslists.jboss.org
> 
https://lists.jboss.org/mailman/listinfo/rules-users
>
_______________________________________________
rules-users mailing list
rules-userslists.jboss.org

https://lists.jboss.org/mailman/listinfo/rules-users

Re: Accumulate x No-loop
user name
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 < alessandrosiq.com.br">alessandrosiq.com.br>:
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&quot;
   no-loop true
   when







       questionarioResposta : QuestionarioResposta()
       $result : Number() from
accumulate(QuestaoResposta($nota:nota,$peso:questao.questaoPeso.peso)                                           from questionarioResposta.getQuestoesResposta(),                                           sum($nota * (Double)$peso))
                                                   $resultFinal : Number() from
accumulate(QuestaoResposta($nota:nota,$peso:questao.questaoPeso.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-userslists.jboss.org" target="_blank">rules-userslists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

_______________________________________________
rules-users mailing list
rules-userslists.jboss.org" target="_blank">rules-userslists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

_______________________________________________
rules-users mailing list
rules-userslists.jboss.org" target="_blank">rules-userslists.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
Re: Accumulate x No-loop
country flaguser name
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.
&nbsp; &nbsp; Either specify your constraints in a way they prevent the loop or use lock-on-active.

rule "Nota final das questoes"
 &nbsp; when
 &nbsp;   ;  $qr : QuestionarioResposta( $nf : notaFinal )
 &nbsp;   ;  $result : Number( this != $nf )
 &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; from accumulate( QuestaoResposta($nota:nota,$peso:questao.questaoPeso.peso)
 &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp;  from $qr.questoesResposta,
 &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp;  sum( $nota * (Double)$peso ) )   ; &nbsp;   &nbsp; &nbsp;   &nbsp; then
 &nbsp;   ;  modify( $qr ) {
 &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp; setNotaFinal($result)
 &nbsp;   ;  }
end

 &nbsp;  Hope it helps.
&nbsp;   ; &nbsp;  Edson
&nbsp;

2008/5/5 Alessandro Lazarotti <siq.com.br">alessandrosiq.com.br>:
It's a bug?

Alessandro Lazarotti escreveu:

Sorry, my code is ugly in last email...
This is more clean:

rule "The Rule"
&nbsp; no-loop true
&nbsp; when

      questionarioResposta : QuestionarioResposta()

       $resultFinal : Number() from accumulate(QuestaoResposta($peso:questao.questaoPeso.peso)
                                         from questionarioResposta.getQuestoesResposta(),
                                         sum( $peso ))
 ; then
&nbsp;     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
&nbsp;  when







       questionarioResposta : QuestionarioResposta()
       $result : Number() from
accumulate(QuestaoResposta($nota:nota,$peso:questao.questaoPeso.peso)   &nbsp;                                       from questionarioResposta.getQuestoesResposta(),                             &nbsp;             sum($nota * (Double)$peso))
&nbsp;                                                  $resultFinal : Number() from
accumulate(QuestaoResposta($nota:nota,$peso:questao.questaoPeso.peso)   &nbsp;                                       from questionarioResposta.getQuestoesResposta(),                             &nbsp;             sum( $peso ))                                             &nbsp;                  then
       System.out.println($result.doubleValue() / $resultFinal.doubleValue());         questionarioResposta.setNotaFinal($result.doubleValue() /
$resultFinal.doubleValue());
       update( questionarioResposta );
end

_______________________________________________
rules-users mailing list
lists.jboss.org" target="_blank">rules-userslists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

_______________________________________________
rules-users mailing list
lists.jboss.org" target="_blank">rules-userslists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

_______________________________________________
rules-users mailing list
lists.jboss.org" target="_blank">rules-userslists.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 lists.jboss.org">rules-userslists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[1-5]

about | contact  Other archives ( Real Estate discussion Medical topics )