Another way to obtain what you are looking for could be this:<div><br></div><div><div>rule "Remove all but one"</div><div>when</div><div> $f1: Fact(id == "aaa")</div><div> $f2: Fact(id == "aaa", this != $f1)</div>
<div>then</div><div> retract($f2);</div><div>end</div></div><div><br></div><div>The difference with this approach is the number of activations you will have.</div><div><br></div><div>Best Regards,</div><div class="gmail_extra">
<br clear="all"><br>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX<br><br>Esteban Aliverti<br>- Blog @ <a href="http://ilesteban.wordpress.com" target="_blank">http://ilesteban.wordpress.com</a><br>
<br><br><div class="gmail_quote">On Fri, Nov 30, 2012 at 10:06 AM, Wolfgang Laun <span dir="ltr"><<a href="mailto:wolfgang.laun@gmail.com" target="_blank">wolfgang.laun@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
It seems you are using dialect "mvel"? This doesn't work<br>
in 5.2.0, 5.3.0 and 5.4.0. (I haven't tried 5.5)<br>
<br>
Use dialect java.<br>
<div><br>
-W<br>
<br>
On 30/11/2012, Martin Minka <<a href="mailto:martin.minka@gmail.com" target="_blank">martin.minka@gmail.com</a>> wrote:<br>
</div><div>> I was using ArrayList before and I don't think this is the real problem.<br>
> collect() will return object compatible with List interface so it is valid<br>
> to use size() and get() methods on $removeUs.<br>
</div>> I have helper method myhelper.log() with accepts any object and *<br>
> myhelper.log($removeUs.get(i))* works for me, unfortunately<br>
> *retract($removeUs.get(i))<br>
> *doesn't work with error:<br>
<div><div>><br>
> Error: unable to resolve method using strict-mode:<br>
> org.drools.spi.KnowledgeHelper.drools()] [Near : {...<br>
> drools.retract($removeUs ....}]<br>
><br>
> It looks like it is not even compiled.<br>
><br>
> 2012/11/30 Wolfgang Laun <<a href="mailto:wolfgang.laun@gmail.com" target="_blank">wolfgang.laun@gmail.com</a>><br>
><br>
>> On 30/11/2012, Martin Minka <<a href="mailto:martin.minka@gmail.com" target="_blank">martin.minka@gmail.com</a>> wrote:<br>
>> > Thank you for the tip. What solution would you suggest to solve my<br>
>> problem<br>
>> > ?<br>
>><br>
>> Look into the javadoc of java.util to find any class implementing List<br>
>> :-)<br>
>> -W<br>
>><br>
>> ><br>
>> > Martin<br>
>> ><br>
>> ><br>
>> > 2012/11/30 Wolfgang Laun <<a href="mailto:wolfgang.laun@gmail.com" target="_blank">wolfgang.laun@gmail.com</a>><br>
>> ><br>
>> >> You cannot use an interfact (List) to instantiate an object, which<br>
>> >> is happening due to the collect.<br>
>> >> --W<br>
>> >><br>
>> >> On 30/11/2012, Martin Minka <<a href="mailto:martin.minka@gmail.com" target="_blank">martin.minka@gmail.com</a>> wrote:<br>
>> >> > I want to keep only 1 fact with id=="aaaa". But this is not working:<br>
>> >> ><br>
>> >> > rule "leave only one"<br>
>> >> > when<br>
>> >> > $removeUs : java.util.List(size>1)<br>
>> >> > from collect(Fact(id=="aaaa")<br>
>> >> > then<br>
>> >> > size = $removeUs.size();<br>
>> >> > for (int i=1; i < size; i++) {<br>
>> >> > retract($removeUs.get(i));<br>
>> >> > }<br>
>> >> > end<br>
>> >> ><br>
>> >> _______________________________________________<br>
>> >> rules-users mailing list<br>
>> >> <a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
>> >> <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
>> >><br>
>> ><br>
>> _______________________________________________<br>
>> rules-users mailing list<br>
>> <a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
>> <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
>><br>
><br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</div></div></blockquote></div><br></div>