【发布时间】:2019-03-25 04:55:25
【问题描述】:
当我调用 Acumatica REST API 更新采购订单收据时,详细信息行上的采购订单编号字段未更新。我只是对 Default/17.200.001 端点进行 PUT,包括一个详细信息行。 PUT 成功,但响应在详细信息行上返回空的 PONbr 和 POType,并且这些字段未更新。这些字段是否出于某种原因是只读的?我该如何解决或覆盖它以便更新这些 PO 字段?
更新 #1 3/22: 根据下面的响应,我尝试将这些值放入插入而不是更新中,但现在我得到一个不同的错误:“PO 错误:数量必须大于 0”和“PurchaseReceipt.Details[0].ReceiptQty:Quantity必须大于 0”。但是,ReceiptQty 存在并且大于 0。
更新 #2 3/22: 您应该能够通过非常简单的步骤复制它:
- 使用 Vendor 创建 PO,默认为 Location。
- 使用 InventoryID 添加订单行,默认行类型和仓库
- 输入订单数量
- 保存采购订单
- 在 Postman 中,PUT 类似于我在下面为采购订单收据提供的 JSON,指定详细信息行,其中包含引用的库存 ID、采购订单编号、采购订单类型、行编号、采购订单行编号、接收数量、仓库李>
- 响应是错误“PO 错误:数量必须大于 0”、“PurchaseReceipt.Details[0].ReceiptQty: 数量必须大于 0”
这是插入的示例 json:
{
"Date": {
"value": "2019-03-22T00:00:00-04:00"
},
"Details": [
{
"InventoryID": {
"value": "0010006"
},
"LineNbr": {
"value": 1
},
"Location": {
"value": "01P"
},
"POLineNbr": {
"value": 1
},
"POOrderNbr": {
"value": "005554"
},
"POOrderType": {
"value": "RO"
},
"ReceiptQty": {
"value": 5
},
"Warehouse": {
"value": "002"
}
}
],
"PostPeriod": {
"value": "032019"
},
"VendorID": {
"value": "CVS TRADE"
}
}
更新 #3 3/24: 为了尝试绕过 Acumatica 强制 ReceiptQty 为 0,我尝试添加一个 POReceiptLine_ReceiptQty_CacheAttached 处理程序,没有 PXDBQuantity、PXDefault 和 PXFormula 属性,以防止它被清零。这给了我一个 SQL 错误:“'INTranInTransit_INTransitLineStatus' 附近的语法不正确”——不管这意味着什么。
【问题讨论】:
标签: acumatica