title: How to make the rule is executed as expected flow in drools
body: <p>The the following logic:  </p>
  
  <pre><code>if (order.getPrice()&lt;200 ) {  
     order.setPrice(order.getPrice()-10);  
  } else {  
     order.setPrice(order.getPrice()-20);  
     if (order.getPrice()&lt;200 ) {  
       //do nothing  
      }else {  
        order.setFreeShip("true");  
      }  
  }  
  </code></pre>
  
  <p>for above logic, if I want to implement in drools rule.  </p>
  
  <pre><code>rule "rule 1"  
  when   
      $o:Order ( amount&lt;200);  
   then   
      $o.setPrice($o.getPrice()-10);  
  end  
  
  rule "rule 2"  
  when   
      $o:Order (amount&gt;200);  
   then   
  
      $o.setPrice($o.getPrice()-20);  
  
  end  
  </code></pre>
  
  <p>If the fact's price is 210, the rule2 is activated then the rule1 will be fired. That is not expected. I don't want to retract(). So is there any better solution for this issue?</p>
  
  <p>And can I specify the sequential rule once a rule is executed like a token mechanism.</p>
  
  <p>Thanks.</p>