BPM That fires when an order is deleted

Since the stack trace says the Delete button calls the Update method, I would have expected this to work on Update Post Processing:

if (ttOrderHed != null)
{
	foreach (var orderHedRow in (from r in ttOrderHed where (r.Company == Session.CompanyID && r.RowMod == "D") select r))
	{
		this.PublishInfoMessage("Deleted", Ice.Common.BusinessObjectMessageType.Information, Ice.Bpm.InfoMessageDisplayMode.Individual, "", "");
	}
}

But according to the Trace Log, there are no rows in ttOrderHed at all. I’m not sure how to capture the Delete event. The Stack Trace looks like this:

<tracePacket>
  <businessObject>Erp.Proxy.BO.SalesOrderImpl</businessObject>
  <methodName>Update</methodName>
  <parameters>
    <parameter name="ds" type="Erp.BO.SalesOrderDataSet">
      <SalesOrderDataSet xmlns="http://www.epicor.com/Ice/300/BO/SalesOrder/SalesOrder">
        <TaxConnectStatus>
          <Company>US</Company>
          <SysRowID>00000000-0000-0000-0000-000000000000</SysRowID>
          <RowMod>U</RowMod>
        </TaxConnectStatus>
      </SalesOrderDataSet>
    </parameter>
  </parameters>
  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0">
      <deletedRow tableName="OrderHed" rowState="Deleted" rowNum="0" />
      <deletedRow tableName="OrderRepComm" rowState="Deleted" rowNum="0" />
    </paramDataSet>
  </paramDataSetChanges>
</tracePacket>

Have you tried using a data directive to look at the condition to “There is at least one deleted row in the specified table”?


Might give you a better place to start

3 Likes

Good call Aaron, thanks, that works. I keep forgetting about Data Directives and doing everything in Method Directives.

1 Like