Hi,
I have a event processing rule as follows
declare Sale
@role(event)
end
rule "StoreABC"
when
#conditions
Number( $TotalSalesAmount : intValue,
intValue > 100)
from accumulate ( Sale($amount : amount,
$quantity : quantity)
from entry-point StoreABC,sum($amount *
$quantity))
then
System.out.println("StoreABC sale
exceeds 100...");
End
The POJO Sale has a attribute "String type;". The above rule actually
ignores the type, and does the accumulation for all types put together.
Now I want the rule to fire successfully only when the TotalSalesAmount
for _any_ given type exceeds 100.
And is it possible to access the "type" of Sale whose sales exceeded
100, in the "Then" clause ?
Example:
Lets say the input events are as below (Triplets - Type, Quantity and
Amount)
1. Apple , 10, 5
2. Orange, 10, 6
3. Banana, 20, 4
4. Orange, 10, 5
5. Apple, 2, 5
Now in the above rule, the event fires after Event 2 since the total
sales is > 100. However I want the rule to fire after Event 4 since at
that point the sale of one particular item, viz. "Orange" exceeds 100 in
this store. In the "THEN" clause of the rules, I also want access to a
variable that indicates that it was "Orange" whose sale exceeded 100 in
this store.
Is this possible in Drools Fusion ? If yes, can you please let me know
the changes to be made to the above rule ?
Thanks
Kiran