从ODATA服务前端将过滤器值作为参数传递给CDS视图

2020-08-13 23:15发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我们有一个由ODATA服务引用的...

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

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


我们有一个由ODATA服务引用的主CDS视图。 假设主CDS视图显示订单抬头信息。 主CDS与物料有关联(例如,订单可以有多种物料)。 所有这一切都很好并且有效。

要求是在物料编号上添加一个过滤器。 如果用户输入商品列表,则CDS仅应返回包含输入商品的订单。 由于主CDS不保存物料编号,因此将成为与物料CDS关联的过滤器。

我知道CDS可以具有输入参数,但是可以处理来自ODATA服务的过滤器值吗? 因此,用户可以输入过滤条件,例如{包含* 12345 *},{等于12345},{结束* 12345}或诸如{包含* 12345 *}或{等于11111}或{等于22222}等组合 等等

我看到的所有参数示例在CDS中都使用等于" ="运算符,而不使用" IN"运算符。 例如:

其中material =:in_material

我们可以使用:

其中材料IN:in_material

如果上述方法不可行,我们如何根据过滤器范围提交关联?

欢迎您提出想法和建议。

4条回答
ZJXianG
2020-08-14 00:03

嗨安德烈,

我们最初使用的是OData.publish, 随着事情变得越来越复杂,我们改为在SEGW中创建了一个引用。 因此,当前网关会自动从CDS提取数据,我们不必担心分页或聚合为您完成的所有工作。

我不确定我是否理解您的建议。 您是要手动编码将要进行数据选择的函数导入吗? 如果是这样,我们是否不会放松所有自动功能,而必须自己编写代码? 像分页和聚合一样?

还是您建议使用函数导入的另一种方式?

谢谢

一周热门 更多>