使用空键字段查询 OData v2 时出现“404 - 未找到资源”
"404 - Resource not found" when query OData v2 with empty key field
我有一个通过网关公开并托管在 APIM 上的 SAP CDS 视图。
此 CDS 使用 @ObjectModel 注释启用了 CRUD 操作。
根据业务流程,CDS (SAP table) 中的一个关键字段可以为空,但是当我尝试通过 APIM 服务查询此完整密钥时(空 属性) 我收到 404 - 找不到资源:
同一查询在 SAP Gateway 中运行良好:
我应该怎么做才能让 APIM 了解此关键字段可以接收空(或 null?)值?
从APIM服务和网关查询中看到这个很有趣,给定相同的查询参数,结果是不同的,对我的唯一解释是ABAP端有一个转换,这导致没有结果可以加载。当您使用 APIM 客户端时,ABAP 尝试查询数据时,您能否在 ABAP 端启用网关跟踪以检查确切的请求?使用事务 /IWNFD/TRACES 在 ABAP 端查看用户的跟踪。
此致,
德里克
感谢您的回答!
我们发现这可能是 APIM 映射问题,因为当我们在路径 (charg='') 上设置空键时,我们甚至没有到达 SAP 网关就收到了 404:
但是当我们用空白/space (charg=' ') 设置相同的参数时,它工作正常并且在 S4 table:
上找到条目
我怎么知道它没有达到 S4?
首先,因为跟踪没有捕捉到任何东西,其次,因为来自 S4 的 404 消息是不同的:
谢谢大家!
我有一个通过网关公开并托管在 APIM 上的 SAP CDS 视图。 此 CDS 使用 @ObjectModel 注释启用了 CRUD 操作。
根据业务流程,CDS (SAP table) 中的一个关键字段可以为空,但是当我尝试通过 APIM 服务查询此完整密钥时(空 属性) 我收到 404 - 找不到资源:
同一查询在 SAP Gateway 中运行良好:
我应该怎么做才能让 APIM 了解此关键字段可以接收空(或 null?)值?
从APIM服务和网关查询中看到这个很有趣,给定相同的查询参数,结果是不同的,对我的唯一解释是ABAP端有一个转换,这导致没有结果可以加载。当您使用 APIM 客户端时,ABAP 尝试查询数据时,您能否在 ABAP 端启用网关跟踪以检查确切的请求?使用事务 /IWNFD/TRACES 在 ABAP 端查看用户的跟踪。
此致, 德里克
感谢您的回答!
我们发现这可能是 APIM 映射问题,因为当我们在路径 (charg='') 上设置空键时,我们甚至没有到达 SAP 网关就收到了 404:
但是当我们用空白/space (charg=' ') 设置相同的参数时,它工作正常并且在 S4 table:
上找到条目我怎么知道它没有达到 S4? 首先,因为跟踪没有捕捉到任何东西,其次,因为来自 S4 的 404 消息是不同的:
谢谢大家!