The table ttOrderDtl has more than one record Program: Epicor.Customization.dll

Hey,

When I create an order from the quote create order wizard, I’m getting the above error if there is more than one record in the order detail table.

It’s happening after the last order detail line has been created. I’ve added a post process directive on Quote.CreateOrder after all the other directives to throw an exception after everything’s done. It hits this exception before the “more than one record” exception.

The wizard window does not close, and the quote does not show as closed until I refresh the quote. But the order lines have all been created.

The error message (at bottom) mentions the Epicor.Customization.dll. There is no customization on the wizard form and running no customization on the quote form makes no difference.

I’m guessing the wizard form is cleaning up after the quote creation and runs into the error before it can finish. Maybe?

I’ve turned off all the BPMs on quote and sales order processes and tested.

This is happening on Test and Pilot, but not production. I can’t see anything obviously different in Production.

In the trace, the CreateOrder method shows the three quote lines with RowMod = “U” but the trace ends after:

  <paramDataSetChanges>
    <paramDataSet name="ds" useDataSetNbr="0">
      <changedValue tableName="QuoteHed" rowState="Modified" rowNum="0" colName="RowMod"><![CDATA[U]]></changedValue>
      <changedValue tableName="QuoteHed" rowState="Modified" rowNum="0" colName="UD_SysRevID"><![CDATA[System.Byte[]]]></changedValue>
      <changedValue tableName="QuoteDtl" rowState="Modified" rowNum="0" colName="RowMod"><![CDATA[U]]></changedValue>
      <changedValue tableName="QuoteDtl" rowState="Modified" rowNum="0" colName="UD_SysRevID"><![CDATA[System.Byte[]]]></changedValue>
      <changedValue tableName="QuoteDtl" rowState="Modified" rowNum="1" colName="RowMod"><![CDATA[U]]></changedValue>
      <changedValue tableName="QuoteDtl" rowState="Modified" rowNum="1" colName="UD_SysRevID"><![CDATA[System.Byte[]]]></changedValue>
      <changedValue tableName="QuoteDtl" rowState="Modified" rowNum="2" colName="RowMod"><![CDATA[U]]></changedValue>
      <changedValue tableName="QuoteDtl" rowState="Modified" rowNum="2" colName="UD_SysRevID"><![CDATA[System.Byte[]]]></changedValue>
    </paramDataSet>
  </paramDataSetChanges><
</tracePacket>

Any ideas?

Thanks,

Joe

Error detail:

Business Layer Exception

The table ttOrderDtl has more than one record

Exception caught in: Epicor.ServiceModel

Error Detail

Correlation ID: 4c2a75c9-6d15-493e-a077-1bbea4fffe6a
Description: The table ttOrderDtl has more than one record
Program: Epicor.Customization.dll
Method: GetSingleRow
Line Number: 68
Column Number: 17
Table: ttOrderDtl

Client Stack Trace

at Ice.Cloud.ProxyBase1.CallWithCommunicationFailureRetry(String methodName, ProxyValuesIn valuesIn, ProxyValuesOut valuesOut, RestRpcValueSerializer serializer) at Ice.Cloud.ProxyBase1.CallWithMultistepBpmHandling(String methodName, ProxyValuesIn valuesIn, ProxyValuesOut valuesOut, Boolean useSparseCopy)
at Ice.Cloud.ProxyBase`1.Call(String methodName, ProxyValuesIn valuesIn, ProxyValuesOut valuesOut, Boolean useSparseCopy)
at Erp.Proxy.BO.QuoteImpl.CreateOrder(QuoteDataSet ds, Int32& orderNum, String& warningMessage)
at Erp.Adapters.QuoteAdapter.CreateOrder(Int32& orderNum, String& warningMessage)

Any personalizations on it?

No, just the customization on the quote entry form. And running in “base only” gets the same result. No customization or personalization on the wizard form.

There are data directives on OrderDtl, but I can add directives on the in transaction and standard sides that hit before the multiple record exception.

This is a client who upgraded from E9, and the first time I’ve worked on it. Just trying not to migrate a problem to the production DB.

Thanks,

Joe

Here’s an update, but no answer yet.

I also get the same “more than one record” message when I do something like:

o Change the Need By Date on a sales order with multiple lines/releases and flow the changes down to lines and releases.
o Create jobs with the Order Job Wizard on a sales order with multiple lines/releases.
o Edit multiple order headers in an updatable dashboard with multiple the dirty rows checkbox marked on the BAQ

But this is only on the test system. Production seems to be working okay.

Is there maybe a global setting somewhere that controls multiple dirty rows?

Thanks,

Joe