You need
dialect "mvel"
in your rule, or you will have to use Javabean-style code in the RHS,
i.e. $x.setTotalCount( $y ).
This said, the rule is not correct for many reasons:
1) technical: $ticket is scoped within the accumulate, and can't be
accessed externally
2) event semantics: events are immutable and are not supposed to be modified
3) modelling: it does not look right to keep the total counter in (each
individual) ticket.
(also, updating the ticket may cause unwanted recursions)
I'd create another class:
when
$x: TicketStats()
accumulate( $ticket : Ticket() ... )
then
modify ($x) { setTotalCount( $num ); }
end
Davide
On 05/17/2013 01:34 PM, rgupta12 wrote:
any idea?
Rule Compilation error : [Rule name='check sev']
drools/cookbook/Rule_check_
sev_0.java (14:699) : $ticket.totalCount cannot be resolved to a type
drools/cookbook/Rule_check_sev_0.java (16:796) : $ticket cannot be
resolved
Rule Compilation error : [Rule name='check sev']
drools/cookbook/Rule_check_sev_0.java (14:699) :
$ticket.totalCount cannot be resolved to a type
drools/cookbook/Rule_check_sev_0.java (16:796) : $ticket cannot be
resolved
package drools.cookbook;
import drools.cookbook.model.Ticket
declare Ticket
@role(event)
end
rule "check sev"
when
accumulate( $ticket : Ticket() over window:time(5m) from entry-point
"csupport", $num : count( $ticket ))
then
$ticket.totalCount = $num;
System.out.println("num = " + $num);
update($ticket);
end
rule "alert sev"
when
Ticket(totalCount == 10)
then
System.out.println("ALERT ALERT!!!");
end
*********************************************
package drools.cookbook.model;
public class Ticket {
public int totalCount;
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public int times;
public int getTimes() {
return times;
}
public void setTimes(int times) {
this.times = times;
}
public String sev;
public String getSev() {
return sev;
}
public void setSev(String sev) {
this.sev = sev;
}
}
On Fri, May 17, 2013 at 2:49 PM, Matteo Cusmai <[hidden email]
</user/SendEmail.jtp?type=node&node=4023883&i=0>> wrote:
You can use an accumulate function.
On 17 May 2013 20:31, "Ravi Gupta" <[hidden email]
</user/SendEmail.jtp?type=node&node=4023883&i=1>> wrote:
How would one write a rule that checked if say Message has
been inserted into the stream 10 times over the last 30 days?
_______________________________________________
rules-users mailing list
[hidden email] </user/SendEmail.jtp?type=node&node=4023883&i=2>
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
[hidden email] </user/SendEmail.jtp?type=node&node=4023883&i=3>
https://lists.jboss.org/mailman/listinfo/rules-users
------------------------------------------------------------------------
View this message in context: Re: [rules-users] fusion
<
http://drools.46999.n3.nabble.com/rules-users-fusion-tp4023878p4023883.ht...
Sent from the Drools: User forum mailing list archive
<
http://drools.46999.n3.nabble.com/Drools-User-forum-f47000.html> at
Nabble.com.
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users