You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Acumatica API创建销售订单提示“Branch不能为空”问题求助

解决Acumatica API创建销售订单时的“Branch cannot be empty”错误

我之前也踩过Acumatica API分支字段的坑,结合你的情况,给你几个靠谱的排查和修复方向:

1. 确认分支字段使用内部数值ID而非显示代码

Acumatica的API对关联字段(比如分支)通常要求使用内部数值ID,而不是你看到的HQ这类显示代码。你可以通过Web UI获取这个ID:

  • 打开分支维护页面(对应你截图里的分支)
  • 查看页面URL中的BranchID参数,或者启用系统的“显示内部ID”设置后直接查看字段值

修改你的JSON,把BranchID的value换成对应的数值ID,同时可以去掉重复的Branch字段(API只需要BranchID就能关联分支),示例如下:

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

2. 检查登录请求的分支上下文是否正确绑定

虽然你提到登录时指定了分支,但有时候会话的分支上下文可能没正确生效。尝试在登录请求的branch参数里也使用分支的内部数值ID,而不是HQ:

{
  "name": "你的用户名",
  "password": "你的密码",
  "branch": 1
}

登录完成后再发送销售订单的请求,确保会话分支和订单分支完全匹配。

3. 尝试切换请求方法为POST

你当前使用的是PUT请求,而PUT通常用于更新现有订单,创建新订单更适合用POST请求。把请求方法改成POST,保持端点不变,看看是否能绕过这个分支验证的问题。

4. 排查系统默认分支配置

登录Web UI检查以下配置:

  • 当前用户的默认分支设置(用户维护页面)
  • 你使用的销售订单类型的默认分支配置(订单类型维护页面)
    有时候API请求没有正确触发默认值逻辑,会导致分支字段被判定为空,确保这些配置和你要创建的订单分支一致。

5. 核对API版本的字段规则

你使用的是17.200.001版本的SalesOrder端点,这个版本的Acumatica API对分支字段的必填规则可能有特定要求。可以查看Acumatica官方文档中该版本的实体字段说明,确认BranchID的字段类型和提交要求。

内容的提问来源于stack exchange,提问作者John Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:48:44