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
相关产品推荐
相关产品推荐

