<div> </div>
<div>
<div><span class="785092219-17062008"><font face="Arial" size="2">Hi All,</font></span></div>
<div><span class="785092219-17062008"><font face="Arial" size="2"></font></span> </div>
<div><span class="785092219-17062008"><font face="Arial" size="2">I am using Drools Stateful session with serialized Rule Base & Working memory for my application. I need to write some rule which will <strong>only</strong> fire on newly inserted data points in Working Memory. Does Drools support any such feature which will help me to achieve this ? Any suggestion, how can I achieve this efficiently?</font></span></div>
<div><span class="785092219-17062008"></span> </div>
<div><span class="785092219-17062008"><font face="Arial" size="2"></font></span> </div>
<div><span class="785092219-17062008"><font face="Arial" size="2">As sample, I have written a rule bellow:</font></span><span class="785092219-17062008"></span></div>
<div>
<p><font face="Arial"><font size="2">global RuleSetOutput ruleSetOutput</font></font></p></div>
<div><span class="785092219-17062008"><font face="Arial" size="2"> rule "sample_rule"<br> when<br> (p4: DataObject(id == 4, stringValue == "230007014")) and<br> (p14: DataObject(id == 14, stringValue == "230007004")) and<br>
(p10: DataObject(id == 10, stringValue == "230007005")) and<br> (p11: DataObject(id == 11, stringValue == "230007006")) and<br> (p12: DataObject(id == 12, stringValue == "230007007")) and<br>
(p13: DataObject(id == 13, stringValue == "230007008"))<br> then<br> String ruleID = "sample_rule";<br> RuleOutput ruleOutput = RuleEngineHelper.getRuleOutput(ruleSetOutput, ruleID);<br>
ruleOutput.addDataObject(p13);<br> ruleOutput.addDataObject(p4);<br> ruleOutput.addDataObject(p11);<br> ruleOutput.addDataObject(p14);<br> ruleOutput.addDataObject(p10);<br> ruleOutput.addDataObject(p12);<br>
end</font></span></div>
<div><span class="785092219-17062008"><font face="Arial" size="2"></font></span> </div>
<div><span class="785092219-17062008"><font face="Arial" size="2">For 1st execution, I am inserting 6 matching DataObjects into Working Memory. Rule is getting fired once & those 6 data points are getting added into RuleOutput. </font></span></div>
<div><span class="785092219-17062008"><font face="Arial" size="2"></font></span> </div>
<div><span class="785092219-17062008"><font face="Arial" size="2">But in subsequent rule executions after I insert 6 more matching DataObjects into Working Memory, Rule is getting fired couple of times & objects from old executions also getting appended to the current RuleOutput.</font></span></div>
<div><span class="785092219-17062008"><font face="Arial" size="2"></font></span> </div>
<div><span class="785092219-17062008"><font face="Arial" size="2">How can I avoid this ? </font></span></div>
<div><span class="785092219-17062008"><font face="Arial" size="2"></font></span> </div>
<div><span class="785092219-17062008"><font face="Arial" size="2">Regards</font></span></div>
<div><span class="785092219-17062008"><font face="Arial" size="2">Siddhartha</font></span></div>
<div><span class="785092219-17062008"></span> </div>
<div><span class="785092219-17062008"></span> </div></div>