**注意:任何批评Acumatica的StackOverflow问题都将被否决。
我正在尝试使REST Web-Service-Endpoint Action正常工作。
在扩展默认端点的同时,我添加了一个动作CreateShipmentAction。
URL: .../17.200.001/SalesOrder/CreateShipmentAction
SEND: {'entity':{'OrderNbr':{'value':'ME050225'},'OrderType':{'value':'SO'}},'parameters':{'value':null}}
METHOD: post
这很好用
按照相同的步骤,我在购物订单中添加了CancelPurchaseOrderAction。
URL: .../17.200.001/PurchaseOrder/CancelPurchaseOrderAction
SEND: {'entity':{'OrderNbr':{'value':'ME006802'},'OrderType':{'value':'DP'}},'parameters':{'value':null}}
METHOD: post
失败,显示“取消订单按钮被禁用”。手动检查PurchaseOrder,通过网站可以激活“取消订单”按钮。
如果我将“实体” OrderNbr更改为
SEND: {'entity':{'OrderNbr':{'value':'xxxME006802'},'OrderType':{'value':'DP'}},'parameters':{'value':null}}
不应该匹配的东西,我遇到了同样的错误。就像我的PurchaseOrder的“实体”格式不正确。
我会在Acumatica文档中查找PurchaseOrder的“实体”的必要格式,但找不到任何文档。 VIEW_ENDPOINT_SERVICE文档也没有将其拼写清楚,我认为应该这样(否则,如果未定义参数,为什么要有API ...)
答案 0 :(得分:1)
可以肯定的是,在处理Acumatica Web Service时,还需要在浏览器中处理屏幕。
Web服务只能执行屏幕上可以完成的相同操作。
那么,如果您进入“采购订单”屏幕并查看记录,是否启用了“取消订单”按钮?
在测试时,我注意到对销售订单和采购订单而言,相同的步骤将不会同时启用这两种操作。至少使用默认设置时,使用安装程序随附的Sales Demo Data即可获得。
对于销售订单,只需要使记录“处于保持状态”即可,以便启用“创建货件”操作。
尽管对于采购订单,您不仅不需要处于“暂停”状态,还需要在启用“取消”按钮之前使用“批准”操作。
如果在执行这些操作之前我要使用“取消订单”操作,则会遇到与您在问题中注意到的错误相同的错误,但是一旦完成这些步骤,我就可以正确地取消订单。
我过去遵循的要求
.../entity/DefaultPlus/17.200.001/SalesOrder/CreateShipmentAction
{
"entity":
{
"OrderType":{"value":"SO"},
"OrderNbr":{"value":"SO004264"}
},
"parameters":
{
"ShipmentDate":{"value":"06/05/2019"},
"WarehouseID":{"value":"RETAIL"}
}
}
.../entity/DefaultPlus/17.200.001/PurchaseOrder/CancelPurchaseOrderAction
{
"entity":
{
"Type":{"value":"Normal"},
"OrderNbr":{"value":"PO000701"}
}
}
答案 1 :(得分:0)
此问题在Acumatica字段中不一致。
PurchaseOrder的网站URL具有
?ScreenId=PO301000&OrderType=DP&OrderNbr=ME006802
让人们认为REST Action API调用的“实体”字段为
{OrderNbr:{value:"ME006802"},OrderType:{value:"DP"}}
实际上是这样(请注意,OrderType现在只是具有不同值的Type)
{OrderNbr:{value:"ME006802"},Type:{value:"Drop Ship"}}
编程到Acumatica的REST API就像Whack-A-Mole...。随机尝试不同的事情(因为没有文档),希望它可以幸运地工作。...