Adding Email Address field to One Time Ship screens - saving to ShipTo

I’ve been asked to add a UD Email address field to the One Time Ship sheet in Order Entry. I know OTS functionality also exists in Quote Entry, so I imagine I should do this there as well.

I have no problem adding the field to the screen and enabling/disabling it with the ‘Use OTS’ checkbox. My question is regarding the ‘Save As’ functionality. I want the value entered into this custom field to carry through to the newly created ShipTo if the user selects that from the OTS screen. I ran a trace while testing this and the only BOs in the trace are about 12 Customer Get Rows, each with a different ‘correlationId’, but otherwise identical, followed by a SalesOrder MasterUpdate. I expected to see BOs related to creating a new ShipTo and passing data through.

Has anyone done something similar? Or have any ideas about how I could inject this UD Email address field into the process of saving a OTS as a ShipTo?

1 Like

Maybe hang it on a post-processing to Master Update and if it’s OTS and Save As, maybe do a search at that time for the already created Ship To and then update it? I think you tell it what you want to save it as, right? So you’d be able to look it up and see if it’s created then update it.

2 Likes

Based on your idea, this is what I’ve tried:

I have a Pre-Processing Directive on SalesOrder.MasterUpdate that sets a BPM call context value to the value of my UD Email field, based on whether specific OTS options are selected:

That enables a Post-Processing directive to take the BPM call context value and try to set the newly created ShipTo’s EMailAddress field using custom code (when the MasterUpdate completes, the new Order’s ShipTo automatically updates to new one).

I have a verification message to make sure the email address field correctly populated the call context field and made it through to the post directive, and that is working correctly. I obviously don’t have my very simple code right, because the ShipTo.EMailAddress field is still blank afterward:

If you or anyone else can keep nudging me in the right direction, I would sure be appreciative!

1 Like

Your code shows you setting the Call Context variable to the ShipTo.EmailAddress, not the other way around.

3 Likes

Yep, I realized that about 3 minutes after I posted my last reply. Yikes.

As always, thanks for the help! It’s working now.

3 Likes

Are you writing straight to the DB? :zipper_mouth_face:

1 Like

To be honest, I was copying a BPM created by my predecessor that does something similar. I’m gathering that this isn’t the best way to accomplish my end goal.

Should I be invoking BO methods or something instead? I tried to run a trace when saving a One Time Ship as a new Ship To, but I couldn’t discern which BOs were being engaged or when.

Trace:

<tracegroup name="CLICK UseOTS CHECKBOX" />

<tracePacket>
  <businessObject>Erp.Proxy.BO.SalesOrderImpl</businessObject>
  <methodName>ChangeHedUseOTS</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>10/30/2025 14:32:59:9991845 PM</localTime>
  <threadID>1</threadID>
  <correlationId>db289793-950a-41f2-99c5-60960aef5642</correlationId>
  <executionTime total="105" roundTrip="25" channel="38" bpm="0" bpmDataForm="0" other="42" />
  <retries>0</retries>
  <parameters>
    <parameter name="ds" type="Erp.BO.SalesOrderDataSet">
      <SalesOrderDataSet xmlns="http://www.epicor.com/Ice/300/BO/SalesOrder/SalesOrder" />
    </parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Erp.Tablesets.CustomerTableset</returnType>
  <localTime>10/30/2025 14:33:00:1772008 PM</localTime>
  <threadID>1</threadID>
  <correlationId>645d7b9b-f549-4361-be4f-4bdd653f055d</correlationId>
  <executionTime total="55" roundTrip="35" channel="10" bpm="0" bpmDataForm="0" other="10" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseCustomer" type="System.String"><![CDATA[Company = 'LJDM' and CustNum = 142 BY Name]]></parameter>
    <parameter name="whereClauseCustomerAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomCrdPool" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClausePartner" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustBillTo" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustBank" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustChild" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustDfltDocType" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustIC" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustLabExpRate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustMandate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDocs" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustRestriction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustUPSEmail" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDiscPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerFSPriceList" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseGlbCustCred" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseMXCustomerFiscalText" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseNAMember" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClausePECustWhldHist" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipTo" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToRestriction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToLabExpRate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDocsSH" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToDiscPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToMFBill" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToUPSEml" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustMFBill" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseMangCust" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToSrch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseEntityGLC" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseTaxExempt" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Erp.Tablesets.CustomerTableset</returnType>
  <localTime>10/30/2025 14:33:01:0627926 PM</localTime>
  <threadID>1</threadID>
  <correlationId>6da380b8-3d54-4be8-8e8c-f26113487916</correlationId>
  <executionTime total="47" roundTrip="40" channel="0" bpm="0" bpmDataForm="0" other="7" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseCustomer" type="System.String"><![CDATA[Company = 'LJDM' and CustNum = 142 BY Name]]></parameter>
    <parameter name="whereClauseCustomerAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomCrdPool" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClausePartner" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustBillTo" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustBank" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustChild" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustDfltDocType" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustIC" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustLabExpRate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustMandate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDocs" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustRestriction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustUPSEmail" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDiscPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerFSPriceList" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseGlbCustCred" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseMXCustomerFiscalText" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseNAMember" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClausePECustWhldHist" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipTo" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToRestriction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToLabExpRate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDocsSH" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToDiscPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToMFBill" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToUPSEml" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustMFBill" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseMangCust" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToSrch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseEntityGLC" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseTaxExempt" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Erp.Tablesets.CustomerTableset</returnType>
  <localTime>10/30/2025 14:33:02:4806194 PM</localTime>
  <threadID>1</threadID>
  <correlationId>0e4d5b0b-a6df-4a94-8010-c5f8808ff3d3</correlationId>
  <executionTime total="52" roundTrip="38" channel="0" bpm="0" bpmDataForm="0" other="14" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseCustomer" type="System.String"><![CDATA[Company = 'LJDM' and CustNum = 142 BY Name]]></parameter>
    <parameter name="whereClauseCustomerAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomCrdPool" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClausePartner" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustBillTo" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustBank" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustChild" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustDfltDocType" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustIC" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustLabExpRate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustMandate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDocs" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustRestriction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustUPSEmail" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDiscPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerFSPriceList" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseGlbCustCred" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseMXCustomerFiscalText" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseNAMember" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClausePECustWhldHist" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipTo" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToRestriction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToLabExpRate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDocsSH" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToDiscPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToMFBill" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToUPSEml" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustMFBill" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseMangCust" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToSrch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseEntityGLC" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseTaxExempt" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracegroup name="TYPE OTSName VALUE THEN TAB OUT" />

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Erp.Tablesets.CustomerTableset</returnType>
  <localTime>10/30/2025 14:33:19:2987449 PM</localTime>
  <threadID>1</threadID>
  <correlationId>d9d2a3ca-52c8-4c46-9ea9-4395c125cb40</correlationId>
  <executionTime total="37" roundTrip="33" channel="0" bpm="0" bpmDataForm="0" other="4" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseCustomer" type="System.String"><![CDATA[Company = 'LJDM' and CustNum = 142 BY Name]]></parameter>
    <parameter name="whereClauseCustomerAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomCrdPool" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClausePartner" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustBillTo" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustBank" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustChild" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustDfltDocType" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustIC" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustLabExpRate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustMandate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDocs" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustRestriction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustUPSEmail" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDiscPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerFSPriceList" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseGlbCustCred" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseMXCustomerFiscalText" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseNAMember" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClausePECustWhldHist" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipTo" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToRestriction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToLabExpRate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDocsSH" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToDiscPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToMFBill" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToUPSEml" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustMFBill" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseMangCust" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToSrch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseEntityGLC" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseTaxExempt" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracegroup name="TYPE OTS_Email_c VALUE THEN TAB OUT" />

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Erp.Tablesets.CustomerTableset</returnType>
  <localTime>10/30/2025 14:33:39:0745378 PM</localTime>
  <threadID>1</threadID>
  <correlationId>1473bbed-40a9-46fe-9036-33899410fb24</correlationId>
  <executionTime total="57" roundTrip="48" channel="0" bpm="0" bpmDataForm="0" other="9" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseCustomer" type="System.String"><![CDATA[Company = 'LJDM' and CustNum = 142 BY Name]]></parameter>
    <parameter name="whereClauseCustomerAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomCrdPool" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClausePartner" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustBillTo" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustBank" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustChild" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustDfltDocType" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustIC" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustLabExpRate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustMandate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDocs" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustRestriction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustUPSEmail" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDiscPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerFSPriceList" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseGlbCustCred" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseMXCustomerFiscalText" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseNAMember" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClausePECustWhldHist" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipTo" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToRestriction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToLabExpRate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDocsSH" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToDiscPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToMFBill" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToUPSEml" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustMFBill" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseMangCust" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToSrch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseEntityGLC" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseTaxExempt" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracegroup name="SELECT OTSSaveAs 'SHIP TO' VALUE" />

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Erp.Tablesets.CustomerTableset</returnType>
  <localTime>10/30/2025 14:33:58:0405819 PM</localTime>
  <threadID>1</threadID>
  <correlationId>db086b8d-d1fa-418f-a11e-6f9fc39aa6a2</correlationId>
  <executionTime total="51" roundTrip="43" channel="0" bpm="0" bpmDataForm="0" other="8" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseCustomer" type="System.String"><![CDATA[Company = 'LJDM' and CustNum = 142 BY Name]]></parameter>
    <parameter name="whereClauseCustomerAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomCrdPool" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClausePartner" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustBillTo" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustBank" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustChild" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustDfltDocType" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustIC" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustLabExpRate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustMandate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDocs" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustRestriction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustUPSEmail" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDiscPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerFSPriceList" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseGlbCustCred" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseMXCustomerFiscalText" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseNAMember" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClausePECustWhldHist" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipTo" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToRestriction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToLabExpRate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDocsSH" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToDiscPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToMFBill" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToUPSEml" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustMFBill" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseMangCust" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToSrch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseEntityGLC" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseTaxExempt" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Erp.Tablesets.CustomerTableset</returnType>
  <localTime>10/30/2025 14:34:00:1676526 PM</localTime>
  <threadID>1</threadID>
  <correlationId>b00f390f-6bec-42cd-a664-fa5be311400f</correlationId>
  <executionTime total="49" roundTrip="36" channel="0" bpm="0" bpmDataForm="0" other="13" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseCustomer" type="System.String"><![CDATA[Company = 'LJDM' and CustNum = 142 BY Name]]></parameter>
    <parameter name="whereClauseCustomerAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomCrdPool" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClausePartner" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustBillTo" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustBank" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustChild" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustDfltDocType" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustIC" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustLabExpRate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustMandate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDocs" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustRestriction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustUPSEmail" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDiscPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerFSPriceList" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseGlbCustCred" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseMXCustomerFiscalText" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseNAMember" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClausePECustWhldHist" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipTo" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToRestriction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToLabExpRate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDocsSH" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToDiscPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToMFBill" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToUPSEml" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustMFBill" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseMangCust" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToSrch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseEntityGLC" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseTaxExempt" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracegroup name="TYPE OTSShipToNum THEN TAB OUT" />

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Erp.Tablesets.CustomerTableset</returnType>
  <localTime>10/30/2025 14:34:20:0430331 PM</localTime>
  <threadID>1</threadID>
  <correlationId>0ba93d87-e0a7-45b9-893f-7f62d0affda5</correlationId>
  <executionTime total="47" roundTrip="41" channel="0" bpm="0" bpmDataForm="0" other="6" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseCustomer" type="System.String"><![CDATA[Company = 'LJDM' and CustNum = 142 BY Name]]></parameter>
    <parameter name="whereClauseCustomerAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomCrdPool" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClausePartner" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustBillTo" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustBank" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustChild" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustDfltDocType" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustIC" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustLabExpRate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustMandate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDocs" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustRestriction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustUPSEmail" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDiscPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerFSPriceList" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseGlbCustCred" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseMXCustomerFiscalText" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseNAMember" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClausePECustWhldHist" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipTo" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToRestriction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToLabExpRate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDocsSH" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToDiscPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToMFBill" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToUPSEml" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustMFBill" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseMangCust" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToSrch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseEntityGLC" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseTaxExempt" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracegroup name="CLICK SAVE BUTTON" />

<tracePacket>
  <businessObject>Erp.Proxy.BO.SalesOrderImpl</businessObject>
  <methodName>MasterUpdate</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>10/30/2025 14:34:28:3127200 PM</localTime>
  <threadID>1</threadID>
  <correlationId>95876407-0d35-40fc-b1fb-3cc384ed566f</correlationId>
  <executionTime total="5339" roundTrip="175" channel="0" bpm="0" bpmDataForm="5142" other="22" />
  <retries>0</retries>
  <parameters>
    <parameter name="lCheckForOrderChangedMsg" type="System.Boolean"><![CDATA[True]]></parameter>
    <parameter name="lcheckForResponse" type="System.Boolean"><![CDATA[True]]></parameter>
    <parameter name="cTableName" type="System.String"><![CDATA[OrderHed]]></parameter>
    <parameter name="iCustNum" type="System.Int32"><![CDATA[142]]></parameter>
    <parameter name="iOrderNum" type="System.Int32"><![CDATA[69475]]></parameter>
    <parameter name="lweLicensed" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="lContinue" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="cResponseMsg" type="System.String"><![CDATA[]]></parameter>
    <parameter name="cCreditShipAction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="cDisplayMsg" type="System.String"><![CDATA[]]></parameter>
    <parameter name="cCompliantMsg" type="System.String"><![CDATA[]]></parameter>
    <parameter name="cResponseMsgOrdRel" type="System.String"><![CDATA[]]></parameter>
    <parameter name="cAgingMessage" type="System.String"><![CDATA[]]></parameter>
    <parameter name="ds" type="Erp.BO.SalesOrderDataSet">
      <SalesOrderDataSet xmlns="http://www.epicor.com/Ice/300/BO/SalesOrder/SalesOrder" />
    </parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Erp.Tablesets.CustomerTableset</returnType>
  <localTime>10/30/2025 14:34:33:7229486 PM</localTime>
  <threadID>1</threadID>
  <correlationId>127a5ba0-01d7-4086-9f2b-451c07fe5fac</correlationId>
  <executionTime total="53" roundTrip="46" channel="0" bpm="0" bpmDataForm="0" other="7" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseCustomer" type="System.String"><![CDATA[Company = 'LJDM' and CustNum = 142 BY Name]]></parameter>
    <parameter name="whereClauseCustomerAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomCrdPool" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClausePartner" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustBillTo" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustBank" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustChild" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustDfltDocType" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustIC" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustLabExpRate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustMandate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDocs" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustRestriction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustUPSEmail" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDiscPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerFSPriceList" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseGlbCustCred" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseMXCustomerFiscalText" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseNAMember" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClausePECustWhldHist" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipTo" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToAttch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToRestriction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToLabExpRate" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerDocsSH" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToDiscPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToMFBill" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToUPSEml" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustMFBill" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseMangCust" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseShipToSrch" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseCustomerPriceLst" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseEntityGLC" type="System.String"><![CDATA[]]></parameter>
    <parameter name="whereClauseTaxExempt" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>




Yeah - what I would do is go into your Ship To inside of Customer Maintenance for a customer, then trace what it looks like to enter and save your email address. Probably something along the lines of a Customer.GetByID, then you’d select your ship to row you want to edit in a LINQ statement and update the row’s Email Address and the RowMod. Then you’d run Customer.Update. But run the trace yourself and see. I’m guessing based on what a typical logic might be.

If you need help writing the LINQ query and setting the fields in code, let me know and I can send you something.

2 Likes

I’m trying hard to be self-sufficient, but I think I’m in over my head. After reading through some other threads and watching a semi-related tutorial video, I started going down a custom code path that ended up leaving with more questions.

I traced the process you suggested, and I can see there are many BOs and methods involved in simply loading a Customer record, many of which seem like they’d be unnecessary for updating a single field in the ShipTo table. I’m confused about whether I need to use custom code to mimic everything in the trace, or if I can get away with just what seems relevant.

Trace:

<tracegroup name="ENTER CUSTID AND TAB OUT" />

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>GetByCustID</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Erp.Tablesets.CustomerTableset</returnType>
  <localTime>10/31/2025 08:57:10:1998244 AM</localTime>
  <threadID>1</threadID>
  <correlationId>bbe00f41-890d-4b03-a43f-4a37e0bc2257</correlationId>
  <executionTime total="70" roundTrip="60" channel="0" bpm="0" bpmDataForm="0" other="10" />
  <retries>0</retries>
  <parameters>
    <parameter name="custID" type="System.String"><![CDATA[SOLAR]]></parameter>
    <parameter name="withShipTo" type="System.Boolean"><![CDATA[True]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustCntImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Erp.Tablesets.CustCntTableset</returnType>
  <localTime>10/31/2025 08:57:10:2842944 AM</localTime>
  <threadID>1</threadID>
  <correlationId>2540d347-a7fe-48e4-8046-7ec3524229c8</correlationId>
  <executionTime total="72" roundTrip="70" channel="0" bpm="0" bpmDataForm="0" other="2" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseCustCnt" type="System.String"><![CDATA[CustNum = '142' 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>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>GetShipToGlobalFields</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.String</returnType>
  <localTime>10/31/2025 08:57:10:3589997 AM</localTime>
  <threadID>1</threadID>
  <correlationId>c5025621-2549-4d86-848f-b449c6e4a1b3</correlationId>
  <executionTime total="22" roundTrip="20" channel="0" bpm="0" bpmDataForm="0" other="2" />
  <retries>0</retries>
  <parameters>
    <parameter name="CustNum" type="System.Int32"><![CDATA[142]]></parameter>
    <parameter name="ShiptoNum" type="System.String"><![CDATA[1369]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustCntImpl</businessObject>
  <methodName>GetCustCntGlobalFields</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.String</returnType>
  <localTime>10/31/2025 08:57:10:3817815 AM</localTime>
  <threadID>1</threadID>
  <correlationId>294529d9-0d11-4f4a-96c2-849afd4e9d34</correlationId>
  <executionTime total="26" roundTrip="24" channel="0" bpm="0" bpmDataForm="0" other="2" />
  <retries>0</retries>
  <parameters>
    <parameter name="CustNum" type="System.Int32"><![CDATA[142]]></parameter>
    <parameter name="ShiptoNum" type="System.String"><![CDATA[]]></parameter>
    <parameter name="ConNum" type="System.Int32"><![CDATA[18]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustCntImpl</businessObject>
  <methodName>GetCustCntGlobalFields</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.String</returnType>
  <localTime>10/31/2025 08:57:10:4080972 AM</localTime>
  <threadID>1</threadID>
  <correlationId>a35bfdca-5c77-440e-a729-4343be418ada</correlationId>
  <executionTime total="19" roundTrip="18" channel="0" bpm="0" bpmDataForm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="CustNum" type="System.Int32"><![CDATA[142]]></parameter>
    <parameter name="ShiptoNum" type="System.String"><![CDATA[3880]]></parameter>
    <parameter name="ConNum" type="System.Int32"><![CDATA[3]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>GetShipToGlobalFields</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.String</returnType>
  <localTime>10/31/2025 08:57:10:4301772 AM</localTime>
  <threadID>1</threadID>
  <correlationId>34893a96-b6c9-4d7f-92c5-410f68c7b026</correlationId>
  <executionTime total="22" roundTrip="20" channel="0" bpm="0" bpmDataForm="0" other="2" />
  <retries>0</retries>
  <parameters>
    <parameter name="CustNum" type="System.Int32"><![CDATA[142]]></parameter>
    <parameter name="ShiptoNum" type="System.String"><![CDATA[1369]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.Lib.BOReaderImpl</businessObject>
  <methodName>GetList</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.Data.DataSet</returnType>
  <localTime>10/31/2025 08:57:11:8846957 AM</localTime>
  <threadID>1</threadID>
  <correlationId>40e05381-089b-4683-af90-7b0c47a023ea</correlationId>
  <executionTime total="17" roundTrip="17" channel="0" bpm="0" bpmDataForm="0" other="0" />
  <retries>0</retries>
  <parameters>
    <parameter name="serviceNamespace" type="System.String"><![CDATA[Erp:BO:Currency]]></parameter>
    <parameter name="whereClause" type="System.String"><![CDATA[]]></parameter>
    <parameter name="columnList" type="System.String"><![CDATA[CurrencyCode,CurrDesc]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.Lib.BOReaderImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.Data.DataSet</returnType>
  <localTime>10/31/2025 08:57:11:9054604 AM</localTime>
  <threadID>1</threadID>
  <correlationId>b769a528-073b-4a1a-b341-8a0040060d5f</correlationId>
  <executionTime total="25" roundTrip="25" channel="0" bpm="0" bpmDataForm="0" other="0" />
  <retries>0</retries>
  <parameters>
    <parameter name="serviceNamespace" type="System.String"><![CDATA[Ice:BO:UserCodes]]></parameter>
    <parameter name="whereClause" type="System.String"><![CDATA[CodeTypeID='GW']]></parameter>
    <parameter name="columnList" type="System.String"><![CDATA[]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>GetBillDayList</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>10/31/2025 08:57:12:7251194 AM</localTime>
  <threadID>1</threadID>
  <correlationId>3c02b3e1-af8a-471e-9448-1e75d7547bb4</correlationId>
  <executionTime total="23" roundTrip="22" channel="0" bpm="0" bpmDataForm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="billFreq" type="System.String"><![CDATA[W]]></parameter>
    <parameter name="billDayList" type="System.String"><![CDATA[]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.Lib.ClientCacheImpl</businessObject>
  <methodName>GetClassInformation</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Ice.Tablesets.ClassAttributeTableset</returnType>
  <localTime>10/31/2025 08:57:13:6740083 AM</localTime>
  <threadID>1</threadID>
  <correlationId>83db0abf-60cf-489e-8413-13436a065cf3</correlationId>
  <executionTime total="24" roundTrip="23" channel="0" bpm="0" bpmDataForm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="token" type="System.String"><![CDATA[DOCAssoc]]></parameter>
    <parameter name="additionalTokens" type="System.String[]"><![CDATA[]]></parameter>
    <parameter name="objectAccess" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="restrictedColumns" type="System.String"><![CDATA[]]></parameter>
    <parameter name="restrictedMethods" type="System.String"><![CDATA[]]></parameter>
    <parameter name="additionalTokenAccess" type="System.String"><![CDATA[]]></parameter>
    <parameter name="nameSpace" type="System.String"><![CDATA[Ice:BO]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.BO.DOCAssocImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Ice.Tablesets.DOCAssocTableset</returnType>
  <localTime>10/31/2025 08:57:13:7075740 AM</localTime>
  <threadID>1</threadID>
  <correlationId>15e1a4c3-3982-453c-add4-5eb07e00a951</correlationId>
  <executionTime total="126" roundTrip="40" channel="81" bpm="0" bpmDataForm="0" other="5" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseDocAssoc" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.Lib.ClientCacheImpl</businessObject>
  <methodName>GetClassInformation</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Ice.Tablesets.ClassAttributeTableset</returnType>
  <localTime>10/31/2025 08:57:13:8594369 AM</localTime>
  <threadID>1</threadID>
  <correlationId>1a854d45-26c7-428b-8296-d2c553a44cbd</correlationId>
  <executionTime total="32" roundTrip="32" channel="0" bpm="0" bpmDataForm="0" other="0" />
  <retries>0</retries>
  <parameters>
    <parameter name="token" type="System.String"><![CDATA[DmsStorageType]]></parameter>
    <parameter name="additionalTokens" type="System.String[]"><![CDATA[]]></parameter>
    <parameter name="objectAccess" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="restrictedColumns" type="System.String"><![CDATA[]]></parameter>
    <parameter name="restrictedMethods" type="System.String"><![CDATA[]]></parameter>
    <parameter name="additionalTokenAccess" type="System.String"><![CDATA[]]></parameter>
    <parameter name="nameSpace" type="System.String"><![CDATA[Ice:BO]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.BO.DmsStorageTypeImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Ice.Tablesets.DmsStorageTypeTableset</returnType>
  <localTime>10/31/2025 08:57:13:8951018 AM</localTime>
  <threadID>1</threadID>
  <correlationId>5c94db29-d554-4ea2-ad7a-90591f3842c9</correlationId>
  <executionTime total="114" roundTrip="40" channel="69" bpm="0" bpmDataForm="0" other="5" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseDmsStorageType" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracegroup name="SELECT SHIP TO SHEET" />

<tracegroup name="SELECT SHIP TO LIST SHEET" />

<tracegroup name="SELECT SPECIFIC SHIP TO ROW" />

<tracePacket>
  <businessObject>Ice.Proxy.BO.XDocTypeCtrlImpl</businessObject>
  <methodName>GetList</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Ice.Tablesets.XDocTypeCtrlListTableset</returnType>
  <localTime>10/31/2025 08:58:42:5651315 AM</localTime>
  <threadID>1</threadID>
  <correlationId>e3b5c033-f722-4e46-a79c-669635113449</correlationId>
  <executionTime total="19" roundTrip="18" channel="0" bpm="0" bpmDataForm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClause" type="System.String"><![CDATA[TableName = 'CustMandate' BY TableName]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.BO.XDocTypeCtrlImpl</businessObject>
  <methodName>GetList</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Ice.Tablesets.XDocTypeCtrlListTableset</returnType>
  <localTime>10/31/2025 08:58:42:5898278 AM</localTime>
  <threadID>1</threadID>
  <correlationId>92d7c218-2a16-4e87-af7e-9d21a3ec872f</correlationId>
  <executionTime total="21" roundTrip="20" channel="0" bpm="0" bpmDataForm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClause" type="System.String"><![CDATA[TableName = 'CustomerPriceLst' BY TableName]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.BO.XDocTypeCtrlImpl</businessObject>
  <methodName>GetList</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Ice.Tablesets.XDocTypeCtrlListTableset</returnType>
  <localTime>10/31/2025 08:58:42:6202738 AM</localTime>
  <threadID>1</threadID>
  <correlationId>b3820396-29ed-4d5c-80ce-78a5b987e85c</correlationId>
  <executionTime total="16" roundTrip="16" channel="0" bpm="0" bpmDataForm="0" other="0" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClause" type="System.String"><![CDATA[TableName = 'CustMFBill' BY TableName]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.BO.XDocTypeCtrlImpl</businessObject>
  <methodName>GetList</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Ice.Tablesets.XDocTypeCtrlListTableset</returnType>
  <localTime>10/31/2025 08:58:42:6430566 AM</localTime>
  <threadID>1</threadID>
  <correlationId>e765ddaa-06b3-43e8-ae38-80834e5f5583</correlationId>
  <executionTime total="24" roundTrip="23" channel="0" bpm="0" bpmDataForm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClause" type="System.String"><![CDATA[TableName = 'CustBank' BY TableName]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.BO.XDocTypeCtrlImpl</businessObject>
  <methodName>GetList</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Ice.Tablesets.XDocTypeCtrlListTableset</returnType>
  <localTime>10/31/2025 08:58:42:6737581 AM</localTime>
  <threadID>1</threadID>
  <correlationId>f1d7d569-2ed4-454f-aa12-60c4eeee1eba</correlationId>
  <executionTime total="18" roundTrip="17" channel="0" bpm="0" bpmDataForm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClause" type="System.String"><![CDATA[TableName = 'CustIC' BY TableName]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.BO.XDocTypeCtrlImpl</businessObject>
  <methodName>GetList</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Ice.Tablesets.XDocTypeCtrlListTableset</returnType>
  <localTime>10/31/2025 08:58:42:6990087 AM</localTime>
  <threadID>1</threadID>
  <correlationId>b6f496d8-60dc-4cf5-840b-df1519d42f57</correlationId>
  <executionTime total="18" roundTrip="17" channel="0" bpm="0" bpmDataForm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClause" type="System.String"><![CDATA[TableName = 'CustomerAttch' BY TableName]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.BO.XDocTypeCtrlImpl</businessObject>
  <methodName>GetList</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Ice.Tablesets.XDocTypeCtrlListTableset</returnType>
  <localTime>10/31/2025 08:58:42:7288714 AM</localTime>
  <threadID>1</threadID>
  <correlationId>a9bb632f-9d71-4491-a931-778b66f43a36</correlationId>
  <executionTime total="30" roundTrip="29" channel="0" bpm="0" bpmDataForm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClause" type="System.String"><![CDATA[TableName = 'ShipTo' BY TableName]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.BO.XDocTypeCtrlImpl</businessObject>
  <methodName>GetList</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Ice.Tablesets.XDocTypeCtrlListTableset</returnType>
  <localTime>10/31/2025 08:58:42:7690348 AM</localTime>
  <threadID>1</threadID>
  <correlationId>a23c101d-f932-47ae-81e5-087f31b434d7</correlationId>
  <executionTime total="17" roundTrip="16" channel="0" bpm="0" bpmDataForm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClause" type="System.String"><![CDATA[TableName = 'CustomerDiscPriceLst' BY TableName]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.BO.XDocTypeCtrlImpl</businessObject>
  <methodName>GetList</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Ice.Tablesets.XDocTypeCtrlListTableset</returnType>
  <localTime>10/31/2025 08:58:42:7928546 AM</localTime>
  <threadID>1</threadID>
  <correlationId>d20de550-d542-4ffc-862a-b6269241e192</correlationId>
  <executionTime total="17" roundTrip="16" channel="0" bpm="0" bpmDataForm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClause" type="System.String"><![CDATA[TableName = 'CustCnt' BY TableName]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.BO.XDocTypeCtrlImpl</businessObject>
  <methodName>GetList</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Ice.Tablesets.XDocTypeCtrlListTableset</returnType>
  <localTime>10/31/2025 08:58:42:8181614 AM</localTime>
  <threadID>1</threadID>
  <correlationId>fd2334b6-60a1-4185-b11b-84dce0902eeb</correlationId>
  <executionTime total="20" roundTrip="19" channel="0" bpm="0" bpmDataForm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClause" type="System.String"><![CDATA[TableName = 'CustUPSEmail' BY TableName]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>GetShipToGlobalFields</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.String</returnType>
  <localTime>10/31/2025 08:58:43:0551288 AM</localTime>
  <threadID>1</threadID>
  <correlationId>7ca69d47-2452-4d29-b4c6-9a32b4ad9e09</correlationId>
  <executionTime total="21" roundTrip="18" channel="0" bpm="3" bpmDataForm="0" other="0" />
  <retries>0</retries>
  <parameters>
    <parameter name="CustNum" type="System.Int32"><![CDATA[142]]></parameter>
    <parameter name="ShiptoNum" type="System.String"><![CDATA[6737]]></parameter>
  </parameters>
</tracePacket>

<tracegroup name="SELECT SHIP TO DETAIL TAB" />

<tracegroup name="ENTER EMAIL ADDRESS IN SHIPTO.EMAIL ADDRESS FIELD AND TAB OUT" />

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>CheckDupCustomer</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Erp.Tablesets.CustomerListTableset</returnType>
  <localTime>10/31/2025 09:00:05:2682667 AM</localTime>
  <threadID>1</threadID>
  <correlationId>2f1b63c7-22ca-4a1d-bf49-58a1b93de910</correlationId>
  <executionTime total="21" roundTrip="17" channel="0" bpm="0" bpmDataForm="0" other="4" />
  <retries>0</retries>
  <parameters>
    <parameter name="vName" type="System.String"><![CDATA[L&R USA INC.]]></parameter>
    <parameter name="custId" type="System.String"><![CDATA[SOLAR]]></parameter>
    <parameter name="vRowid" type="System.Guid"><![CDATA[7b54fd9d-9019-41dc-9e5e-716c90e31d33]]></parameter>
    <parameter name="vAddress1" type="System.String"><![CDATA[3880 W Wheelhouse Rd]]></parameter>
    <parameter name="vZip" type="System.String"><![CDATA[53208]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>CheckEFFieldLength</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>10/31/2025 09:00:05:2921010 AM</localTime>
  <threadID>1</threadID>
  <correlationId>99b00da3-ab3e-4d26-aed3-7801b6350bc4</correlationId>
  <executionTime total="24" roundTrip="23" channel="0" bpm="0" bpmDataForm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="vCustNum" type="System.Int32"><![CDATA[142]]></parameter>
    <parameter name="vCustType" type="System.String"><![CDATA[CUS]]></parameter>
    <parameter name="vName" type="System.String"><![CDATA[L&R USA INC.]]></parameter>
    <parameter name="vAddress1" type="System.String"><![CDATA[3880 W Wheelhouse Rd]]></parameter>
    <parameter name="vAddress2" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vAddress3" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vCity" type="System.String"><![CDATA[Milwaukee]]></parameter>
    <parameter name="vState" type="System.String"><![CDATA[WI]]></parameter>
    <parameter name="vBTName" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTAddress1" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTAddress2" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTAddress3" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTCity" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTState" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vMessage" type="System.String"><![CDATA[]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>Update</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>10/31/2025 09:00:05:3191690 AM</localTime>
  <threadID>1</threadID>
  <correlationId>515e30a2-628f-4f82-9817-4e4ad4cb3f5c</correlationId>
  <executionTime total="453" roundTrip="318" channel="0" bpm="0" bpmDataForm="0" other="135" />
  <retries>0</retries>
  <parameters>
    <parameter name="ds" type="Erp.BO.CustomerDataSet">
      <CustomerDataSet xmlns="http://www.epicor.com/Ice/300/BO/Customer/Customer" />
    </parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>CheckDupCustomer</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Erp.Tablesets.CustomerListTableset</returnType>
  <localTime>10/31/2025 09:00:06:7093000 AM</localTime>
  <threadID>1</threadID>
  <correlationId>abb1c979-a019-4358-8811-4d4be4e3b9b0</correlationId>
  <executionTime total="18" roundTrip="17" channel="0" bpm="0" bpmDataForm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="vName" type="System.String"><![CDATA[L&R USA INC.]]></parameter>
    <parameter name="custId" type="System.String"><![CDATA[SOLAR]]></parameter>
    <parameter name="vRowid" type="System.Guid"><![CDATA[7b54fd9d-9019-41dc-9e5e-716c90e31d33]]></parameter>
    <parameter name="vAddress1" type="System.String"><![CDATA[3880 W Wheelhouse Rd]]></parameter>
    <parameter name="vZip" type="System.String"><![CDATA[53208]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>CheckEFFieldLength</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>10/31/2025 09:00:06:7287593 AM</localTime>
  <threadID>1</threadID>
  <correlationId>fe3dc267-3555-4185-84b7-4f6d225144f1</correlationId>
  <executionTime total="21" roundTrip="20" channel="0" bpm="0" bpmDataForm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="vCustNum" type="System.Int32"><![CDATA[142]]></parameter>
    <parameter name="vCustType" type="System.String"><![CDATA[CUS]]></parameter>
    <parameter name="vName" type="System.String"><![CDATA[L&R USA INC.]]></parameter>
    <parameter name="vAddress1" type="System.String"><![CDATA[3880 W Wheelhouse Rd]]></parameter>
    <parameter name="vAddress2" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vAddress3" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vCity" type="System.String"><![CDATA[Milwaukee]]></parameter>
    <parameter name="vState" type="System.String"><![CDATA[WI]]></parameter>
    <parameter name="vBTName" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTAddress1" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTAddress2" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTAddress3" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTCity" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTState" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vMessage" type="System.String"><![CDATA[]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>Update</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>10/31/2025 09:00:06:7492373 AM</localTime>
  <threadID>1</threadID>
  <correlationId>4819945a-b7b8-400a-86cb-caf8649d7f80</correlationId>
  <executionTime total="1896" roundTrip="1740" channel="0" bpm="0" bpmDataForm="0" other="156" />
  <retries>0</retries>
  <parameters>
    <parameter name="ds" type="Erp.BO.CustomerDataSet">
      <CustomerDataSet xmlns="http://www.epicor.com/Ice/300/BO/Customer/Customer" />
    </parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustCntImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Erp.Tablesets.CustCntTableset</returnType>
  <localTime>10/31/2025 09:00:08:6667694 AM</localTime>
  <threadID>1</threadID>
  <correlationId>15d5316a-771f-4a3c-8139-62c3e07f3897</correlationId>
  <executionTime total="101" roundTrip="99" channel="0" bpm="0" bpmDataForm="0" other="2" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseCustCnt" type="System.String"><![CDATA[CustNum = '142' 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>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>GetShipToGlobalFields</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.String</returnType>
  <localTime>10/31/2025 09:00:08:7695910 AM</localTime>
  <threadID>1</threadID>
  <correlationId>3aa5bedf-c6df-4448-93e3-10f1ca71207f</correlationId>
  <executionTime total="24" roundTrip="23" channel="0" bpm="0" bpmDataForm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="CustNum" type="System.Int32"><![CDATA[142]]></parameter>
    <parameter name="ShiptoNum" type="System.String"><![CDATA[6737]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustCntImpl</businessObject>
  <methodName>GetCustCntGlobalFields</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.String</returnType>
  <localTime>10/31/2025 09:00:08:7941321 AM</localTime>
  <threadID>1</threadID>
  <correlationId>95e35c8f-36e3-4d37-8765-e45de7f2a18e</correlationId>
  <executionTime total="21" roundTrip="20" channel="0" bpm="0" bpmDataForm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="CustNum" type="System.Int32"><![CDATA[142]]></parameter>
    <parameter name="ShiptoNum" type="System.String"><![CDATA[]]></parameter>
    <parameter name="ConNum" type="System.Int32"><![CDATA[18]]></parameter>
  </parameters>
</tracePacket>

<tracegroup name="CLICK SAVE BUTTON" />

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>CheckDupCustomer</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Erp.Tablesets.CustomerListTableset</returnType>
  <localTime>10/31/2025 09:00:27:7757958 AM</localTime>
  <threadID>1</threadID>
  <correlationId>d901012a-10a9-4bab-b5e0-de8e86724df4</correlationId>
  <executionTime total="46" roundTrip="44" channel="0" bpm="0" bpmDataForm="0" other="2" />
  <retries>0</retries>
  <parameters>
    <parameter name="vName" type="System.String"><![CDATA[L&R USA INC.]]></parameter>
    <parameter name="custId" type="System.String"><![CDATA[SOLAR]]></parameter>
    <parameter name="vRowid" type="System.Guid"><![CDATA[7b54fd9d-9019-41dc-9e5e-716c90e31d33]]></parameter>
    <parameter name="vAddress1" type="System.String"><![CDATA[3880 W Wheelhouse Rd]]></parameter>
    <parameter name="vZip" type="System.String"><![CDATA[53208]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>CheckEFFieldLength</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>10/31/2025 09:00:27:8221590 AM</localTime>
  <threadID>1</threadID>
  <correlationId>477575e4-46f7-44f1-ba43-5caa46a16b10</correlationId>
  <executionTime total="184" roundTrip="183" channel="0" bpm="0" bpmDataForm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="vCustNum" type="System.Int32"><![CDATA[142]]></parameter>
    <parameter name="vCustType" type="System.String"><![CDATA[CUS]]></parameter>
    <parameter name="vName" type="System.String"><![CDATA[L&R USA INC.]]></parameter>
    <parameter name="vAddress1" type="System.String"><![CDATA[3880 W Wheelhouse Rd]]></parameter>
    <parameter name="vAddress2" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vAddress3" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vCity" type="System.String"><![CDATA[Milwaukee]]></parameter>
    <parameter name="vState" type="System.String"><![CDATA[WI]]></parameter>
    <parameter name="vBTName" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTAddress1" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTAddress2" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTAddress3" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTCity" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTState" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vMessage" type="System.String"><![CDATA[]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>Update</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>10/31/2025 09:00:28:0068284 AM</localTime>
  <threadID>1</threadID>
  <correlationId>b14e760c-37b5-4da7-8084-d4e9b55b02c1</correlationId>
  <executionTime total="139" roundTrip="111" channel="0" bpm="0" bpmDataForm="0" other="28" />
  <retries>0</retries>
  <parameters>
    <parameter name="ds" type="Erp.BO.CustomerDataSet">
      <CustomerDataSet xmlns="http://www.epicor.com/Ice/300/BO/Customer/Customer" />
    </parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>CheckDupCustomer</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>Erp.Tablesets.CustomerListTableset</returnType>
  <localTime>10/31/2025 09:00:29:0385035 AM</localTime>
  <threadID>1</threadID>
  <correlationId>c99528d5-5851-467c-b25a-c2b9a09ca5fa</correlationId>
  <executionTime total="22" roundTrip="20" channel="0" bpm="0" bpmDataForm="0" other="2" />
  <retries>0</retries>
  <parameters>
    <parameter name="vName" type="System.String"><![CDATA[L&R USA INC.]]></parameter>
    <parameter name="custId" type="System.String"><![CDATA[SOLAR]]></parameter>
    <parameter name="vRowid" type="System.Guid"><![CDATA[7b54fd9d-9019-41dc-9e5e-716c90e31d33]]></parameter>
    <parameter name="vAddress1" type="System.String"><![CDATA[3880 W Wheelhouse Rd]]></parameter>
    <parameter name="vZip" type="System.String"><![CDATA[53208]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>CheckEFFieldLength</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>10/31/2025 09:00:29:0622531 AM</localTime>
  <threadID>1</threadID>
  <correlationId>b1e5bf7f-c344-4140-a1e2-c2de8e8e259d</correlationId>
  <executionTime total="167" roundTrip="165" channel="0" bpm="0" bpmDataForm="0" other="2" />
  <retries>0</retries>
  <parameters>
    <parameter name="vCustNum" type="System.Int32"><![CDATA[142]]></parameter>
    <parameter name="vCustType" type="System.String"><![CDATA[CUS]]></parameter>
    <parameter name="vName" type="System.String"><![CDATA[L&R USA INC.]]></parameter>
    <parameter name="vAddress1" type="System.String"><![CDATA[3880 W Wheelhouse Rd]]></parameter>
    <parameter name="vAddress2" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vAddress3" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vCity" type="System.String"><![CDATA[Milwaukee]]></parameter>
    <parameter name="vState" type="System.String"><![CDATA[WI]]></parameter>
    <parameter name="vBTName" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTAddress1" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTAddress2" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTAddress3" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTCity" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vBTState" type="System.String"><![CDATA[]]></parameter>
    <parameter name="vMessage" type="System.String"><![CDATA[]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.CustomerImpl</businessObject>
  <methodName>Update</methodName>
  <appServerUri>net.tcp://xxxxxxxxxxxxxxx/E10Test/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>10/31/2025 09:00:29:2297684 AM</localTime>
  <threadID>1</threadID>
  <correlationId>3b088920-cf86-416d-bf90-7a5eca0c618c</correlationId>
  <executionTime total="1040" roundTrip="1017" channel="0" bpm="0" bpmDataForm="0" other="23" />
  <retries>0</retries>
  <parameters>
    <parameter name="ds" type="Erp.BO.CustomerDataSet">
      <CustomerDataSet xmlns="http://www.epicor.com/Ice/300/BO/Customer/Customer" />
    </parameter>
  </parameters>
</tracePacket>




Using those results, I started down this path and immediately ran into the realization that I don’t know enough to clear what are probably minor hurdles:

Here is the code:

var orderHed = ttOrderHed;

foreach(var hed in orderHed)
{
  string strCompany = hed.Company;
  int intCustNum = hed.CustNum;
  int intShipToCustNum = hed.ShipToCustNum;
  string strShipToNum = hed.ShipToNum;
  
  var customer = (from cust in Db.Customer where cust.Company == strCompany && cust.CustNum == intShipToCustNum select cust).FirstOrDefault();
  var shipTo = (from st in Db.ShipTo where st.Company == strCompany && st.CustNum == intShipToCustNum && st.ShipToNum == strShipToNum select st).FirstOrDefault();
  
  if(customer != null)
  {
    string strCustID = customer.CustID;
    
    using(var customerSvc = Ice.Assemblies.ServiceRenderer.GetService<Erp.Contracts.CustomerSvcContract>(Db))
    {
      //Is 'new' is correct in the below line? I'm not creating a record; just trying to look one up
      Erp.Tablesets.CustomerTableset custData = new Erp.Tablesets.CustomerTableset();
      customerSvc.GetByCustID(ref custData);
      custData.Customer[0].CustID = strCustID;
      //Looking at the Trace, I know the below parameter is requested for this method, but I don't know the syntax to set it because it doesn't exist in the Customer Tableset
      custData.Customer[0].withShipTo = true;
      
      
      customerSvc.GetShipToGlobalFields(ref custData);
      custData.Customer[0].CustNum = intShipToCustNum;
      //Looking at the Trace, I know the below parameter is requested for this method, but I don't know the syntax to set it because it doesn't exist in the Customer Tableset
      custData.Customer[0].ShipToNum = strShipToNum;
    }
  }
}

Am I even heading down the correct path?

Yeah - you’re pretty close. I usually don’t include all the extra methods unless it fights me.
In your GetByCustID, you would want to pass the customer ID as the parameter (your strCustID). And you’d set your custData variable to that customerSvc.GetByCustID method. It’s basically saying, run that method and output the resulting dataset into my variable so I can do stuff with it.

Like this:

Erp.Tablesets.CustomerTableset custData = customerSvc.GetByCustID(strCustID);

var shipToRow = (from st in custData.ShipTo 
                 where st.CustNum == intShipToCustNum 
                 && st.ShipToNum == strShipToNum 
                 select st).FirstOrDefault();

if (shipToRow != null)
{
  shipToRow.EMailAddress = callContextBpmData.Character01;
  shipToRow.RowMod = "U";

  customerSvc.Update(ref custData);
}

// Don't forget to unset your callContextBpm variable
callContextBpmData.Character01 = "";
1 Like

I’m now getting the infamous “exists in both” error, so it looks like I might have to figure out how to move all of this to a function.


## System Information ##
==================

AppServer Connection: net.tcp://**********/E10Test
Form Name: Method Directives
Customization Name: 
Menu ID: BPMN1200
Software Version: 3.2.700.0

============

Server Side Exception

There is at least one compilation error.
CustomizationAdapter.cs(753,105): error CS0433: The type 'ETCAddrValidationTableset' exists in both 'Erp.Contracts.BO.Customer, Version=10.2.700.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992' and 'Erp.Contracts.BO.SalesOrder, Version=10.2.700.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992'
CustomizationAdapter.cs(758,108): error CS0433: The type 'ETCAddrValidationTableset' exists in both 'Erp.Contracts.BO.Customer, Version=10.2.700.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992' and 'Erp.Contracts.BO.SalesOrder, Version=10.2.700.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992'
CustomizationAdapter.cs(763,30): error CS0433: The type 'ETCAddrValidationTableset' exists in both 'Erp.Contracts.BO.Customer, Version=10.2.700.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992' and 'Erp.Contracts.BO.SalesOrder, Version=10.2.700.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992'
CustomizationAdapter.cs(9,142): error CS0738: 'SalesOrderSvcCustomization' does not implement interface member 'SalesOrderSvcContract.ETCValidateAddress(bool, int, int, int, out bool, out bool, out string, out bool)'. 'SalesOrderSvcCustomization.ETCValidateAddress(bool, int, int, int, out bool, out bool, out string, out bool)' cannot implement 'SalesOrderSvcContract.ETCValidateAddress(bool, int, int, int, out bool, out bool, out string, out bool)' because it does not have the matching return type of 'ETCAddrValidationTableset'.
CustomizationAdapter.cs(9,142): error CS0535: 'SalesOrderSvcCustomization' does not implement interface member 'SalesOrderSvcContract.ETCAfterAddressValidationOTS(ref SalesOrderTableset, ETCAddrValidationTableset, int)'
CustomizationAdapter.cs(9,142): error CS0535: 'SalesOrderSvcCustomization' does not implement interface member 'SalesOrderSvcContract.ETCAfterRelAddressValidationOTS(ref SalesOrderTableset, ETCAddrValidationTableset, int, int, int)'

Exception caught in: Epicor.ServiceModel

## Error Detail ##
============

##!Correlation ID:##!  822ca689-b9c5-4876-8b26-514ac2dc3edd
##!Description:##!  There is at least one compilation error.
##!Details:##!  
CustomizationAdapter.cs(753,105): error CS0433: The type 'ETCAddrValidationTableset' exists in both 'Erp.Contracts.BO.Customer, Version=10.2.700.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992' and 'Erp.Contracts.BO.SalesOrder, Version=10.2.700.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992'
CustomizationAdapter.cs(758,108): error CS0433: The type 'ETCAddrValidationTableset' exists in both 'Erp.Contracts.BO.Customer, Version=10.2.700.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992' and 'Erp.Contracts.BO.SalesOrder, Version=10.2.700.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992'
CustomizationAdapter.cs(763,30): error CS0433: The type 'ETCAddrValidationTableset' exists in both 'Erp.Contracts.BO.Customer, Version=10.2.700.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992' and 'Erp.Contracts.BO.SalesOrder, Version=10.2.700.0, Culture=neutral, PublicKeyToken=5d3fa3c7105d7992'
CustomizationAdapter.cs(9,142): error CS0738: 'SalesOrderSvcCustomization' does not implement interface member 'SalesOrderSvcContract.ETCValidateAddress(bool, int, int, int, out bool, out bool, out string, out bool)'. 'SalesOrderSvcCustomization.ETCValidateAddress(bool, int, int, int, out bool, out bool, out string, out bool)' cannot implement 'SalesOrderSvcContract.ETCValidateAddress(bool, int, int, int, out bool, out bool, out string, out bool)' because it does not have the matching return type of 'ETCAddrValidationTableset'.
CustomizationAdapter.cs(9,142): error CS0535: 'SalesOrderSvcCustomization' does not implement interface member 'SalesOrderSvcContract.ETCAfterAddressValidationOTS(ref SalesOrderTableset, ETCAddrValidationTableset, int)'
CustomizationAdapter.cs(9,142): error CS0535: 'SalesOrderSvcCustomization' does not implement interface member 'SalesOrderSvcContract.ETCAfterRelAddressValidationOTS(ref SalesOrderTableset, ETCAddrValidationTableset, int, int, int)'
##!Program:##!  Epicor.Customization.Core.dll
##!Method:##!  Compile
##!Line Number:##!  78
##!Column Number:##!  13

## Client Stack Trace ##
==================
   at Epicor.ServiceModel.Channels.ImplBase`1.ShouldRethrowNonRetryableException(Exception ex, DataSet[] dataSets)
   at Ice.Proxy.BO.BpMethodImpl.Update(BpMethodDataSet ds)
   at Ice.Adapters.BpMethodAdapter.OnUpdate()
   at Ice.Lib.Framework.EpiBaseAdapter.Update()
   at Ice.UI.App.BpMethodEntry.Transactions.MainTransactionBase.adapterUpdate()

What’s your custom code look like now? We could always try to run it as an UpdateExt method also if this fights you. That’s what the DMT uses. It’s pretty flexible. You just pass it the fields you want to update and it updates them as long as there isn’t any conflict with business logic. So hope is not lost. I ran into problems updating a field on PO Releases once and ended up having to use UpdateExt instead.

The code looks like the below now, with the Customer BO reference added in Assemblies.

var orderHed = ttOrderHed;

foreach(var hed in orderHed)
{
  string strCompany = hed.Company;
  int intCustNum = hed.CustNum;
  int intShipToCustNum = hed.ShipToCustNum;
  string strShipToNum = hed.ShipToNum;
  
  var customer = (from cust in Db.Customer where cust.Company == strCompany && cust.CustNum == intShipToCustNum select cust).FirstOrDefault();
 
  
  if(customer != null)
  {
    string strCustID = customer.CustID;
    bool withShipTo = true;
    
    using(var customerSvc = Ice.Assemblies.ServiceRenderer.GetService<Erp.Contracts.CustomerSvcContract>(Db))
    {
      Erp.Tablesets.CustomerTableset custData = customerSvc.GetByCustID(strCustID, withShipTo);

      var shipToRow = (from st in custData.ShipTo 
                       where st.CustNum == intShipToCustNum 
                       && st.ShipToNum == strShipToNum 
                       select st).FirstOrDefault();

      if (shipToRow != null)
      {
        shipToRow.EMailAddress = callContextBpmData.Character01;
       shipToRow.RowMod = "U";

        customerSvc.Update(ref custData);
      }

    
      callContextBpmData.Character01 = "";
    }
  }
}

Now that I look at your error closer, it appears to be a customization based error on the Sales Order screen. Is it possible something in there isn’t right? You could quickly confirm by just disabling the BPM you created and make sure that the order saves properly when you hit Save. I’m assuming that’s what sets all of this in motion? You hit save on the order, that triggers the MasterUpdate, then you pin the BPM to the MasterUpdate Post-Processing, right? You probably had a pre-processing also to get the email address and ShipTo info and then you pass that to post-processing via callContextBpmData right?

1 Like

You’re 100% correct about the flow: Pre-processing passes values into callContextBpm placeholders then calls the Post-processing, which runs the custom code. You’re also correct that it’s triggered by the ‘Save’ button in Order Entry.

I opened the customization of Order Entry and discovered it’s loading a custom DLL written by an Epicor partner company - Century Business Solutions. We use their solution for credit card processing, and it looks like their stuff is causing the error when my BPM is enabled. There are no Functions in the system related to their solution, so it must all be housed in the .dll

I might have to think about this a different way.

We use them too and you’re correct CBS’s Classic customizations are done in the forms instead of functions. Their Kinetic version uses functions at least but little comfort for you now.

1 Like

Thank you for confirming. I’ll have to find a new approach, maybe with a UBAQ or UD table or a combination of the two.

We have BPMs on our Customer and Order BOs though so not 100% sure why yours is erroring out though.

Yeah I was thinking the same thing. We also have CBS and have BPMs that work on SalesOrder.MasterUpdate.

1 Like