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

关于为列表报表模板所消费的CDS消费视图传递多值输入参数的技术问询

为列表报表模板所消费的CDS消费视图传递多值输入参数的技术问询

嘿,我来帮你搞定这个问题!针对用Fiori列表报表模板消费CDS消费视图时传递多值输入参数的需求,这里有几个实用的方案,完全适配你的场景:

  • 直接用CDS支持多值的输入参数
    首先在你的CDS消费视图里定义允许多值的输入参数,语法示例如下:

    @EndUserText.label: '需要传递的多值参数'
    parameters p_myparam : abap.char(20) multiple allowed;
    

    接着在列表报表模板的配置过程中,把这个参数绑定到对应的筛选控件上。这样前端用户就能直接多选值,这些值会自动传递给CDS视图,不需要额外的ABAP程序介入。

  • 利用列表报表自带的筛选器
    要是你不想在CDS里定义输入参数,也可以直接把需要筛选的字段暴露在CDS视图中。然后在列表报表模板的配置里,将这些字段设置为可筛选状态。前端用户通过报表的筛选面板选择多个值后,系统会自动把这些筛选条件转化为CDS的过滤逻辑,实现多值筛选的效果。

  • 自定义OData扩展(应对复杂场景)
    如果你的需求涉及更复杂的多值处理逻辑(比如动态校验、值映射),可以基于CDS生成OData服务后,在ABAP侧扩展OData的运行时逻辑。比如重写/IWBEP/IF_MGW_APPL_SRV_RUNTIME~GET_ENTITYSET方法,解析前端传递的多值筛选条件,再转化为合适的选择选项传递给CDS视图。

另外你提到的用ABAP程序调用CDS传选择选项,那是后端直接调用CDS的场景,和列表报表通过OData服务调用的场景不太一样,上面的几个方案都是专门适配列表报表模板的,更贴合你的需求。

备注:内容来源于stack exchange,提问作者Ardit

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 08:48:07