Dear Greg,<br><br>Thanks very much for your reply.<br><br>I&#39;m using sequential mode = true<br><br>Is there a way to create this PhoneNumber class, and convert the String to the PhoneNumber  object inside the Drools? Because I&#39;m using a system called JBilling and it send the phoneNumber as a String.<br>

<br>Sorry if those are basic questions, but I&#39;m a newbie in Drools...<br><br>Thank you very much,<br><br clear="all">Antonio Anderson Souza<br>Voice Technology<br><a href="http://www.antonioams.com">http://www.antonioams.com</a><br>


<br><br><div class="gmail_quote">2010/5/14 Greg Barton <span dir="ltr">&lt;<a href="mailto:greg_barton@yahoo.com">greg_barton@yahoo.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font: inherit;" valign="top">Right off the bat I&#39;d say try to get rid of the eval usage.  Can you put the phone number into an object like this:<br>

<br>class PhoneNumber {<br>  private char digit0;<br>  private char digit1;<br>  ///...same for the rest of the digits<br><br>  public char getDigit0() { return digit0; }<br>
  public char getDigit1() { return digit1; }<br>}<br><br>Then the conditions would look like this:<br><br>digit0 == &#39;$param&#39;<br><br>Behind the scenes hopefully this will optimize better.  The use of eval won&#39;t optimize well.<br>

<br>Are you using sequential mode?  This might be a good candidate for that if setting the price does not trigger any other rules to fire.<br><br>--- On <b>Fri, 5/14/10, Antonio Anderson Souza <i>&lt;<a href="mailto:antonioams@gmail.com" target="_blank">antonioams@gmail.com</a>&gt;</i></b> wrote:<br>

<blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><br>From: Antonio Anderson Souza &lt;<a href="mailto:antonioams@gmail.com" target="_blank">antonioams@gmail.com</a>&gt;<br>

Subject: [rules-users] Jbilling Drools performance<br>To: &quot;Drools Users Mailing list&quot; &lt;<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a>&gt;<br>Date: Friday, May 14, 2010, 1:28 PM<div>

<div></div><div class="h5"><br><br><div><div class="gmail_quote"><div><div></div><div>Dear All,<br><br><div class="gmail_quote">I&#39;m deploying  a
 JBilling using Drools in a Telecom Carrier in Brazil, and I&#39;m using Decision tables in xls files to execute the pricing, my pricing table has about 40.000 rules, and I&#39;m getting a terrible performance about 1.5 minute to execute the price of each CDR (Call Detail Record) mediated.<br>





<br>Follow bellow a small piece of my decision table:<br><br>



        
        
        
        
        
        

<table border="0" cellspacing="0">
        <colgroup><col width="133"><col width="58"><col width="58"><col width="58"><col width="58"><col width="58"><col width="58"><col width="58"><col width="58"><col width="58"><col width="58"><col width="58"><col width="58"><col width="113"><col width="114"><col width="86"></colgroup>
        <tbody>
                <tr>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0);" height="17" align="CENTER" bgcolor="#ccffff" width="133"><b>RuleTable Padrao</b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="58"><b><br></b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ccffff" width="113"><b><br></b></td>
                        <td align="LEFT" width="114"><br></td>
                        <td align="LEFT" width="86"><br></td>
                </tr>
                <tr>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);" colspan="13" height="17" align="CENTER" bgcolor="#47b8b8" valign="MIDDLE"><b>CONDITION</b></td>






                        <td style="border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#47b8b8"><b>CONDITION</b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#47b8b8"><b>ACTION</b></td>
                        <td style="border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#47b8b8"><b>PRIORITY </b></td>
                </tr>
                <tr>
                        <td style="border-bottom: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);" colspan="13" height="17" align="CENTER" bgcolor="#47b8b8" valign="MIDDLE"><b>PricingField</b></td>






                        <td style="border-bottom: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#47b8b8"><b>PricingManager</b></td>
                        <td style="border-bottom: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#47b8b8"><b>manager</b></td>
                        <td style="border-bottom: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#47b8b8"><b>salience</b></td>
                </tr>
                <tr>
                        <td style="border: 1px solid rgb(0, 0, 0);" height="17" align="CENTER" bgcolor="#e6e6ff">name</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(0) == &#39;$param&#39;)</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(1) == &#39;$param&#39;)</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(2) == &#39;$param&#39;)</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(3) == &#39;$param&#39;)</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(4) == &#39;$param&#39;)</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(5) == &#39;$param&#39;)</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(6) == &#39;$param&#39;)</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(7) == &#39;$param&#39;)</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(8) == &#39;$param&#39;)</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(9) == &#39;$param&#39;)</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(10) == &#39;$param&#39;)</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">eval (strValue.charAt(11) == &#39;$param&#39;)</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">itemId</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff">setPrice($param)</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#e6e6ff"><br></td>
                </tr>
                <tr>
                        <td style="border: 1px solid rgb(0, 0, 0);" height="17" align="CENTER" bgcolor="#ffcc99">Campo</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito1</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito2</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito3</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito4</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito5</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito6</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito7</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito8</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito9</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito10</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito11</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Digito12</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">ID do Item</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Preço</td>
                        <td style="border: 1px solid rgb(0, 0, 0);" align="CENTER" bgcolor="#ffcc99">Ordem</td>
                </tr>
                <tr>
                        <td height="17" align="LEFT">destinationnumber</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">3</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">0</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">300</td>
                        <td align="LEFT">0.00000</td>
                        <td align="RIGHT">1</td>
                </tr>
                <tr>
                        <td height="17" align="LEFT">destinationnumber</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">3</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">0</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">7</td>
                        <td align="RIGHT">300</td>
                        <td align="LEFT">0.00000</td>
                        <td align="RIGHT">2</td>
                </tr>
                <tr>
                        <td height="17" align="LEFT">destinationnumber</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">3</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">0</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">6</td>
                        <td align="RIGHT">300</td>
                        <td align="LEFT">0.00000</td>
                        <td align="RIGHT">3</td>
                </tr>
                <tr>
                        <td height="17" align="LEFT">destinationnumber</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">3</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">0</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">300</td>
                        <td align="LEFT">0.00000</td>
                        <td align="RIGHT">4</td>
                </tr>
                <tr>
                        <td height="17" align="LEFT">destinationnumber</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">3</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">0</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">4</td>
                        <td align="RIGHT">300</td>
                        <td align="LEFT">0.00000</td>
                        <td align="RIGHT">5</td>
                </tr>
                <tr>
                        <td height="17" align="LEFT">destinationnumber</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">3</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">0</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">3</td>
                        <td align="RIGHT">300</td>
                        <td align="LEFT">0.00000</td>
                        <td align="RIGHT">6</td>
                </tr>
                <tr>
                        <td height="17" align="LEFT">destinationnumber</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">3</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">0</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">8</td>
                        <td align="RIGHT">2</td>
                        <td align="RIGHT">300</td>
                        <td align="LEFT">0.00000</td>
                        <td align="RIGHT">7</td>
                </tr>
                <tr>
                        <td height="17" align="LEFT">destinationnumber</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">5</td>
                        <td align="RIGHT">1</td>
                        <td align="RIGHT">1</td>
                        <td align="LEFT"><br></td>
                        <td align="LEFT"><br></td>
                        <td align="LEFT"><br></td>
                        <td align="LEFT"><br></td>
                        <td align="LEFT"><br></td>
                        <td align="LEFT"><br></td>
                        <td align="LEFT"><br></td>
                        <td align="LEFT"><br></td>
                        <td align="RIGHT">300</td>
                        <td align="LEFT">0.40000</td>
                        <td align="RIGHT">8</td>
                </tr>
        </tbody>
</table>
<br><br>Is it normal? Are there somebody using Jbilling in a similar way? Does anybody can help me?<br><br>Best regards,<br><font color="#888888"><br clear="all">Antonio Anderson Souza<br>Voice Technology<br><a rel="nofollow" href="http://www.antonioams.com" target="_blank">http://www.antonioams.com</a><br>






</font></div><br>
</div></div></div><br>
</div><br></div></div>-----Inline Attachment Follows-----<br><br><div>_______________________________________________<br>rules-users mailing list<br><a href="http://mc/compose?to=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></blockquote></td></tr></tbody></table><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>
<br></blockquote></div><br>