<br>&nbsp;&nbsp; Alexandre,<br><br>&nbsp;&nbsp; Thanks for letting us know.<br><br>&nbsp;&nbsp; Regards,<br>&nbsp;&nbsp;&nbsp;&nbsp; Edson<br><br><div><span class="gmail_quote">2007/5/25, A Gattiker &lt;<a href="mailto:agattik@gmail.com">agattik@gmail.com</a>&gt;:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello,<br><br>I have given it a try with JBoss Rules 4.0.0 and this time, both facts<br>are retracted! Congratulations for this exciting new version.<br><br>Regards,<br>Alexandre<br><br>On 5/24/07, A Gattiker &lt;<a href="mailto:agattik@gmail.com">
agattik@gmail.com</a>&gt; wrote:<br>&gt; Hello,<br>&gt;<br>&gt; I am trying to use assertLogical in combination with a<br>&gt; WorkingMemoryEventListener in order to have business rules drive my<br>&gt; application: if conditions, then do something; if conditions not true
<br>&gt; anymore, then do something else.<br>&gt;<br>&gt; However, it seems that if the rule is activated multiple times, then<br>&gt; becomes unsupported, only one of the assertLogical&#39;ed facts is<br>&gt; retracted, as illustrated in the example below.
<br>&gt;<br>&gt; Does anyone know how to get around that problem? I thought<br>&gt; assertLogical would be an elegant solution but maybe there is a better<br>&gt; way?<br>&gt;<br>&gt; Kind regards<br>&gt; Alexandre<br>&gt;
<br>&gt;<br>&gt; To reproduce the problem: With the JBoss Rules 3.0.6 IDE, I have<br>&gt; started with a test project with the Eclipse Wizard and modified it as<br>&gt; listed below. &quot;Date&quot; facts are used simply to ensure unequality.
<br>&gt;<br>&gt; DRL:<br>&gt;<br>&gt; import com.sample.DroolsTest.Message;<br>&gt; import java.util.Date;<br>&gt;<br>&gt; rule &quot;Hello World&quot;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; when<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $i : Message ( status &gt; 4 )
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; then<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assertLogical(new Date());<br>&gt; end<br>&gt;<br>&gt; Java:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; workingMemory.addEventListener(new<br>&gt; DebugWorkingMemoryEventListener());<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Message message = new Message();
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.setStatus( 10 );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FactHandle fh = workingMemory.assertObject( message );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; workingMemory.fireAllRules();<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thread.sleep(2000);<br>&gt;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.setStatus( 6 );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; workingMemory.modifyObject(fh, message);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; workingMemory.fireAllRules();<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thread.sleep(2000);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.setStatus
( 2 );<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; workingMemory.modifyObject(fh, message);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; workingMemory.fireAllRules();<br>&gt;<br>&gt; Output:<br>&gt; [ObjectAsserted: handle=[fid:1:1];<br>&gt; object=com.sample.DroolsTest$Message@629da7ee
]<br>&gt; [ObjectAsserted: handle=[fid:2:2]; object=Thu May 24 19:19:01 CEST 2007]<br>&gt; [ObjectModified: handle=[fid:1:3];<br>&gt; old_object=com.sample.DroolsTest$Message@629da7ee;<br>&gt; new_object=com.sample.DroolsTest$Message@629da7ee
]<br>&gt; [ObjectAsserted: handle=[fid:3:4]; object=Thu May 24 19:19:03 CEST 2007]<br>&gt; [ObjectModified: handle=[fid:1:5];<br>&gt; old_object=com.sample.DroolsTest$Message@629da7ee;<br>&gt; new_object=com.sample.DroolsTest$Message@629da7ee
]<br>&gt; [ObjectRetracted: handle=[fid:3:4]; old_object=Thu May 24 19:19:03 CEST 2007]<br>&gt;<br>_______________________________________________<br>rules-users mailing list<br><a href="mailto:rules-users@lists.jboss.org">
rules-users@lists.jboss.org</a><br><a href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><br></blockquote></div><br><br clear="all"><br>-- <br>&nbsp;&nbsp;Edson Tirelli
<br>&nbsp;&nbsp;Software Engineer - JBoss Rules Core Developer<br>&nbsp;&nbsp;Office: +55 11 3529-6000<br>&nbsp;&nbsp;Mobile: +55 11 9287-5646<br>&nbsp;&nbsp;JBoss, a division of Red Hat @ <a href="http://www.jboss.com">www.jboss.com</a>