본문 바로가기
SAP Story/CDS View

DDL정의(2) View 정의 - 데이터 집계(Select)- data_source( Parameters )

by 돈보따리 2022. 11. 22.
반응형

데이터 집계와 관련한 주제 중 Data_source 중에서 Parameter를 사용하는 방법에 대해서 알아보도록 하겠습니다.
  


문법

... ( pname1 : act1, pname2 : act2, ... ) ...

 

효과

실제 매개변수 act1, act2, ...은 CDS View의 입력 매개변수 pname1, pname2, ... 에 전달됩니다.

매개변수로는 다음의 값을 사용할 수 있습니다.

  ■ 리터럴( Literals )  :: 숫자 또는 문자로 된 고정값

  ■ 매개변수( Parameters )

  ■ 세션변수( Session Variables )

 

전달되는 매개변수와 입력 매개변수의 데이터 유형은 정확하게 일치해야 합니다. 
하지만 다음의 옵션도 가능합니다.

  ■ 문자형 매개변수가 바인딩 되는 경우 서로 다른 길이 가능

  ■ 숫자형 매개변수가 전달될 때 입력 매개변수가 더 큰 범위이면 가능

 

예시

다음은 Join에서 CDS View  demo_cds_parameters를 사용하는 CDS View 입니다. View의 입력매개변수는 현재 View에서 제공된 실제 매개변수를 사용합니다. 프로그램 DEMO_CDS_PARAMETERS_JOIN 은 이 View를 Select 하는 프로그램 입니다. 

실제 매개변수를 입력 매개변수로 제공했습니다.

@AbapCatalog.sqlViewName: 'DEMO_CDS_PARJOIN'
@AccessControl.authorizationCheck: #NOT_REQUIRED
define view demo_cds_parameters_join
  with parameters
    in_distance_l :s_distance,
    in_distance_u :s_distance,
    in_unit       :s_distid
  as select from
           demo_cds_parameters
      ( p_distance_l : $parameters.in_distance_l,
        p_distance_u : $parameters.in_distance_u,
        p_unit       : $parameters.in_unit ) as flights
      join scarr on
        scarr.carrid = flights.carrid
    {
      key scarr.carrname,
      key flights.connid,
          flights.cityfrom,
          flights.cityto,
          flights.distance,
          flights.distid
    };    

Program :: DEMO_CDS_PARAMETERS_JOIN 

REPORT demo_cds_parameters_join.

CLASS demo DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS main.
ENDCLASS.

CLASS demo IMPLEMENTATION.
  METHOD main.
    DATA:
      from_distance TYPE s_distance VALUE 2000,
      to_distance   TYPE s_distance VALUE 6000,
      unit          TYPE s_distid   VALUE 'MI'.
    cl_demo_input=>new(
      )->add_fieldCHANGING field from_distance
      )->add_fieldCHANGING field to_distance
      )->add_fieldCHANGING field unit
      )->request).

      SELECT *
             FROM demo_cds_parameters_join(
                    in_distance_l @from_distance,
                    in_distance_u @to_distance,
                    in_unit       @unit )
             ORDER BY carrnameconnid
             INTO TABLE @DATA(result).
      cl_demo_output=>displayresult ).
  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
  demo=>main).

 


■ ABAP CDS - SELECT, data_source
       - ABAP CDS - SELECT, parameters
       - ABAP CDS - SELECT, JOIN
  ■ ABAP CDS - SELECT, ASSOCIATION
       - ABAP CDS - path_expr
             :: ABAP CDS - path_expr, attributes
             ::  ABAP CDS - Joins of Associations
  ■ ABAP CDS - SELECT, select_list
       - ABAP CDS - SELECT, element
       - ABAP CDS - SELECT, element_annot
  ■ ABAP CDS- SELECT, clauses
       - ABAP CDS - SELECT, WHERE
       - ABAP CDS - SELECT, GROUP BY
       - ABAP CDS - SELECT, HAVING
       - ABAP CDS - SELECT, UNION
  ■ ABAP CDS - SELECT, Operands and Expressions
       - ABAP CDS - literal
       - ABAP CDS - field
       - ABAP CDS - parameter
       - ABAP CDS - session_variable
       - ABAP CDS - arith_expr
       - ABAP CDS - aggr_expr
       - ABAP CDS - case_expr
       - ABAP CDS - cast_expr
       - ABAP CDS - cond_expr
  ■ ABAP CDS - SELECT, Built-In Functions
       - ABAP CDS - sql_functions
              - ABAP CDS - Numeric Functions
              - ABAP CDS - String Functions
              - ABAP CDS - coalesce
       - ABAP CDS - Special Functions
              - ABAP CDS - Conversion Functions
                    - ABAP CDS - Type Conversion Functions
                    - ABAP CDS - Conversion Functions for Units and Currencies
              - ABAP CDS - Date Functions and Time Functions
                   - ABAP CDS - Date Functions
                    - ABAP CDS - Time Functions
                    - ABAP CDS - Time Stamp Functions
                    - ABAP CDS - Time Zone Functions
                    - ABAP CDS - Date/Time Conversions

반응형

댓글