In addition to what Frank has stated, it should be noted that the sequence of<br>transformations<br>   SF -&gt; S<br>   S -&gt; VOL<br>performed by String.replace() can be simplified to a single transformation using replaceAll with a pattern:<br>
<br>rule &quot;Rule12 for parameter 1&quot;<br>
when<br>
   $plan : plan( $p1: parameter1 matches &quot;.*S.*&quot; )<br>then<br>   modify( $plan ){<br>      setParameter1( $p1.replaceAll( &quot;SF?&quot;, &quot;VOL&quot; ) )<br>  }<br>end<br><br>-W<br><br><br><div class="gmail_quote">
On 18 November 2011 16:20, FrankVhh <span dir="ltr">&lt;<a href="mailto:frank.vanhoenshoven@agserv.eu">frank.vanhoenshoven@agserv.eu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Cautionç This is answered after only a quick look.<br>
<br>
You must notify the engie that a change has occured by calling update(plan);<br>
in the RHS. Not calling update will modify the object, but the engine will<br>
not take these changes into account.<br>
<br>
Regards,<br>
Frank<br>
<br>
<br>
fiitkar wrote:<br>
&gt;<br>
&gt; Hello,<br>
&gt;<br>
&gt; I&#39;ve problem with string replacement.<br>
&gt; See the following example.<br>
&gt; Input string: SF<br>
&gt; I&#39;ve written two simple rules:<br>
&gt; The first one transforms SF to S<br>
&gt; The second one transforms S to VOL.<br>
&gt; The expected output after the transformation should be  S, but I get VOL.<br>
&gt; (as for example for the rules: A-&gt;Z, Z-&gt;K,  input A, output will be Z and<br>
&gt; not K).<br>
&gt; So my question is how to avoid this problem (I suppose the problem is that<br>
&gt; the first transformation returns substring of the input and moreover does<br>
&gt; exist another transformation rule for it).<br>
&gt;<br>
&gt; rule &quot;Rule1 for parameter 1&quot;<br>
&gt; salience 2<br>
&gt; when<br>
&gt;       plan : plan( parameter1 matches &quot;.*SF.*&quot; )<br>
&gt; then<br>
&gt;       plan.setParameter1(plan.getParameter1().replace(&quot;SF&quot;,&quot;S&quot;));<br>
&gt;<br>
&gt; end<br>
&gt;<br>
&gt;<br>
&gt; rule &quot;Rule2 for parameter 1&quot;<br>
&gt; salience 1<br>
&gt; when<br>
&gt;       plan : plan( parameter1 matches &quot;.*S.*&quot; )<br>
&gt; then<br>
&gt;       plan.setParameter1(plan.getParameter1().replace(&quot;S&quot;,&quot;VOL&quot;));<br>
&gt; end<br>
&gt;<br>
&gt; Thank you for your response.<br>
&gt; Peter<br>
&gt;<br>
<font color="#888888"><br>
<br>
--<br>
View this message in context: <a href="http://drools.46999.n3.nabble.com/string-replace-collision-problem-tp3518826p3518860.html" target="_blank">http://drools.46999.n3.nabble.com/string-replace-collision-problem-tp3518826p3518860.html</a><br>

Sent from the Drools: User forum mailing list archive at Nabble.com.<br>
<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" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</font></blockquote></div><br>