Acumatica api分支不能为空

时间:2018-05-23 14:51:07

标签: rest api acumatica

分支字段存在于JSON中,但Acumatica忽略它,并说'分支不能为空。'。

api端点是/acumaticadb/entity/Default/17.200.001,我正在将JSON PUT到/ SalesOrder,尝试创建新订单。

分支字段出现在详细级别的json中。我试过' Branch'和' BranchID'在订单标题和订单详细信息级别上,仍然得到相同的错误。

我尝试在登录请求期间指定分支。订单创建过程中仍然存在相同的错误。

错误的确切文本:" PX.Data.PXException:错误:'分支'不能为空。" 堆栈跟踪信息量不大,它表示在尝试保留订单时会抛出错误。

通过网络用户界面,同一个用户可以很好地创建包含商品的订单。

这个问题几乎是/ 49039152的问题,但那里没有解决方案。

编辑:没有注意到代码没有通过,这是请求:

PUT:http://localhost/acumaticadb/entity/Default/17.200.001/SalesOrder

{
    "Details": [{
        "OrderQty": {"value": "10"},
        "BranchID": {"value": "HQ"},
        "Branch": {"value": "HQ"},
        "InventoryID": {"value": "CONBABY1"}
    }],
    "CustomerOrder": {"value": "TOYONEILLTEST"},
    "LocationID": {"value": "MAIN"},
    "CustomerID": {"value": "TOYONEILL"},
    "BranchID": {"value": "HQ"},
    "Branch": {"value": "HQ"}
}

分支截图:

Hq Branch

2 个答案:

答案 0 :(得分:0)

我花了几个小时试图解决这个问题,最终找到了解决方案。我的问题是,我用于API的用户不具有访问指定分支机构/公司所需的用户角色。这是一个非常令人误解的错误消息。我想我使用的是与您相同的“销售演示”测试数据。我参加聚会有点晚了,但我希望这对其他人有帮助。

要解决:

  1. 转到“公司”屏幕,找到公司的访问角色。
  2. 从用户屏幕将该角色添加到您的API用户角色。

答案 1 :(得分:0)

万一其他人遇到相同的错误,并且@micwallace的解决方案对您不起作用。

如果您在登录呼叫中指定了可选的branch参数,可能值得仔细检查一下您是否使用Branch ID而不是Branch Name作为值,可以在Branches屏幕上找到。

例如如果我们要查看随附的2019R1 Sales Demo屏幕截图,并希望使用 Revision Two Products 公司的 Products Retail 分支,则登录时使用的正确值呼叫将为 PRODRETAIL

{
    "name" : "{{api_username}}",
    "password" : "{{api_password}}",
    "company" : "{{tenant_login_name}}",
    "branch" : "PRODRETAIL",
    "locale" : "{{locale_code}}"
}