相关服务中串联值属性的带有列表选择器的MDK筛选器操作

2020-08-14 17:23发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨,团队。 我正在开发一个MD...

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

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


嗨,团队。

我正在开发一个MDK应用程序,试图应用从列表选择器自动继承的某些过滤器,而该过滤器是在与可过滤对象表相关的过滤器操作中调用的过滤器页面中的。

对于该属性为直接值的列表选择器,它可以按预期工作。

例如:

FilterProperty:" COUNTRY_ID"

为OData服务/实体生成的过滤器:" $ filter = COUNTRY_ID eq'US'"

但是,当在相关的OData服务/实体中具有连接值的属性时,当前存在一种情况。

属性值示例:TAG_CONCAT ='H00002,H00035,H00435,H00878'

如果我们在列表选择器中通过以下方式设置FilterProperty:

FilterProperty:" TAG_CONCAT"

为OData生成的过滤器类似于:" $ filter =(TAG_CONCAT eq'H00035'或TAG_CONCAT eq'H00878')"

在大多数情况下,它们不会检索所需的行。

针对这种情况的解决方案(在Fiori/Web中的等效应用程序中实现)是使用Odata函数" substringof"以使条件如下:

" $ filter =(substringof('H00035',TAG_CONCAT)或substringof('H00878',TAG_CONCAT))"

我已经在列表选择器中尝试过这种方式:

FilterProperty:" substringof(,TAG_CONCAT)"

但是正在生成类似以下的过滤器:

" $ filter =(substringof(,TAG_CONCAT)eq'H00035'或substringof(,TAG_CONCAT)eq'H00878'))

并且不起作用。

我已经研究了一些地方,以尝试覆盖或更改生成的过滤器,因此我可以对其进行修复,并保留"列表选择器"功能,以及通常的"过滤器页面"功能,但没有成功。

我也尝试过在对象表透明度的查询选项中添加一些过滤器,但似乎如果它已与操作中的"可过滤"对象相关,则QueryOptions中的过滤器将被丢弃。

在这种情况下,请评论可能的选项或解决方法。

在此先感谢您的帮助。

最好的问候

爱德华多

4条回答
callcenter油条
2020-08-14 17:54

感谢Bill。

我遵循了您的建议,并且已经实现了一个带有列表选择器的页面(没有到达其的过滤器操作),并且我将带有要过滤的对象表的页面的相关clientData传递给要获取的列表选择器值 与控件的getValue()函数配合使用,并且按预期方式工作。

当前问题是当我使用列表选择器导航回"筛选器页面"时。 我想用相关控件的setValue()函数填充页面的OnLoaded事件中的列表选择器,但是到目前为止还不能正常工作(OnLoaded中的代码附带的屏幕截图)。

目前,我正在按原样传递JSON对象,并使用通过" getValue()获得的值(尝试在setValue()处设置的值附加值)

setValue()参数应该不同吗? 这样可以正常使用,并且需要控件的redraw()或其他功能吗?

我已将代码放在页面的" OnLoaded"事件中,但是我不知道是否需要在其他地方。

提前感谢您的评论。

最好的问候

Eduardo

一周热门 更多>