[英]Write validation failed for table row of type 'PurchPurchaseOrderLineEntity'
我正在嘗試使用 odata 從 postman 發布采購訂單行詳細信息,但出現以下錯誤。
{
"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)\r\n at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.UpdateManager.<>c__DisplayClass10_0.<CreateEntity>b__1(ChangeOperationContext context)\r\n at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.ChangeInfo.ExecuteActionsInCompanyContext(IEnumerable`1 actionList, ChangeOperationContext operationContext)\r\n at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.ChangeInfo.TrySave(ChangeOperationContext operationContext)\r\n at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.UpdateManager.SaveChanges()\r\n at Microsoft.Dynamics.Platform.Integration.Services.OData.AxODataDelegatingHandler.<SaveChangesAsync>d__3.MoveNext()"
}
}
}
我試過檢查這些鏈接,但沒有取得突破:
下面是我的有效載荷
{
"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"
}
誰能幫我解決這個問題?
注意:采購訂單 header 沒有任何問題。
盡管問題中缺少信息,但我還是嘗試重現該問題。 我的測試設置是帶有 contoso 演示數據的 10.0.20 環境。 我使用了 DEMF 公司並創建了一個新的采購訂單,因為現有的采購訂單已經開具發票和/或公司間。
我為供應商 DE-001 創建了新的采購訂單,並且能夠使用 Postman 發送的 OData 請求在其中創建行。
在測試時,我注意到 Postman 收到的響應確實包含問題中缺少的信息日志消息。 它們要么被刪除(在這種情況下請 [編輯] 問題並添加它們),要么 D365 的版本不包含它們(在這種情況下請 [編輯] 問題以添加版本信息)。
我還注意到問題中的有效負載包含字段ItemNumber
和ProcurementProductCategoryName
。 據我所知,一個采購行只能有這兩個中的一個,但不能同時有兩個。 如果您使用其中任何一個手動創建一行,則另一個將被鎖定以供編輯。 因此,請在沒有ItemNumber
或ProcurementProductCategoryName
字段的情況下重試您的請求。
作為記錄,以下是在我的測試設置中有效的有效載荷:
具有采購類別的有效載荷
{
"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"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.