Hello Drools Experts,<br><br>I have a question on activation group and trying to understand the mechanism. <br><br>I have the following rules in a .drl file :<br><br>import function com.test.utils.StringUtil.isEmpty;<br>import function com.test.utils.Logger.log;<br>
<br>rule &quot;r1&quot;<br>  salience 10<br>  activation-group &quot;fireOnlyOnce&quot;<br>  when <br>     SomeObject($s: someStringKey)<br>     eval(isEmpty($s) // static java method imported as function<br>  then <br>      log(&quot;doSomething&quot;);<br>
end<br><br>rule &quot;r2&quot;<br>  activation-group &quot;fireOnlyOnce&quot; <br>
  when <br>
     SomeObject($s: someStringKey)<br>
     eval(checkWithDB($s) // Make a call to the DB to validate someStringKeyis valid<br>
  then <br>
      log(&quot;doSomething&quot;);<br>
end<br><br>In &quot;r1&quot; I am checking for &#39;someStringKey&#39; is not null or empty. In &quot;r2&quot; , I am making a call to the DB to check &#39;someStringKey&#39; is a valid id. During the debug,
 I found out that both &quot;r1&quot; and &quot;r2&quot; is fired but only one consequence 
is executed depending on the outcome of the r1. I want &quot;r2&quot; to fire only when &quot;r1&quot; evaluates to false. How can I achieve this in Drools?<br><br>Thanks for your time and appreciate your help.<br><br>