ABAP CDS. Коротко о главном (2)

В этой заметке я хочу коснуться варианта определения набора входных параметров в процессе создания ABAP CDS View, который может выполнять роль фильтра в получении результирующей выборки данных, а также может быть зависимым, скажем, от пользовательского ввода в ABAP программе(ах), либо другом сценарии, в зависимости от того, где этот CDS будет применяться.

См. заметку ABAP CDS. Коротко о главном

Определение CDS View с набором входящих параметров

См. ABAP CDS - parameter

Пример создания ABAP CDS с параметрами

Создать ABAP CDS View, про который идет речь в этой заметке, очень просто. Для этого, используя Eclipse IDE, необходимо выбрать соответствующий тип создаваемого ракурса.

Для демонстрации в этой заметке я воспользуюсь примером, который был приведен ранее, определив один входной параметр в уже знакомое условие запроса.

  
@AbapCatalog.sqlViewName: 'ZCDS_PRM'
@AbapCatalog.compiler.compareFilter: TRUE
@AbapCatalog.preserveKey: TRUE
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'CDS with params'
define VIEW zcds_params
  WITH parameters
    p_country_origin : char2
  AS SELECT FROM ztbl1 AS t1
    INNER JOIN   ztbl2 AS t2 ON t1.id = t2.id
{
  KEY t1.id            AS Id,
 
      t1.name          AS Name,
      t1.lastname      AS Lastname,
      t2.birthdate     AS Birthdate,
      t2.cellphone     AS Cellphone,
      t2.email         AS Email,
      t2.countryorigin AS Countryorigin
}
WHERE
  countryorigin = $parameters.p_country_origin;
    
    

Не забываю активировать новый CDS View.

Пример запуска CDS View с параметрами

На следующем видеофрагменте представлен пример запуска ABAP CDS View с определенным входным параметром.

Пример использования в ABAP программе

Хорошее описание использования ABAP CDS View с входными параметрами в ABAP программе представлено в справочном материале вендора.

См. ABAP SQL, Parameter Passing to a CDS View

В своем примере я воспользуюсь следующим вариантом реализации.

Проверяю, что получилось