Speed up loading Customer Tracker with 35k Amazon contacts

We do business on Amazon. Over the years, we’re up to 35k contacts on the Amazon customer, which really slows down loading Amazon in the Customer Tracker. I did a trace - Looks like the CustCnt.GetRows BO takes 64 seconds to run!

How can I disable or limit that? We’re OK with not loading Amazon customer contacts by default.

Thanks!

  <businessObject>Erp.Proxy.BO.CustCntImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>https://[masked]/</appServerUri>
  <returnType>Erp.BO.CustCntDataSet</returnType>
  <localTime>5/15/2024 12:55:38:0083778</localTime>
  <threadID>1</threadID>
  <correlationId>2f1a2ef8-3d10-4365-82e1-554da00dd2d4</correlationId>
  <executionTime total="64466" roundTrip="60685" channel="0" bpm="0" bpmDataForm="0" other="3781" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseCustCnt" type="System.String"><![CDATA[CustNum = 381906 BY Name]]></parameter>
    <parameter name="whereClauseCustCntAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
  </parameters>
  <returnValues>
    <returnParameter name="" type="Erp.BO.CustCntDataSet">
      <CustCntDataSet xmlns="http://www.epicor.com/Ice/300/BO/CustCnt/CustCnt">

in a BPM you can kneecap that whereClause
PreProcessing on GetRows (IF it comes from the Customer Tracker screen) add

whereClauseCustCnt = whereClauseCustCnt.Replace("BY Name","") + " and 1<>1"

It won’t load any contacts… but maybe you don’t care

The bigger question is why are you storing them all?

2 Likes

Thanks, Jose. That worked to stop the load in Customer Maintenance, but it still loads in Customer Tracker. Yet the trace doesn’t show any different BO being loaded. EpiMagic?

image

image

We’ve changed our process to use ShipTo customers for Amz orders, instead of adding shipto’s and contacts to the main Amazon customer.

Unfortunately, there’s a lot of dirty data before we changed the process. I can’t even delete the contacts with DMT since they were used on orders. Gah!

And something seems corrupt - They don’t even show up in Customer Entry (other than the first three w/o a ShipTo). Looking at the CustCnt table filtered for the CustNum, many share the same ConNum. Normal? Or something wrong?

Yes as the Customer Contact is tied to both the CustNum & ShipToNum. If you look at your screen shot you’ll see the duplicate PerConID’s have unique ShipToNums.

Thanks, Randy. Good point! I missed that, since DMT only required Company, CustNumCustID, and ConNum. At least it’s one less thing to worry about.

1 Like

That should work for both @askulte just make sure your condition checks for the screen they are in.

2 Likes