Saturday, November 24, 2012

Error Cannot create a record in Purchase orders in axapta 2012

If you are facing this troubleshooting in ax 2012

You may face  the below error while creating new Purchase order in AX 2012.

If This error is coming in only one company and you are not able to create PO in same company.

Cannot create a record in Purchase orders (PurchTable). Purchase order: COM-0000XX, COM-00XXXX.

The record already exists.

 Microsoft.Dynamics.Ax.Xpp.DuplicateKeyException: Exception of type 'Microsoft.Dynamics.Ax.Xpp.DuplicateKeyException' was thrown.  
 at Microsoft.Dynamics.Ax.MSIL.Interop.throwException(Int32 ExceptionValue)  
 at Microsoft.Dynamics.Ax.MSIL.cqlCursorIL.insert(IntPtr table)  
 at Microsoft.Dynamics.Ax.Xpp.Common.doInsert()  
 at Dynamics.Ax.Application.PurchTableType.Insert(Boolean _interCompanySilent, Date _accountingDate, Boolean , Boolean ) in PurchTableType.insert.xpp:line 21  
 at Dynamics.Ax.Application.PurchTable.Insert(Boolean _interCompanySilent, Date _accountingDate, Boolean , Boolean ) in PurchTable.insert.xpp:line 7  
 at Dynamics.Ax.Application.PurchTable.@Insert(Boolean _interCompanySilent, Boolean )  
 at Dynamics.Ax.Application.PurchTable.Insert(Boolean _interCompanySilent)  
 at Dynamics.Ax.Application.PurchCreateOrderForm.writeOnServer(Object[] _params) in PurchCreateOrderForm.writeOnServer.xpp:line 25  
 at PurchCreateOrderForm::writeOnServer(Object[] )  
 at Microsoft.Dynamics.Ax.Xpp.ReflectionCallHelper.MakeStaticCall(Type type, String MethodName, Object[] parameters)  
 at Dynamics.Ax.Application.SysDictClass.invokeStaticMethod(Object[] _params) in SysDictClass.invokeStaticMethod.xpp:line 26  
 at SysDictClass::invokeStaticMethod(Object[] )  
 at Microsoft.Dynamics.Ax.Xpp.ReflectionCallHelper.MakeStaticCall(Type type, String MethodName, Object[] parameters)  
 at Microsoft.Dynamics.Ax.Xpp.PredefinedFunctions.runAsInvoke(String className, String staticMethodName, Object[] parms, Object[]& exportInfolog)  


1. Try changed number sequence format and also try another code to create PO check whether new code working or not. Check There isn't any duplicate record in tables.

2. It looks to me as a duplicate record error in PurchTable.
You do not specify if the application you are working with has got any code customizations.
One thing that could be wrong is that some code customization is doing something wrong.
Also you write
that there are no duplicates in the table.
How about a purchTable record WITH NO (blank) PurchId ?
If such a record is present delete that, and then attempt to find the source of the record being created with no primary key value (PurchId).

3.Your need to examine the customizations in more detail. Unless the web services you mention are directly connected to the process of manually creating a PO as a user I do not think the error has anything to do with web services.
But obviously the error occurs when CIL-code is running so it is something that happens server side.