类型为"采购订单行实体"的表行的写入验证失败



我试图使用odata从邮差发布采购订单行详细信息,我得到以下错误。

{
"error": {
"code": "",
"message": "An error has occurred.",
"innererror": {
"message": "Write validation failed for table row of type 'PurchPurchaseOrderLineEntity'. Infolog: .",
"type": "Microsoft.Dynamics.Platform.Integration.Services.OData.AxODataValidateWriteException",
"stacktrace": "   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.UpdateProcessor.CreateEntity_Save(ChangeOperationContext context, ChangeInfo changeInfo)rn   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.UpdateManager.<>c__DisplayClass10_0.<CreateEntity>b__1(ChangeOperationContext context)rn   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.ChangeInfo.ExecuteActionsInCompanyContext(IEnumerable`1 actionList, ChangeOperationContext operationContext)rn   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.ChangeInfo.TrySave(ChangeOperationContext operationContext)rn   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.UpdateManager.SaveChanges()rn   at Microsoft.Dynamics.Platform.Integration.Services.OData.AxODataDelegatingHandler.<SaveChangesAsync>d__3.MoveNext()"
}
}

}

我试着检查这些链接,但我没有得到突破:

  • https://powerusers.microsoft.com/t5/connecting - - data/error创造秩序——线的动力学- 365 - operations/td p/11927
  • https://community.dynamics.com/365/financeandoperations/f/dynamics - 365 -金融-和-操作- forum/378486/error同时提交- po -从外部-系统- odata d365 - f - o

下面是我的有效载荷

{      
"dataAreaId": "XXXX",
"LineNumber": 1,
"PurchaseOrderNumber": "XXXX-PO-000009",
"ReceivingSiteId": "1",
"LineDescription": "XXXXXXX XXXX XXXX",
"ItemNumber": "SKU0000012530",
"DIOTOperationType": "Blank",
"LineAmount": 9687.19,
"PurchasePriceQuantity": 1,
"PurchasePrice": 9687.19,
"PurchaseUnitSymbol": "EA",
"OrderedPurchaseQuantity": 1,
"DeliveryAddressName": "XXXXX XXXXX XXXX",
"ProcurementProductCategoryName": "XXXXXX XXXXX XXXX",
"ReceivingWarehouseId": "TG",
"VendorInvoiceMatchingPolicy": "ThreeWayMatch",
"RequestedDeliveryDate": "2021-09-03T12:00:00Z"
}

谁能帮我一下?NB:采购订单标题工作正常,没有任何问题。

尽管问题中缺少信息,但我试图重现该问题。我的测试设置是一个10.0.20的环境,带有contoso演示数据。我使用了DEMF公司,并创建了一个新的采购订单,因为现有的订单要么已经开发票了,要么是公司间的。

我为供应商DE-001创建了新的采购订单,并且能够使用Postman发送的OData请求在其中创建行。

在测试时,我注意到Postman收到的响应确实包含问题中缺少的infolog消息。要么它们被删除了(在这种情况下,请[编辑]问题并添加它们),要么D365版本不包括它们(在这种情况下,请[编辑]问题以添加版本信息)。

我还注意到问题中的有效载荷包含字段ItemNumberProcurementProductCategoryName。据我所知,一条购买线只能有这两者中的一种,但不能同时有这两种。如果您用其中任何一个手动创建一行,则另一个将被锁定以进行编辑。所以请在没有ItemNumberProcurementProductCategoryName字段的情况下重试您的请求。

为了记录,以下是在我的测试设置中工作的有效负载:

带有采购类别的有效载荷

{      
"dataAreaId": "DEMF",
"LineNumber": 1,
"PurchaseOrderNumber": "000011",
"ReceivingSiteId": "1",
"LineDescription": "XXXXXXX XXXX XXXX",
"ProcurementProductCategoryName": "PAYROLL",
"DIOTOperationType": "Blank",
"LineAmount": 47.11,
"PurchasePriceQuantity": 1,
"PurchasePrice": 47.11,
"PurchaseUnitSymbol": "EA",
"OrderedPurchaseQuantity": 1,
"DeliveryAddressName": "XXXXX XXXXX XXXX",
"ReceivingWarehouseId": "11",
"VendorInvoiceMatchingPolicy": "ThreeWayMatch",
"RequestedDeliveryDate": "2021-09-03T12:00:00Z"
}

载货货物编号

{      
"dataAreaId": "DEMF",
"LineNumber": 1,
"PurchaseOrderNumber": "000009",
"ReceivingSiteId": "1",
"LineDescription": "XXXXXXX XXXX XXXX",
"ItemNumber": "D0001",
"DIOTOperationType": "Blank",
"LineAmount": 47.11,
"PurchasePriceQuantity": 1,
"PurchasePrice": 47.11,
"PurchaseUnitSymbol": "EA",
"OrderedPurchaseQuantity": 1,
"DeliveryAddressName": "XXXXX XXXXX XXXX",
"ReceivingWarehouseId": "11",
"VendorInvoiceMatchingPolicy": "ThreeWayMatch",
"RequestedDeliveryDate": "2021-09-03T12:00:00Z"
}

最新更新