Acumatica 无法使用Rest API为订单创建付款

Acumatica 无法使用Rest API为订单创建付款,acumatica,Acumatica,在尝试在付款和应用程序屏幕上创建付款时,遇到以下问题 “exceptionMessage”:“PX.Data.PXRowPersistingException:错误:'OrigDocAmt'不能为空。\r\n在PX.Data.PXDefaultAttribute.RowPersisting(PXCache发送器,PXRowPersistingEventArgs e)处\r\n在PX.Data.PXCache.OnRowPersistinging(对象项,PXDBOperation操作)\r\n在

在尝试在付款和应用程序屏幕上创建付款时,遇到以下问题

“exceptionMessage”:“PX.Data.PXRowPersistingException:错误:'OrigDocAmt'不能为空。\r\n在PX.Data.PXDefaultAttribute.RowPersisting(PXCache发送器,PXRowPersistingEventArgs e)处\r\n在PX.Data.PXCache.OnRowPersistinging(对象项,PXDBOperation操作)\r\n在PX.Data.PXCache
1.PersisterInserted(对象行,布尔旁路侦听器)\r\n位于PX.Data.PXCache
1.Persist(PXDBOperation操作)\r\n位于PX.Data.PXGraph.Persist(类型cacheType,PXDBOperation操作)\r\n位于PX.Data.PXGraph.Persist()\r\n位于PX.Objects.AR.arpaymentry.Persist()在C:\Bld\AC-FULL2018R24-JOB1\sources\WebSites\Pure\PX.Objects\AR\ARPaymentEntry.cs中:PX.Data.PXSave
1.d_uuu2.MoveNext()\r\n在PX.Data.PXAction
1.d_u32.MoveNext()\r\n在PX.Data.PX.PXAction`1.d_u32.MoveNext()\r\n在PX.Api.syimportprocep.systop.SyStep.a(Object a 0,filterrou[]\r\n在PX.Api.SyImportProcessor.ExportTableHelper.ExportTable()\n付款.现金帐户:“现金帐户”不能为空。\n付款.客户ID:错误:“客户”不能为空。\n付款.付款方法:“付款方法”不能为空。“


}

问题是REST API区分大小写,因此需要使用小写的“value”关键字:

顺便说一句,请注意,从Acumatica ERP的2019r1版本开始,您可以通过一次电话发送带付款的销售订单:

Put: {{sitename}}/entity/Default/18.200.001/SalesOrder?$select=OrderNbr,CashAccount
{
"CashAccount": {
    "value": "10200"
},
"CustomerID": {
    "value": "ABARTENDE"
},
"Details": [
    {
        "BranchID": {
            "value": "HQ"
        },"InventoryID": {
            "value": "AAMACHINE"
        },
        "OrderQty": {
            "value": 1
        },
    "UnitPrice": {
            "value": 269.85
        },
    "WharehouseID": {
            "value": "WHOLESALE"
        },
    "ManualPrice": {
            "value": true
            }
    }
],
"OrderType": {
    "value": "SO"
},
"PaymentMethod": {
    "value": "CHECK"
},
  "ExternalRef": {
    "value": "9593"
},
"Payments": [
    {
        "PaymentRef": {
            "value": "SOpay123"
        },
        "AppliedToOrder": {
            "value": 269.85
        },
        "CashAccount": {
            "value": "10300"
        },
        "PaymentMethod": {
            "value": "CHECK"
        }
    }
]
}

我已经通过dotnet代码尝试了基于契约的api,它工作得很好。
{
"Type" : { "value":"Payment" },
"CustomerID" : { "value":"ABARTENDE"},
"PaymentMethod" : { "value":"CHECK"},
"PaymentRef" : { "value": "123456789" },
"PaymentAmount" : { "value": "250" },
"Branch" : {"value":"PRODWHOLE"} 
}
Put: {{sitename}}/entity/Default/18.200.001/SalesOrder?$select=OrderNbr,CashAccount
{
"CashAccount": {
    "value": "10200"
},
"CustomerID": {
    "value": "ABARTENDE"
},
"Details": [
    {
        "BranchID": {
            "value": "HQ"
        },"InventoryID": {
            "value": "AAMACHINE"
        },
        "OrderQty": {
            "value": 1
        },
    "UnitPrice": {
            "value": 269.85
        },
    "WharehouseID": {
            "value": "WHOLESALE"
        },
    "ManualPrice": {
            "value": true
            }
    }
],
"OrderType": {
    "value": "SO"
},
"PaymentMethod": {
    "value": "CHECK"
},
  "ExternalRef": {
    "value": "9593"
},
"Payments": [
    {
        "PaymentRef": {
            "value": "SOpay123"
        },
        "AppliedToOrder": {
            "value": 269.85
        },
        "CashAccount": {
            "value": "10300"
        },
        "PaymentMethod": {
            "value": "CHECK"
        }
    }
]
}