首页 > 解决方案 > Acumatica REST API 端点操作调用失败

问题描述

** 注意:任何批评 Acumatica 的 StackOverflow 问题都会被否决。

我正在尝试使 REST Web-Service-Endpoint Action 正常工作。

扩展默认端点,我添加了一个 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

在此处输入图像描述

失败并显示“取消订单按钮已禁用”。手动检查采购订单,取消订单按钮通过网站处于活动状态。

如果我将“实体” OrderNbr 更改为

SEND: {'entity':{'OrderNbr':{'value':'xxxME006802'},'OrderType':{'value':'DP'}},'parameters':{'value':null}}

这不应该匹配任何东西,我得到同样的错误。就像我的 PurchaseOrder 的“实体”格式不正确。

我会在 Acumatica 文档中查找 PurchaseOrder 的“实体”的必要格式,但我找不到任何文档。VIEW_ENDPOINT_SERVICE 文档也没有说明这一点,我认为他们应该这样做(否则,如果未定义参数,为什么还要有 API ......)

标签: restapiactionacumaticaendpoint

解决方案


可以肯定的一件事是,在处理 Acumatica Web Service 时,您还需要使用浏览器中的屏幕。

Web Service 只能做在屏幕上可以做的事情。

因此,如果您转到采购订单屏幕并查看记录,是否启用了取消订单按钮?

我在测试时注意到,对于销售订单和采购订单,相同的步骤不会启用这两个操作。至少使用安装程序提供的销售演示数据时的默认设置。

对于销售订单,该记录只需不是“暂挂”即可启用“创建发货”操作。

尽管对于采购订单,您不仅不需要“暂停”,还需要在启用“取消”按钮之前使用“批准”操作。

如果我在完成这些操作之前使用取消订单操作,我会遇到与您在问题中提到的相同的错误,但是一旦完成这些步骤,我就可以正确取消订单。

我使用的请求是遵循

  • 销售订单
.../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"}
    }
}

推荐阅读