View ABAP CDS视图中的可选参数?

View ABAP CDS视图中的可选参数?,view,cds,View,Cds,我正在尝试创建一个带有可选参数的CD消费视图。但目前不支持可选参数 是否有一种变通方法可以根据输入参数选择执行/使用哪些where子句?目前,以下是唯一可以作为可选参数使用的参数 p_date : sydatum @<Environment.systemField:#SYSTEM_DATE , p_language : spras @<Environment.systemField:#SYSTEM_LANGUAGE p_日期:sydatum @ 您是否检查了消费.defaul

我正在尝试创建一个带有可选参数的CD消费视图。但目前不支持可选参数


是否有一种变通方法可以根据输入参数选择执行/使用哪些where子句?

目前,以下是唯一可以作为可选参数使用的参数

p_date : sydatum
@<Environment.systemField:#SYSTEM_DATE 
, p_language : spras 
@<Environment.systemField:#SYSTEM_LANGUAGE 
p_日期:sydatum

@ 您是否检查了消费.defaultValue注释
请看一看

我刚才给出了比Dzhengo提出的更完整的答案。 您可以对某些参数使用,这些参数可以由ABAP环境值隐式填充。注释可以在参数之前或之后通过关键字
@Environment.systemField
指定,并应在冒号后面跟随env字段。以下是可能的环境领域列表:

  • #客户:
    西曼德
  • #系统日期:
    sy基准
  • #系统时间:
    西乌泽特
  • #系统语言:
    西兰
  • #用户:
    sy uname
  • 定义视图的示例代码:

    @AbapCatalog.sqlViewName: 'ZVW_MARA' 
    @AccessControl.authorizationCheck: #NOT_REQUIRED 
    define view zvw_mara
      with parameters  
        p_matnr : matnr, 
        @Environment.systemField : #SYSTEM_DATE 
        p_datum : syst_datum, 
        p_uname : syst_uname @<Environment.systemField : #USER 
      as select from 
        mara
        { 
          key mara.matnr,  
              mara.ernam, 
              mara.ersda 
        } 
        where 
            matnr = :p_matnr 
        and ernam = :p_uname
        and ersda = :p_datum; 
    
    @AbapCatalog.sqlViewName:'ZVW_MARA'
    @AccessControl.authorizationCheck:#不需要
    定义视图zvw_mara
    带参数
    p_材料:材料,
    @Environment.systemField:#系统_日期
    p_基准:系统基准,
    
    p_uname:syst_uname@这些不再是唯一的参数,但我的投票被锁定