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.ProxyBase
1.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)