How to interpret a trace

This is a follow-up to BPM to set price based on ship to but the original problem was solved with a price list.

However @Banderson very kindly said that he would explain how to interpret a trace, I am taking him up on that offer. This situation is a little different, but the BPM did not do what I thought it should

I am trying to display a warning message whenever an order line quantity is not divisible by 12 (long term I will place conditions for specific parts; for now I just want to get it to display at all).

So… I have created a pre-processing method directive on Erp.SalesOrdHedDtl.Update.
In that directive, I have defined a variable Modulus as a decimal. The code blocks are as follows:

  1. Start
  2. Set Argument/Variable: Set the Modulus… to the (ttOrderDtlRow.OrderQty %12 ) expression.
  3. Condition: The Modulus arg/var is equal to to the 0 expression
  4. If Condition is FALSE, then Show Message (Severity: Warning; Display As: Individual (alone) message)
  5. If Condition is FALSE, then Show Message (Severity: Warning; Display As: Individual (alone) message). This is a different message from the one in 4.

There were no validation errors. The BPM is enabled.

I entered an order for 15 MRPH, saved it, and saw no messages at all. Below are portions of the trace log (including the whole thing made the message too long, so I eliminated what looked lke every field listed about 4-5 times)

<tracePacket>
  <businessObject>Ice.Proxy.BO.ReportMonitorImpl</businessObject>
  <methodName>GetRowsKeepIdleTime</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>Ice.Tablesets.ReportMonitorTableset</returnType>
  <localTime>3/5/2019 17:52:05:8404726 PM</localTime>
  <threadID>13</threadID>
  <executionTime total="64" roundTrip="62" channel="0" bpm="0" other="2" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseSysRptLst" type="System.String"><![CDATA[((PrintDriver='TEXT' AND (AutoAction='PRINT' OR AutoAction='PREVIEW')) OR (PrintDriver='CRYSTAL' 

AND (AutoAction='PRINT' OR AutoAction='AUTOPRT' OR AutoAction='PREVIEW' OR AutoAction='AUTOPRV')) OR (PrintDriver='EPIFIN' AND (AutoAction='PRINT' OR 

AutoAction='PREVIEW')) OR (PrintDriver='BARTENDER' AND (AutoAction='AUTOPRT' OR AutoAction='AUTOPRV')) OR (PrintDriver='EDI' AND AutoAction<>'') OR (PrintDriver='SSRS' 

AND (AutoAction='PREVIEW' OR AutoAction='PRINT') AND LastAction='SSRSREADY')) AND WorkStationID='ENHOUL-C06NZQ1 1']]></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.SysMonitorTasksImpl</businessObject>
  <methodName>GetBallonRowsKeepIdleTime</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>Ice.Tablesets.SysMonitorTasksTableset</returnType>
  <localTime>3/5/2019 17:52:05:9054791 PM</localTime>
  <threadID>13</threadID>
  <executionTime total="109" roundTrip="100" channel="0" bpm="7" other="2" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseSysTask" type="System.String"><![CDATA[history = true and startedon > 03/04/2019 and  SubmitUser = 'skhayatt']]></parameter>
    <parameter name="whereClauseSysTaskLog" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[1]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.BO.GenXDataImpl</businessObject>
  <methodName>GetList</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>Ice.Tablesets.XXXDefListTableset</returnType>
  <localTime>3/5/2019 17:52:13:8142699 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="108" roundTrip="106" channel="0" bpm="0" other="2" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClause" type="System.String"><![CDATA[Key2 = 'App.SalesOrderEntry.SalesOrderForm']]></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.GenXDataImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>Ice.Tablesets.GenXDataTableset</returnType>
  <localTime>3/5/2019 17:52:14:0082893 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="69" roundTrip="64" channel="0" bpm="2" other="3" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseXXXDef" type="System.String"><![CDATA[Company = '' AND ProductID = 'EP' AND TypeCode = 'Localization' AND CGCCode = '' AND Key1 = 

'SalesOrderForm' AND Key2 = 'App.SalesOrderEntry.SalesOrderForm' AND Key3 = '']]></parameter>
    <parameter name="whereClauseXXXChunk" 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.BO.GenXDataImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>Ice.Tablesets.GenXDataTableset</returnType>
  <localTime>3/5/2019 17:52:14:0792964 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="73" roundTrip="68" channel="0" bpm="2" other="3" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseXXXDef" type="System.String"><![CDATA[Company = '' AND ProductID = 'EP' AND TypeCode = 'Customization' AND CGCCode = '' AND Key1 = 

'EndCustPO2' AND Key2 = 'App.SalesOrderEntry.SalesOrderForm' AND Key3 = '']]></parameter>
    <parameter name="whereClauseXXXChunk" 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.BO.GenXDataImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>Ice.Tablesets.GenXDataTableset</returnType>
  <localTime>3/5/2019 17:52:14:1693054 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="69" roundTrip="65" channel="0" bpm="1" other="3" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseXXXDef" type="System.String"><![CDATA[Company = 'ESP' AND ProductID = 'EP' AND TypeCode = 'Personalization' AND CGCCode = '' AND Key1 

= 'skhayatt' AND Key2 = 'App.SalesOrderEntry.SalesOrderForm' AND Key3 = 'Customization^EndCustPO2']]></parameter>
    <parameter name="whereClauseXXXChunk" 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.BOReaderImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>System.Data.DataSet</returnType>
  <localTime>3/5/2019 17:52:16:1505035 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="106" roundTrip="105" channel="0" bpm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="serviceNamespace" type="System.String"><![CDATA[Ice:BO:Company]]></parameter>
    <parameter name="whereClause" type="System.String"><![CDATA[Company = 'ESP']]></parameter>
    <parameter name="columnList" type="System.String"><![CDATA[ESEURL,ESENotificationSourceID]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.Lib.BOReaderImpl</businessObject>
  <methodName>GetRows</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>System.Data.DataSet</returnType>
  <localTime>3/5/2019 17:52:16:2585143 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="65" roundTrip="64" channel="0" bpm="0" other="1" />
  <retries>0</retries>
  <parameters>
    <parameter name="serviceNamespace" type="System.String"><![CDATA[Ice:BO:UserFile]]></parameter>
    <parameter name="whereClause" type="System.String"><![CDATA[UserID = 'skhayatt']]></parameter>
    <parameter name="columnList" type="System.String"><![CDATA[ESEUserID,ESEPassword,DomainName,OSUserId]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.SalesOrderImpl</businessObject>
  <methodName>GetNewOrderHed</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>3/5/2019 17:52:19:2768161 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="416" roundTrip="113" channel="280" bpm="1" other="22" />
  <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.SalesOrderImpl</businessObject>
  <methodName>OnChangeofSoldToCreditCheck</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>3/5/2019 17:52:22:8611745 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="247" roundTrip="216" channel="0" bpm="0" other="31" />
  <retries>0</retries>
  <parameters>
    <parameter name="iOrderNum" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="iCustID" type="System.String"><![CDATA[lesa2]]></parameter>
    <parameter name="cCreditLimitMessage" type="System.String"><![CDATA[]]></parameter>
    <parameter name="cAgingMessage" type="System.String"><![CDATA[]]></parameter>
    <parameter name="lContinue" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="ds" type="Erp.BO.SalesOrderDataSet">
      <SalesOrderDataSet xmlns="http://www.epicor.com/Ice/300/BO/SalesOrder/SalesOrder" />
    </parameter>
  </parameters>
  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0">
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="OpenOrder"><![CDATA[True]]></changedValue>
      
(lots of lines similar to the one above)

           <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="RowMod"><![CDATA[A]]></changedValue>
    </paramDataSet>
  </paramDataSetChanges>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.SalesOrderImpl</businessObject>
  <methodName>OnChangeofSoldToCreditCheck</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>3/5/2019 17:52:29:1218005 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="154" roundTrip="109" channel="0" bpm="5" other="40" />
  <retries>0</retries>
  <parameters>
    <parameter name="iOrderNum" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="iCustID" type="System.String"><![CDATA[lesa]]></parameter>
    <parameter name="cCreditLimitMessage" type="System.String"><![CDATA[]]></parameter>
    <parameter name="cAgingMessage" type="System.String"><![CDATA[]]></parameter>
    <parameter name="lContinue" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="ds" type="Erp.BO.SalesOrderDataSet">
      <SalesOrderDataSet xmlns="http://www.epicor.com/Ice/300/BO/SalesOrder/SalesOrder" />
    </parameter>
  </parameters>
  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0">
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="OpenOrder"><![CDATA[True]]></changedValue>

(lots of rows similar to the ones above and below)

      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="RowMod"><![CDATA[A]]></changedValue>
    </paramDataSet>
  </paramDataSetChanges>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.SalesOrderImpl</businessObject>
  <methodName>ChangeSoldToID</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>3/5/2019 17:52:29:2958179 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="109" roundTrip="92" channel="0" bpm="1" other="16" />
  <retries>0</retries>
  <parameters>
    <parameter name="ds" type="Erp.BO.SalesOrderDataSet">
      <SalesOrderDataSet xmlns="http://www.epicor.com/Ice/300/BO/SalesOrder/SalesOrder" />
    </parameter>
  </parameters>
  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0">
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="OpenOrder"><![CDATA[True]]></changedValue>
      
(lots of rows similiar to the ones above and below)

      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="RowMod"><![CDATA[A]]></changedValue>
    </paramDataSet>
  </paramDataSetChanges>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.SalesOrderImpl</businessObject>
  <methodName>ChangeCustomer</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>3/5/2019 17:52:29:5048388 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="105" roundTrip="77" channel="0" bpm="1" other="27" />
  <retries>0</retries>
  <parameters>
    <parameter name="ds" type="Erp.BO.SalesOrderDataSet">
      <SalesOrderDataSet xmlns="http://www.epicor.com/Ice/300/BO/SalesOrder/SalesOrder" />
    </parameter>
  </parameters>
  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0">
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="OpenOrder"><![CDATA[True]]></changedValue>
      
(lots of rows similiar to the ones above and below - kept in one(s) that had data)


      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="BTAddressList"><![CDATA[Nerey Enterprises~123 Main Street~Beverly Hills CA 90210~USA]]

></changedValue>

(lots of rows similiar to the ones above and below - kept in one(s) that had data)


            <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="SalesRepName1"><![CDATA[Diane Cresbaugh]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="SalesRepName2"><![CDATA[]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="SalesRepName3"><![CDATA[]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="SalesRepName4"><![CDATA[]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="SalesRepName5"><![CDATA[]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="ShipToAddressList"><![CDATA[Nerey Enterprises~123 Main Street~Beverly Hills CA 

90210~USA]]></changedValue>
     
(lots of rows similiar to the ones above and below - kept in one(s) that had data)

      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="SoldToAddressList"><![CDATA[Nerey Enterprises~123 Main Street~Beverly Hills CA 

90210~USA]]></changedValue>
     

(lots of rows similiar to the ones above and below - kept in one(s) that had data)

      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="RowMod"><![CDATA[A]]></changedValue>
    </paramDataSet>
  </paramDataSetChanges>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.BO.ReportMonitorImpl</businessObject>
  <methodName>GetRowsKeepIdleTime</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>Ice.Tablesets.ReportMonitorTableset</returnType>
  <localTime>3/5/2019 17:52:36:0274910 PM</localTime>
  <threadID>13</threadID>
  <executionTime total="64" roundTrip="62" channel="0" bpm="0" other="2" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseSysRptLst" type="System.String"><![CDATA[((PrintDriver='TEXT' AND (AutoAction='PRINT' OR AutoAction='PREVIEW')) OR (PrintDriver='CRYSTAL' 

AND (AutoAction='PRINT' OR AutoAction='AUTOPRT' OR AutoAction='PREVIEW' OR AutoAction='AUTOPRV')) OR (PrintDriver='EPIFIN' AND (AutoAction='PRINT' OR 

AutoAction='PREVIEW')) OR (PrintDriver='BARTENDER' AND (AutoAction='AUTOPRT' OR AutoAction='AUTOPRV')) OR (PrintDriver='EDI' AND AutoAction<>'') OR (PrintDriver='SSRS' 

AND (AutoAction='PREVIEW' OR AutoAction='PRINT') AND LastAction='SSRSREADY')) AND WorkStationID='ENHOUL-C06NZQ1 1']]></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.SysMonitorTasksImpl</businessObject>
  <methodName>GetBallonRowsKeepIdleTime</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>Ice.Tablesets.SysMonitorTasksTableset</returnType>
  <localTime>3/5/2019 17:52:36:0914974 PM</localTime>
  <threadID>13</threadID>
  <executionTime total="104" roundTrip="101" channel="0" bpm="1" other="2" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseSysTask" type="System.String"><![CDATA[history = true and startedon > 03/04/2019 and  SubmitUser = 'skhayatt']]></parameter>
    <parameter name="whereClauseSysTaskLog" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[1]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.SalesOrderImpl</businessObject>
  <methodName>ChangeNeedByDate</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>3/5/2019 17:52:42:8451727 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="136" roundTrip="119" channel="0" bpm="0" other="17" />
  <retries>0</retries>
  <parameters>
    <parameter name="ds" type="Erp.BO.SalesOrderDataSet">
      <SalesOrderDataSet xmlns="http://www.epicor.com/Ice/300/BO/SalesOrder/SalesOrder" />
    </parameter>
    <parameter name="cTableName" type="System.String"><![CDATA[OrderHed]]></parameter>
  </parameters>
  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0">
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="OpenOrder"><![CDATA[True]]></changedValue>

(lots of rows similiar to the ones above and below - kept in one(s) that had data)
      
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="BTAddressList"><![CDATA[Nerey Enterprises~123 Main Street~Beverly Hills CA 90210~USA]]

></changedValue>
      
(lots of rows similiar to the ones above and below - kept in one(s) that had data)


      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="ShipToAddressList"><![CDATA[Nerey Enterprises~123 Main Street~Beverly Hills CA 

90210~USA]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="ShipToContactEMailAddress"><![CDATA[]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="ShipToContactFaxNum"><![CDATA[]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="ShipToContactName"><![CDATA[]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="ShipToContactPhoneNum"><![CDATA[]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="ShipToCustId"><![CDATA[LESA]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="ShowApplyOrderDiscountsControl"><![CDATA[False]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="SoldToAddressList"><![CDATA[Nerey Enterprises~123 Main Street~Beverly Hills CA 

90210~USA]]></changedValue>
      
(lots of rows similiar to the ones above and below - kept in one(s) that had data)


      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="RowMod"><![CDATA[A]]></changedValue>
    </paramDataSet>
  </paramDataSetChanges>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.Lib.BOReaderImpl</businessObject>
  <methodName>GetList</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>System.Data.DataSet</returnType>
  <localTime>3/5/2019 17:52:44:8603742 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="105" roundTrip="105" channel="0" bpm="0" other="0" />
  <retries>0</retries>
  <parameters>
    <parameter name="serviceNamespace" type="System.String"><![CDATA[Erp:BO:ShipVia]]></parameter>
    <parameter name="whereClause" type="System.String"><![CDATA[]]></parameter>
    <parameter name="columnList" type="System.String"><![CDATA[ShipViaCode,Description]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.SalesOrderImpl</businessObject>
  <methodName>MasterUpdate</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>3/5/2019 17:52:47:5876469 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="379" roundTrip="317" channel="0" bpm="1" other="61" />
  <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[1198]]></parameter>
    <parameter name="iOrderNum" type="System.Int32"><![CDATA[0]]></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>
  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0">
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="OpenOrder"><![CDATA[True]]></changedValue>
      
(lots of rows similar to one above - keeping in the onces that seem to have actual values)


      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="BTAddressList"><![CDATA[Nerey Enterprises~123 Main Street~Beverly Hills CA 90210~USA]]

></changedValue>
      
(lots of rows similiar to the ones above and below - kept in one(s) that had data)


      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="ShipToAddressList"><![CDATA[Nerey Enterprises~123 Main Street~Beverly Hills CA 

90210~USA]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="ShipToContactEMailAddress"><![CDATA[]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="ShipToContactFaxNum"><![CDATA[]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="ShipToContactName"><![CDATA[]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="ShipToContactPhoneNum"><![CDATA[]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="ShipToCustId"><![CDATA[LESA]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="ShowApplyOrderDiscountsControl"><![CDATA[False]]></changedValue>
      <changedValue tableName="OrderHed" rowState="Added" rowNum="0" colName="SoldToAddressList"><![CDATA[Nerey Enterprises~123 Main Street~Beverly Hills CA 

90210~USA]]></changedValue>

(lots of rows similiar to the ones above and below - kept in one(s) that had data)

      <changedValue tableName="TaxConnectStatus" rowState="Modified" rowNum="0" colName="RowMod"><![CDATA[U]]></changedValue>
    </paramDataSet>
  </paramDataSetChanges>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.SalesOrderImpl</businessObject>
  <methodName>GetNewOrderDtl</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>3/5/2019 17:52:48:0976979 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="214" roundTrip="89" channel="0" bpm="0" other="125" />
  <retries>0</retries>
  <parameters>
    <parameter name="ds" type="Erp.BO.SalesOrderDataSet">
      <SalesOrderDataSet xmlns="http://www.epicor.com/Ice/300/BO/SalesOrder/SalesOrder" />
    </parameter>
    <parameter name="orderNum" type="System.Int32"><![CDATA[369298]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.SalesOrderImpl</businessObject>
  <methodName>ChangePartNumMaster</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>3/5/2019 17:52:51:1516133 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="207" roundTrip="147" channel="0" bpm="1" other="59" />
  <retries>0</retries>
  <parameters>
    <parameter name="partNum" type="System.String"><![CDATA[mrph]]></parameter>
    <parameter name="lSubstitutePartExist" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="lIsPhantom" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="uomCode" type="System.String"><![CDATA[]]></parameter>
    <parameter name="SysRowID" type="System.Guid"><![CDATA[00000000-0000-0000-0000-000000000000]]></parameter>
    <parameter name="rowType" type="System.String"><![CDATA[]]></parameter>
    <parameter name="salesKitView" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="removeKitComponents" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="suppressUserPrompts" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="getPartXRefInfo" type="System.Boolean"><![CDATA[True]]></parameter>
    <parameter name="checkPartRevisionChange" type="System.Boolean"><![CDATA[True]]></parameter>
    <parameter name="checkChangeKitParent" type="System.Boolean"><![CDATA[True]]></parameter>
    <parameter name="cDeleteComponentsMessage" type="System.String"><![CDATA[]]></parameter>
    <parameter name="questionString" type="System.String"><![CDATA[]]></parameter>
    <parameter name="cWarningMessage" type="System.String"><![CDATA[]]></parameter>
    <parameter name="multipleMatch" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="promptToExplodeBOM" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="cConfigPartMessage" type="System.String"><![CDATA[]]></parameter>
    <parameter name="cSubPartMessage" type="System.String"><![CDATA[]]></parameter>
    <parameter name="explodeBOMerrMessage" type="System.String"><![CDATA[]]></parameter>
    <parameter name="cMsgType" type="System.String"><![CDATA[]]></parameter>
    <parameter name="multiSubsAvail" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="runOutQtyAvail" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="ds" type="Erp.BO.SalesOrderDataSet">
      <SalesOrderDataSet xmlns="http://www.epicor.com/Ice/300/BO/SalesOrder/SalesOrder" />
    </parameter>
  </parameters>
  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0">

      <changedValue tableName="OrderDtl" rowState="Added" rowNum="0" colName="VoidLine"><![CDATA[False]]></changedValue>
      
(lots of rows similar to ones above and below)

      <changedValue tableName="OrderDtl" rowState="Added" rowNum="0" colName="RowMod"><![CDATA[A]]></changedValue>
    </paramDataSet>
  </paramDataSetChanges>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.SalesOrderImpl</businessObject>
  <methodName>ChangeSellingQtyMaster</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>3/5/2019 17:52:54:7802504 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="338" roundTrip="305" channel="0" bpm="0" other="33" />
  <retries>0</retries>
  <parameters>
    <parameter name="ds" type="Erp.BO.SalesOrderDataSet">
      <SalesOrderDataSet xmlns="http://www.epicor.com/Ice/300/BO/SalesOrder/SalesOrder" />
    </parameter>
    <parameter name="ipSellingQuantity" type="System.Decimal"><![CDATA[10]]></parameter>
    <parameter name="chkSellQty" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="negInvTest" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="chgSellQty" type="System.Boolean"><![CDATA[True]]></parameter>
    <parameter name="chgDiscPer" type="System.Boolean"><![CDATA[True]]></parameter>
    <parameter name="suppressUserPrompts" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="lKeepUnitPrice" type="System.Boolean"><![CDATA[True]]></parameter>
    <parameter name="pcPartNum" type="System.String"><![CDATA[MRPH]]></parameter>
    <parameter name="pcWhseCode" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pcBinNum" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pcLotNum" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pcDimCode" type="System.String"><![CDATA[EACH]]></parameter>
    <parameter name="pdDimConvFactor" type="System.Decimal"><![CDATA[1]]></parameter>
    <parameter name="pcMessage" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pcNeqQtyAction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="opWarningMsg" type="System.String"><![CDATA[]]></parameter>
    <parameter name="cSellingQuantityChangedMsgText" type="System.String"><![CDATA[]]></parameter>
  </parameters>
  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0">
      <changedValue tableName="OrderDtl" rowState="Added" rowNum="0" colName="VoidLine"><![CDATA[False]]></changedValue>
      
(lots of rows similar to ones above and below)


      <changedValue tableName="OrderDtl" rowState="Added" rowNum="0" colName="RowMod"><![CDATA[A]]></changedValue>
    </paramDataSet>
  </paramDataSetChanges>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.SalesOrderImpl</businessObject>
  <methodName>ChangeSellingQtyMaster</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>3/5/2019 17:53:05:9821301 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="164" roundTrip="135" channel="0" bpm="0" other="29" />
  <retries>0</retries>
  <parameters>
    <parameter name="ds" type="Erp.BO.SalesOrderDataSet">
      <SalesOrderDataSet xmlns="http://www.epicor.com/Ice/300/BO/SalesOrder/SalesOrder" />
    </parameter>
    <parameter name="ipSellingQuantity" type="System.Decimal"><![CDATA[15]]></parameter>
    <parameter name="chkSellQty" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="negInvTest" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="chgSellQty" type="System.Boolean"><![CDATA[True]]></parameter>
    <parameter name="chgDiscPer" type="System.Boolean"><![CDATA[True]]></parameter>
    <parameter name="suppressUserPrompts" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="lKeepUnitPrice" type="System.Boolean"><![CDATA[True]]></parameter>
    <parameter name="pcPartNum" type="System.String"><![CDATA[MRPH]]></parameter>
    <parameter name="pcWhseCode" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pcBinNum" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pcLotNum" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pcDimCode" type="System.String"><![CDATA[EACH]]></parameter>
    <parameter name="pdDimConvFactor" type="System.Decimal"><![CDATA[1]]></parameter>
    <parameter name="pcMessage" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pcNeqQtyAction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="opWarningMsg" type="System.String"><![CDATA[]]></parameter>
    <parameter name="cSellingQuantityChangedMsgText" type="System.String"><![CDATA[]]></parameter>
  </parameters>
  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0">
      <changedValue tableName="OrderDtl" rowState="Added" rowNum="0" colName="VoidLine"><![CDATA[False]]></changedValue>


(lots of rows similar to ones above and below)


      <changedValue tableName="OrderDtl" rowState="Added" rowNum="0" colName="RowMod"><![CDATA[A]]></changedValue>
    </paramDataSet>
  </paramDataSetChanges>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.BO.ReportMonitorImpl</businessObject>
  <methodName>GetRowsKeepIdleTime</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>Ice.Tablesets.ReportMonitorTableset</returnType>
  <localTime>3/5/2019 17:53:06:2091074 PM</localTime>
  <threadID>13</threadID>
  <executionTime total="66" roundTrip="64" channel="0" bpm="0" other="2" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseSysRptLst" type="System.String"><![CDATA[((PrintDriver='TEXT' AND (AutoAction='PRINT' OR AutoAction='PREVIEW')) OR (PrintDriver='CRYSTAL' 

AND (AutoAction='PRINT' OR AutoAction='AUTOPRT' OR AutoAction='PREVIEW' OR AutoAction='AUTOPRV')) OR (PrintDriver='EPIFIN' AND (AutoAction='PRINT' OR 

AutoAction='PREVIEW')) OR (PrintDriver='BARTENDER' AND (AutoAction='AUTOPRT' OR AutoAction='AUTOPRV')) OR (PrintDriver='EDI' AND AutoAction<>'') OR (PrintDriver='SSRS' 

AND (AutoAction='PREVIEW' OR AutoAction='PRINT') AND LastAction='SSRSREADY')) AND WorkStationID='ENHOUL-C06NZQ1 1']]></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.SysMonitorTasksImpl</businessObject>
  <methodName>GetBallonRowsKeepIdleTime</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>Ice.Tablesets.SysMonitorTasksTableset</returnType>
  <localTime>3/5/2019 17:53:06:2751008 PM</localTime>
  <threadID>13</threadID>
  <executionTime total="105" roundTrip="101" channel="0" bpm="1" other="3" />
  <retries>0</retries>
  <parameters>
    <parameter name="whereClauseSysTask" type="System.String"><![CDATA[history = true and startedon > 03/04/2019 and  SubmitUser = 'skhayatt']]></parameter>
    <parameter name="whereClauseSysTaskLog" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pageSize" type="System.Int32"><![CDATA[0]]></parameter>
    <parameter name="absolutePage" type="System.Int32"><![CDATA[1]]></parameter>
    <parameter name="morePages" type="System.Boolean"><![CDATA[False]]></parameter>
  </parameters>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.SalesOrderImpl</businessObject>
  <methodName>MasterUpdate</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>3/5/2019 17:53:08:1239159 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="615" roundTrip="556" channel="0" bpm="4" other="55" />
  <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[OrderDtl]]></parameter>
    <parameter name="iCustNum" type="System.Int32"><![CDATA[1198]]></parameter>
    <parameter name="iOrderNum" type="System.Int32"><![CDATA[369298]]></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>
  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0">
      <changedValue tableName="OrderDtl" rowState="Added" rowNum="0" colName="VoidLine"><![CDATA[False]]></changedValue>


(lots of rows similar to ones above and below)


      <changedValue tableName="OrderDtl" rowState="Added" rowNum="0" colName="RowMod"><![CDATA[A]]></changedValue>
    </paramDataSet>
  </paramDataSetChanges>
</tracePacket>

<tracePacket>
  <businessObject>Ice.Proxy.Lib.BOReaderImpl</businessObject>
  <methodName>GetList</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>System.Data.DataSet</returnType>
  <localTime>3/5/2019 17:53:08:8738409 PM</localTime>
  <threadID>1</threadID>
  <executionTime total="103" roundTrip="101" channel="0" bpm="0" other="2" />
  <retries>0</retries>
  <parameters>
    <parameter name="serviceNamespace" type="System.String"><![CDATA[Erp:BO:ProjPhaseSearch]]></parameter>
    <parameter name="whereClause" type="System.String"><![CDATA[(ProjectID = '')]]></parameter>
    <parameter name="columnList" type="System.String"><![CDATA[SortSeq,PhaseID,Description]]></parameter>
  </parameters>
</tracePacket>

(not quite sure how to make the box smaller)

Thanks.

Alright. First thing, make sure you turn off the task agent. Right click on the Epicor icon exit. That’s what you get idle balloon things are. It’s just noise.

I’ll write more later, after the munchkin goes to bed.

Why did you chose that method for the BPM or that object? Unless I am missing something I don’t see that BO in the trace. I see SalesOrder with MasterUpdate as the last method. I do not see SalesOrderHedDtl BO with the Update method. Do you see this in the trace file? Just curious. If you do not you may want to add your BPM to the MasterUpdate method and try again. I will @Banderson respond with trace log details. I am glad to help too. But like he said always right click on the system monitor in the system tray and exit before turning on tracing to get rid of the fluff.

1 Like

Yup, @jeowings is right. The BO that you put you BPM isn’t firing, which is why the BPM isn’t firing. Remember, you start with a trace before you make your BPM to find out where to put the BPM.

When you are reading your trace, the most important part to start with is the business object and the method.

These lines tell you the business object that is called and the specific method. You can follow along in the trace and see each of the methods that is called.

For example, I can see that you started the trace before you had anything in the window because of all the get rows object that are called. One of the reasons your trace is so confusing, is that you recorded way more than you needed. Your goal was to make sure you couldn’t save with a quantity not multiple of 12. So your trace should only be of you changing the quantity and saving. That, along with turning your task agent off, will remove a very large portion of your trace that isn’t helping you. So get everything set up will right before you set or change the quantity, then clear your trace. Then change the quantity, save, then immediately after that open your trace. You really shouldn’t have more that 2 or 3 calls.

Get a cleaner trace and then we’ll look at that.

1 Like

I had gone into admin console and turned off the task agent – or thought I did. will try again.

NO! Just right click on your computer and click exit. NOT ON THE SERVER!

image

3 Likes

OK, this one is shorter. Started with a saved line that has 12, then turned on tracing, changed it to 15 and then saved.

<tracePacket>
  <businessObject>Erp.Proxy.BO.SalesOrderImpl</businessObject>
  <methodName>ChangeSellingQtyMaster</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>3/6/2019 09:55:02:6133337 AM</localTime>
  <threadID>1</threadID>
  <executionTime total="217" roundTrip="145" channel="0" bpm="1" other="71" />
  <retries>0</retries>
  <parameters>
    <parameter name="ds" type="Erp.BO.SalesOrderDataSet">
      <SalesOrderDataSet xmlns="http://www.epicor.com/Ice/300/BO/SalesOrder/SalesOrder" />
    </parameter>
    <parameter name="ipSellingQuantity" type="System.Decimal"><![CDATA[15]]></parameter>
    <parameter name="chkSellQty" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="negInvTest" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="chgSellQty" type="System.Boolean"><![CDATA[True]]></parameter>
    <parameter name="chgDiscPer" type="System.Boolean"><![CDATA[True]]></parameter>
    <parameter name="suppressUserPrompts" type="System.Boolean"><![CDATA[False]]></parameter>
    <parameter name="lKeepUnitPrice" type="System.Boolean"><![CDATA[True]]></parameter>
    <parameter name="pcPartNum" type="System.String"><![CDATA[MRPH]]></parameter>
    <parameter name="pcWhseCode" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pcBinNum" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pcLotNum" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pcDimCode" type="System.String"><![CDATA[EACH]]></parameter>
    <parameter name="pdDimConvFactor" type="System.Decimal"><![CDATA[1]]></parameter>
    <parameter name="pcMessage" type="System.String"><![CDATA[]]></parameter>
    <parameter name="pcNeqQtyAction" type="System.String"><![CDATA[]]></parameter>
    <parameter name="opWarningMsg" type="System.String"><![CDATA[]]></parameter>
    <parameter name="cSellingQuantityChangedMsgText" type="System.String"><![CDATA[]]></parameter>
  </parameters>
  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0" />
  </paramDataSetChanges>
</tracePacket>

<tracePacket>
  <businessObject>Erp.Proxy.BO.SalesOrderImpl</businessObject>
  <methodName>MasterUpdate</methodName>
  <appServerUri>net.tcp://pabeencon02/EpicorTest102/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>3/6/2019 09:55:05:4241767 AM</localTime>
  <threadID>1</threadID>
  <executionTime total="431" roundTrip="402" channel="0" bpm="0" other="29" />
  <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[OrderDtl]]></parameter>
    <parameter name="iCustNum" type="System.Int32"><![CDATA[1198]]></parameter>
    <parameter name="iOrderNum" type="System.Int32"><![CDATA[369299]]></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>
  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0">
      <changedValue tableName="OrderDtl" rowState="Modified" rowNum="0" colName="OrderQty"><![CDATA[15]]></changedValue>
      <changedValue tableName="OrderDtl" rowState="Modified" rowNum="0" colName="SellingQuantity"><![CDATA[15]]></changedValue>
      <changedValue tableName="OrderDtl" rowState="Modified" rowNum="0" colName="ExtPriceDtl"><![CDATA[1350.00]]></changedValue>
      <changedValue tableName="OrderDtl" rowState="Modified" rowNum="0" colName="DocExtPriceDtl"><![CDATA[1350.00]]></changedValue>
      <changedValue tableName="OrderDtl" rowState="Modified" rowNum="0" colName="InExtPriceDtl"><![CDATA[1500.00]]></changedValue>
      <changedValue tableName="OrderDtl" rowState="Modified" rowNum="0" colName="DocInExtPriceDtl"><![CDATA[1500.00]]></changedValue>
      <changedValue tableName="OrderDtl" rowState="Modified" rowNum="0" colName="DocTotalPrice"><![CDATA[1350.00]]></changedValue>
      <changedValue tableName="OrderDtl" rowState="Modified" rowNum="0" colName="ThisOrderInvtyQty"><![CDATA[15]]></changedValue>
      <changedValue tableName="OrderDtl" rowState="Modified" rowNum="0" colName="TotalPrice"><![CDATA[1350.00]]></changedValue>
      <changedValue tableName="OrderDtl" rowState="Modified" rowNum="0" colName="CurrencySwitch"><![CDATA[False]]></changedValue>
      <changedValue tableName="OrderDtl" rowState="Modified" rowNum="0" colName="RowMod"><![CDATA[U]]></changedValue>
      <changedValue tableName="TaxConnectStatus" rowState="Modified" rowNum="0" colName="ETCOffline"><![CDATA[True]]></changedValue>
      <changedValue tableName="TaxConnectStatus" rowState="Modified" rowNum="0" colName="RowMod"><![CDATA[U]]></changedValue>
    </paramDataSet>
  </paramDataSetChanges>
</tracePacket>
1 Like

That’s much better.

So you have 2 methods that you could use then.

  <businessObject>Erp.Proxy.BO.SalesOrderImpl</businessObject>
  <methodName>ChangeSellingQtyMaster</methodName>

or

  <businessObject>Erp.Proxy.BO.SalesOrderImpl</businessObject>
  <methodName>MasterUpdate</methodName>

The first one is actually when you change the quantity. The system is sending a call to get some more information. The second one is when you actually hit save.

You could do a validation on either of them. The one on change might get annoying to users as it would trigger more often, but it’s more immediate feedback.

Thanks. It makes more sense to start a BPM by doing a trace to see what BO.methods are there. I was just guessing based on BO name and method name in the drop-down. And am so used to using “update” rather than “change,” so was looking for a method with that name.

The BPM course does talk about the trace log, but only as a way to check changed values. It doesn’t say to verify you have the right method. Will incorporate this into my own training for others.

Thanks again.

Yeah, Traces really are most helpful to find out what the stock system is doing. Once you get on the right method, troubleshooting your BPM’s it’s usually easier to just put message boxes in with the data.

New, but related question, is there any way to copy a BPM from one method to another? I was able to select all and copy in the designer but when I went into design view of a BPM in another method, paste was not an option…

Not a problem on this one; I can easily re-create it, but it would save time, especially if we get more complicated ones.

you sort of can sometimes, but usually the criteria that you are setting up ends up being different, so it’s usually ends up being better/required to make it new.