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

Webi(SAP Business Objects)自定义SQL中@Prompt关联CDS字段实现多选过滤

在Webi自定义SQL中添加关联CDS字段的多选过滤器

我来帮你搞定这个问题!在Webi里用自定义SQL实现关联CDS字段的多选列表过滤器,核心是正确使用@Prompt函数并绑定CDS字段的可选值列表,下面一步步来:

核心语法要点

@Prompt函数的第三个参数是关键,用来指定值列表的来源——直接指向你的CDS视图和对应字段即可,格式为CDS视图名/字段名,Webi会自动从该CDS字段拉取所有可选值生成多选列表。

完整代码示例

假设你的CDS视图是Z_SALES_DATA,要基于其中的CUSTOMER_ID字段做多选过滤,修改后的自定义SQL如下:

SELECT
  Z_SALES_DATA::CUSTOMER_ID,
  Z_SALES_DATA::SALES_AMOUNT,
  Z_SALES_DATA::SALE_DATE
FROM Z_SALES_DATA
WHERE Z_SALES_DATA::CUSTOMER_ID IN @Prompt(
  '请选择客户ID', -- 弹窗显示的提示文本
  'A', -- 字段类型:A=字符型,N=数字型,D=日期型
  'Z_SALES_DATA/CUSTOMER_ID', -- 关联CDS视图+字段,必填项!
  MULTI, -- 开启多选模式
  CONSTRAINED -- 限制只能选择列表内的有效值,禁止手动输入
)

关键参数解释

  • 'Z_SALES_DATA/CUSTOMER_ID':这是绑定CDS字段的核心配置,Webi会自动读取该CDS字段的所有值生成可选列表
  • MULTI:必须设置此参数才能允许用户选择多个值
  • CONSTRAINED:确保用户只能选择CDS中存在的值,避免无效输入;如果需要允许手动输入自定义值,可替换为FREE
  • 字段类型需与CDS字段匹配:比如CUSTOMER_ID是字符型用'A',数字型字段则用'N'

注意事项

  • 确保你的CDS视图已正确配置到SAP BO的数据源中,Webi具备访问该CDS元数据的权限
  • 如果CDS带有命名空间,需完整带上命名空间,格式为Z_MY_NAMESPACE::Z_SALES_DATA/CUSTOMER_ID
  • 测试时运行SQL,Webi会弹出多选弹窗,里面的选项就是CDS字段中的所有值,选择完成后即可过滤查询结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:26:32