본문 바로가기

ABAP 프로그래밍 개념/ABAP Data Dictioanry

2.5 ABAP Core Data Services Views

ABAP이 CDS의 개선된 기능을 활용할 수 있도록 하기 위해, SAP은 SAP NetWeaver 7.40 SP 5에서 CDS View(CDS 뷰)를 도입했습니다. CDS View(CDS 뷰)는 ABAP Data Dictionary에서 기존의 데이터베이스 테이블, 뷰, 또는 다른 CDS View(CDS 뷰)를 위해 정의됩니다. ABAP Data Dictionary은 ABAP CDS View(CDS 뷰)를 정의하는 것을 지원하지 않습니다. CDS View(CDS 뷰)를 정의하기 위해서는 ABAP in Eclipse를 사용해야 합니다.


Defining ABAP Core Data Services Views


ABAP CDS views를 정의하기 위해선, 아래 단계를 따르면 됩니다.

1. 아직 수행하지 않았다면, 제 3장 3.3절에서 설명된 대로 Eclipse 통합 개발 환경(IDE)을 설정하고 ABAP 개발 도구 (ADT)를 설치해야합니다.

2. Eclipse IDE에서 새 프로젝트를 생성하거나 기존 프로젝트를 사용합니다. ABAP CDS 뷰를 생성하려는 패키지를 선택하세요.

3. 패키지에서 우클릭을 하고, New • Other ABAP Repository Object 순서로 클릭해주면 됩니다.

4. New ABAP Repository Object 창이 뜨면, Dictionary 폴더를 확장하여, Data Definition을 찾아 선택합니다. 혹은 data definition을 검색해도 됩니다.

5. New Data Definition 창에서, ABAP CDS 뷰를 위한 Name과 Description을 입력하고, Finish 버튼을 클릭해 줍니다.
 

6. 새로운 CDS 뷰 편집기가 열립니다 (아래 그림 참조). 편집기는 자동으로 템플릿을 로드하는데, 이 템플릿을 편집하여 정보를 입력해야 합니다. 템플릿 코드는 또한 아래 적어 두었습니다. 이 템플릿에서 'sql_view_name'을 뷰의 이름으로, 'data_source_name'을 데이터베이스 테이블의 이름으로 대체하세요.

@AbapCatalog.sqlViewName: 'sql_view_name'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Test'
define view Zcds_Demo1 as select from data_source_name {
}

 

7. 중괄호 내에서 데이터베이스 테이블 필드를 지정할 수 있습니다. 예를 들어, 데이터베이스 테이블 VBRK에 대해 "ZEXAMPLE_V1" 뷰를 정의하고 테이블에서 특정 필드를 나열하려는 경우, 템플릿은 아래 표시된대로 편집될 수 있습니다.

8. 테이블로부터 모든 필드를 가져오려면, *를 중괄호 안에 사용하면 됩니다.

9. CTRL + F3을 누르던가, 툴바에서 활성화 버튼을 클릭하여 뷰를 활성화 해줍니다.


Accessing ABAP Core Data Services View


이제 CDS 뷰를 성공적으로 정의했으므로 ABAP Data Dictionary Object로 사용할 수 있고 ABAP 프로그램에서 액세스할 수 있습니다.

이제 ABAP 프로그램에서 ABAP CDS View를 ABAP Type으로 사용할 수 있고, 또는 OPEN SQL을 사용하여 데이터를 가져올 수 있습니다.


Defining ABAP Core Data Services Views as Replacement Objects


ABAP CDS View는 Transparent Table과 Classic Database View를 대체 객체(Replacement Object)로 정의할 수 있습니다. CDS View가 대체 객체로 정의되면 Transparent Table이나Database View에 대한 모든 읽기 액세스는 Open SQL을 사용하여 ABAP CDS View로 리디렉션됩니다. 대체 객체는 화면 필드의 외래 키 확인에도 사용됩니다. 쓰기 액세스(Write Access)나 Native SQL 문과 같은 다른 액세스는 원래 테이블이나 클래식 데이터베이스 뷰를 사용합니다.

ABAP CDS View가 대체 객체(Replacement Object)로 정의된 경우, 해당 CDS View가 대체 개체(Replacement Object)로 연결된 원래 개체와 동일한 구조(각 구성 요소의 이름과 기술 속성이 동일한 구성 요소 수)를 가져야 합니다. Transparent Table이나 Classic Database View에 대체 개체가 할당되어 있는지 확인하려면 ABAP Data Dictionary에서 Transparent Table이나 Classic Database View를 열고 Extras • Replacement Object를 선택하면 됩니다.

Customer System에서 ABAP CDS View의 대체 객체는 고객이 Customer Namespace에서 정의한 Classic Database View에만 정의할 수 있습니다. Transparent Table에 대해서는 대체 개체를 정의할 수 없습니다. SAP는 Transparent Table에 대한 대체 객체를 제공할 수 있지만, Customer System에서 직접 대체 객체를 정의하는 것은 권장되지 않습니다. 대체 객체는 GTT에 대해서는 정의할 수 없습니다.

대체 객체는 다른 테이블에서 데이터를 집계하는 기존의 집계 테이블을 위해 고안되었습니다. ABAP CDS View를 집계 테이블의 대체 개체로 사용하면 ABAP CDS View를 사용하여 모든 읽기 작업에 대한 데이터를 집계할 수 있으며, 데이터를 ABAP 프로그램에서 선택하여 집계하고 테이블에 기록하는 대신 ABAP CDS View를 사용할 수 있습니다. ABAP CDS View 대체 체는 대량의 데이터를 가진 테이블에 대해 데이터를 데이터베이스에서 집계하여 기존 프로그램을 무효화하지 않고 성능을 향상시키는 데 도움이 됩니다.

반응형

'ABAP 프로그래밍 개념 > ABAP Data Dictioanry' 카테고리의 다른 글

3.1 Data Elements  (0) 2023.05.30
3. Data Type  (0) 2023.05.30
2.4 Help Views  (0) 2023.05.29
2.3 Maintenance View  (0) 2023.05.29
2.2 Projection View  (0) 2023.05.29