微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

InventoryID使用SOAP中断了Acumatica Bill的创建

如何解决InventoryID使用SOAP中断了Acumatica Bill的创建

程序使用SOAP在Acumatica中创建一个Bill。端点已扩展为包括InventoryID,即生成的WSDL。该程序使用扩展的端点来读取和写入所有信息。读取非库存项目的InventoryID效果很好。

使用InventoryID以外的字段填充“帐单明细”也可以正常工作

                        loBillDetails[lnCurIndex + I1] = new BillDetail
                        {
                            // InventoryID = new StringValue { Value = lcInventoryID },Branch = new StringValue { Value = lcBranch },Amount = new DecimalValue { Value = lnLineExtAmt },Extendedcost = new DecimalValue { Value = lnLineExtAmt },UnitCost = new DecimalValue { Value = 0 },Qty = new DecimalValue { Value = 0 },TransactionDescription = new StringValue { Value = lcTranDesc },UOM = new StringValue { Value = lcUOM },Account = new StringValue { Value = lcAccount },Subaccount = new StringValue { Value = lcSubAccount },Description = new StringValue { Value = lcItemDesc },};

但是,包含InventoryID会导致Bill插入失败,并显示以下错误消息。我检查了提供给InventoryID的值是否正确。

我需要在要插入的条例草案中提供其他字段吗?这里可能是什么问题?

PX.Data.PXInvalidOperationException:操作失败---> PX.Data.PXBadDictinaryException:该密钥目前无法更新。尝试先保存以前的更改。\ n在PX.Data.PXCache 1.Update(IDictionary keys,IDictionary values)\n at PX.Data.PXGraph.ExecuteUpdate(String viewName,IDictionary keys,IDictionary values,Object[] parameters)\n at PX.Data.PXGraph.copyPasteCommitChanges(String viewName,OrderedDictionary keys,OrderedDictionary vals)\n at PX.Api.SyImportProcessor.SyStep.a(Object A_0,PXFilterRow[] A_1,PXFilterRow[] A_2)\n at PX.Api.SyImportProcessor.ExportTableHelper.ExportTable()\n --- End of inner exception stack trace ---\n at PX.Api.ContractBased.soap.WebApiSoapController.Post(ISoapSystemContract systemContract,XmlReader requestReader,String serviceNamespace,String internalNamespace,MethodInfo method,Func 1 serviceFactory,IEdmModel edmModel)\ n在PX.Api.ContractBased.soap.WebApiSoapController.d__8.MoveNext()\ n--先前位置的堆栈跟踪结束 引发异常的位置--- \ n在System.Runtime.ExceptionServices.ExceptiondispatchInfo.Throw()\ n在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\ n在PX.Api.ContractBased.soap.WebApiSoapController。 d__6.MoveNext()\ n ---从上一个引发异常的位置开始的堆栈跟踪--- \ n在System.Runtime.ExceptionServices.ExceptiondispatchInfo.Throw()\ n在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (任务任务)\ n在System.Threading.Tasks.TaskHelpersExtensions.d__3`1.MoveNext()\ n ---从上一个引发异常的位置开始的堆栈跟踪--- \ n在System.Runtime.ExceptionServices。 ExceptiondispatchInfo.Throw()\ n在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\ n在System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext()\ n--从上一个堆栈结束跟踪除了的位置 离子被抛出--- \ n在System.Runtime.ExceptionServices.ExceptiondispatchInfo.Throw()\ n在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\ n在System.Web.Http.Controllers.ActionFilterResult.d__2 .MoveNext()\ n ---从上一个引发异常的位置开始的堆栈跟踪--- \ n在System.Runtime.ExceptionServices.ExceptiondispatchInfo.Throw()\ n在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\ n位于System.Web.Http.Controllers.ExceptionFilterResult.d__0.MoveNext()“ 引发异常:mscorlib.dll中的'System.ServiceModel.FaultException'

谢谢。 亚历山大

解决方法

Sergey Marenich提供了一个解决方案:从18.200.001迁移到我正在使用的端点18.200.001,因为18.200.001已经包含InventoryID。

他还发现了用于扩展端点的映射问题:我将新列映射到InventoryID-> InventoryID,而不仅仅是InventoryID。

我迁移到18.200.001,就解决了这个问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。