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

如何创建CDS,通过输入参数实现KNA1表KUNNR的LIKE前缀过滤

实现动态LIKE过滤的CDS视图方案

完全可以通过CDS输入参数实现动态的LIKE过滤,下面给你两种实用的实现方式,按需选择即可:

方式一:参数仅传入前缀,自动拼接通配符

这种方式适合用户只需输入前缀(比如"A"),视图自动补充%来匹配所有以此开头的客户编号,非常贴合你提到的"指定前缀筛选"需求。

@EndUserText.label: '带动态前缀过滤的客户视图'
define view ZCDS_CUSTOMER_PREFIX as select from kna1 {
    key kna1.kunnr as CustomerNumber,
    kna1.name1 as CustomerName,
    kna1.land1 as Country
}
with parameters p_prefix : abap.char(10) default 'A'
where kunnr like concat( :p_prefix, '%' );

关键点说明:

  • 用with parameters定义输入参数p_prefix,指定类型为abap.char(10),还可以设置默认值(比如默认查询A开头的客户)。
  • 在WHERE子句里通过concat( :p_prefix, '%' )将参数与通配符拼接,实现动态匹配所有以输入前缀开头的KUNNR。

方式二:允许参数直接带通配符(更灵活)

如果需要更灵活的匹配规则(比如不仅是前缀,还支持中间包含、后缀匹配),可以让用户直接在参数里输入带通配符的值(比如"A%", "%BERLIN", "%M%"),代码更简洁:

@EndUserText.label: '带动态LIKE过滤的客户视图(灵活匹配)'
define view ZCDS_CUSTOMER_FLEX as select from kna1 {
    key kna1.kunnr as CustomerNumber,
    kna1.name1 as CustomerName,
    kna1.land1 as Country
}
with parameters p_pattern : abap.char(20) default 'A%'
where kunnr like :p_pattern;

注意事项:

  • 这种方式需要用户了解ABAP通配符的用法(%代表任意长度字符,_代表单个字符)。
  • 输入参数的长度要足够容纳带通配符的完整匹配字符串。

调用验证

激活CDS视图后,在SE16N或其他查询工具中调用时,会弹出输入参数对话框,输入你想要的前缀或匹配模式,就能得到对应的结果。比如输入"B",就会返回所有客户编号以B开头的记录。

内容的提问来源于stack exchange,提问作者softshipper

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:10:43