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

Acumatica新建/扩展端点Get请求$filter筛选BOMID报错问题

你当前的报错是因为URL格式不符合Acumatica REST API的规范,你将$filter作为URL路径的一部分传入,系统会把$filter=xxx这段内容识别为实体主键的值,匹配不到对应结构所以抛出无效操作异常。

正确的请求方案

方案1:使用$filter查询参数筛选

$filter属于OData标准查询参数,必须以?开头拼接在URL路径之后,空格需要转义为%20或者用+代替,正确的URL格式如下:

{AcumaticaBaseURL}/entity/{EndPointName}/{EndPointVersion}/{EntityName}?$filter=BOMID%20eq%20'{valueofBomID}'

你的示例调整后为:

http://localhost/AcumaticaMfg21R2/entity/BOMEP/17.200.001/BOMEntity?$filter=BOMID%20eq%20'BOM0001'

注意:如果BOMID是数值类型不需要加单引号,字符串类型必须包裹单引号。

方案2:直接通过主键查询单条记录(性能更优)

如果BOMID是你自定义端点BOMEntity的唯一主键,你可以直接把BOMID的值作为URL路径段传入,不需要用$filter,格式如下:

{AcumaticaBaseURL}/entity/{EndPointName}/{EndPointVersion}/{EntityName}/{valueofBomID}

示例:

http://localhost/AcumaticaMfg21R2/entity/BOMEP/17.200.001/BOMEntity/BOM0001

这种方式直接返回单条BOM的详情,不需要额外筛选,效率远高于$filter查询。

方案3:POST请求体传筛选条件

GET请求的请求体内容会被Acumatica的REST接口忽略,所以你之前用GET请求带请求体传BOMID的方式不会生效,需要用POST请求传入筛选条件,格式如下:

  • 请求URL:
{AcumaticaBaseURL}/entity/{EndPointName}/{EndPointVersion}/{EntityName}/$filter
  • 请求头设置Content-Type: application/json
  • 请求体内容:
{
    "BOMID": { "eq": "BOM0001" }
}

这种方式适用于筛选条件比较复杂的场景,也可以正确返回筛选后的BOM列表。

额外检查项

  • 确认你自定义端点中BOMEntity的主键字段确实是BOMID,没有拼写错误
  • 确认你的接口请求凭证(Cookie或者Bearer Token)有BOM模块的访问权限
  • Acumatica 21R2版本自定义端点发布后需要重启站点或者清除缓存才能生效

内容的提问来源于stack exchange,提问作者Manish Chhetia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:24:01