o数据服务实体集过滤

2020-09-04 20:36发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我在后端开发系统中构建了一个oData服务,并且实现了GET_ENTITYSET方法,该方法仅选择整个表。 我正在通过单独的SAP Gateway Server调用服务。 我希望能够在URL调用中过滤此数据。 当我在浏览器中调用该服务时,我得到了预期的整个结果表。 当我添加过滤器参数时,我仍会获得所有结果,这并不适用过滤器。 关于这是为什么的任何想法? 以下是更多详细信息:

实体集" DriversSet":

实体类型"驱动程序":

GET_ENTITYSET方法:

来自网关服务器的请求(没有过滤器,成功执行,按预期返回):

来自网关服务器的请求(添加的过滤器,成功执行,但实际上并未过滤任何数据,再次返回完整结果):

感谢您的帮助,

欧文

EntitySets.PNG (18.0 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我在后端开发系统中构建了一个oData服务,并且实现了GET_ENTITYSET方法,该方法仅选择整个表。 我正在通过单独的SAP Gateway Server调用服务。 我希望能够在URL调用中过滤此数据。 当我在浏览器中调用该服务时,我得到了预期的整个结果表。 当我添加过滤器参数时,我仍会获得所有结果,这并不适用过滤器。 关于这是为什么的任何想法? 以下是更多详细信息:

实体集" DriversSet":

实体类型"驱动程序":

GET_ENTITYSET方法:

来自网关服务器的请求(没有过滤器,成功执行,按预期返回):

来自网关服务器的请求(添加的过滤器,成功执行,但实际上并未过滤任何数据,再次返回完整结果):

感谢您的帮助,

欧文

EntitySets.PNG (18.0 kB)
付费偷看设置
发送
4条回答
黑丝骑士
1楼 · 2020-09-04 20:48.采纳回答

Gateway Framework不会为您执行任何过滤器。

必须在数据提供程序中显式完成该实现。 您需要使用方法GET_ENTITYSET中IT_FILTER_SELECT_OPTIONS可用的值来缩小结果的范围。

从逻辑上讲,从网关层进行默认实现不是一个好主意,因为

您总是从数据库中提取额外的数据,这些数据最终会被网关过滤掉。

与其在框架级别执行操作,不如在SELECT语句或BAPI上选择数据的地方更有效地完成操作。

您可以参考如何使用基于代码的实现为OData服务开发查询选项, 一些示例

小灯塔
2楼-- · 2020-09-04 20:50

非常感谢你们。 我还没有找到该文章,其他所有文章都未提及后端过滤oData服务的编码,我相信他们认为这部分已经完成。 我将先回过头来实现这一部分。

再次感谢

Owen

哎,真难
3楼-- · 2020-09-04 20:49

你好Owen,

这太怀疑了,假设您正在使用BAPI映射用于读取和查询操作...。能否向我们展示

如果要成为您,我首先将检查BAPI在se37 tcode中是否工作正常并运行并对其进行测试。

如果是,然后清除缓存 并再次从Gateway客户端进行检查。

通常清除缓存帮助并且可以运行很多次。

希望这会有所帮助。

Regs,

PG

小c菟菟
4楼-- · 2020-09-04 20:44

嗨,欧文斯,我也遇到了类似情况。 我在get实体集中实现了这个简单的代码。 我正在访问一个表,并希望可能使用两个过滤器来替代检索数据。 它为我工作。 希望代码清楚并且有帮助。

干杯,拉斐尔

一周热门 更多>