본문 바로가기
SAP Story/CDS View

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

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

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

Data_Source는 다음 2가지를 추가로 확인합니다.

       - ABAP CDS - SELECT, parameters  :: Select 시 Parameter 사용
       - ABAP CDS - SELECT, JOIN :: Select 시 Join 사용

 

먼저 Data_Source 에 대한 데이터 집계에 대해서 간단히 알아보고, 이어지는 포스팅을 통해 위 2가지 내용을 추가적으로 확인해보겠습니다.


문법

... entity[ parameters]| path_expr [[AS] alias] [ join] ...

효과

CDS View의 데이터 소스를 정의합니다. ABAP DDIC에 정의된 DB 테이블, Classic View, 또는 CDS 엔터티가 될 수 있습니다. 

  ■ 데이터 소스는 엔터티 이름을 직접적으로 사용하거나, 또는 연관에 사용된 path_expr 을 사용하여 특정합니다. 경로 표현식은 연관에 의해 결정됩니다.

  ■ 데이터 소스가 입력 매개변수가 있는 CDS View라면, 실제 매개변수는 여기에서 사용된 매개 변수로  전달되어야 합니다.

  ■  대체되는 이름인 별칭(Alias)는 데이터 소스 다음의 AS 뒤에 직접적으로 지정합니다. AS는 생략할 수도 있습니다. 경로 표현식을 사용하는 경우에는 대체 이름은 반드시 사용되어야 합니다. 별칭으로 사용되는 이름은 이름 명명규칙을 따라야 합니다.

  ■ Join 문법은 join을 사용하여 여러개의 데이터 소스를 결합할 수 있습니다.

 

메모

CDS View를 사용해서 transparent tables만 사용할 수 있습니다. Pooled Table 또는 Cluster Table 은 Data Source로 지정할 수 있습니다. 이 경우에는 DB 테이블이 활성화 될 때 CDS 데이터베이스 View가 생성되지 않습니다. Open SQL 문 Select 를 사용하여 CDS 엔터티에 접근하면 문법 검사 시 경고가 발생합니다. 명령문이 실행되면 예외가 발생합니다. 이를 통해 pooled tables 또는 cluster tables 에 대하여 후속 시스템에 transparent tables로 존재하는 CDS View를 생성할 수 있습니다.

 

Transparent Tables
ABAP DDIC에서 DB테이블의 테이블 카테고리임. transparent tables 에는 ABAP DDIC의 정의와 동일한 열이 있는 동일한 이름의 변형이 정확히 하나 있음. transparent tables 는 Native SQL, AMDP, Open SQL을 통해 수정할 수 있음. 외부의 AS ABAP은 DB 인터페이스 프로그래밍을 사용하여 수정할 수 있음. 하지만 후자의 방법은 권장하지 않음.

 

예시

데이터베이스 테이블 snwd_bpa 에 대한 CDS View :: business_partner 를 정의합니다. partner 로 이름을 대체하여 적용합니다. 이 이름은 Select List에서 사용됩니다.

@AbapCatalog.sqlViewName: 'BPA_VW'
define view business_partner as
  select from snwd_bpa as partner
         { key partner.bp_id,
           partner.company_name,
           partner.bp_role }

또한 as 는 대체이름 partner 앞에 생략될 수 있습니다. 다음의 예시는 혼동을 줄 수 있는 또 다른 유효한 절차입니다.

@AbapCatalog.sqlViewName: 'BPA_VW'
define view business_partner as
  select from snwd_bpa
           partner{ key partner.bp_id,
                    partner.company_name,
                    partner.bp_role }

 


요점

이번 포스팅에서는 데이터 소스를 Select 할 때 테이블 이름을 사용하여 지정하고,  [as] 를 사용하여 별칭을 사용할 수 있다는 것을 이해합니다.


  데이터 집계 중 아래 내용을 알아보았습니다.

 

■ 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

 

 

 

 

반응형

댓글