axapta - 'PurchPurchaseOrderLineEntity' 类型的表行的写入验证失败
问题描述
我正在尝试使用 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)\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()"
}
}
}
我试过检查这些链接,但我没有取得突破:
- https://powerusers.microsoft.com/t5/Connecting-To-Data/Error-creating-order-line-in-Dynamics-365-for-Operations/td-p/11927
- https://community.dynamics.com/365/financeandoperations/f/dynamics-365-for-finance-and-operations-forum/378486/error-while-submitting-po-from-external-system-odata-d365-佛
下面是我的有效载荷
{
"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"
}
任何人都可以帮助我吗?
注意:采购订单标题正常工作。
解决方案
尽管问题中缺少信息,但我试图重现该问题。我的测试设置是带有 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"
}
推荐阅读
- azure-data-factory - 如何重命名 ADF 中的文件名?
- nodes - networkx 算法中是否有一个函数可以返回我指定的某些节点周围的集团/集群/组件?
- c++ - 为什么这个核心转储错误发生在我的课堂上?我已经包含了复制构造函数、复制赋值和析构函数
- gis - 在 NetLogo 中创建网络后隐藏道路 shapefile
- c# - 如何将 C# 中多个表的多个响应设置为单个模型,以便我可以使用 Angular js 'ng-repeat' 获取 html 表?
- javascript - Angular Split() 和 innerHTML
- arrays - 如何使用 Golang 在二维数组中输入?
- javascript - 如何使用javascript将表格中单元格的值设置为文本输入onclick的值?
- docker - 从 Docker Swarm 中其他节点上的服务访问容器
- python - 如何确保 Numeric flask wtforms SelectField 下拉列表中的选定数字多于另一个选择?