CDS 어노테이션은 CDS 엔터티에 ABAP 및 SAP 컴포넌트와 관련된 메타데이터를 추가할 수 있는 기능이다. 어노테이션을 사용하여 CDS 뷰, 테이블, 필드 등의 속성을 정의하고 조정할 수 있다. 이를 통해 CDS의 동작을 커스터마이징하고, 데이터 모델에 추가 정보를 제공할 수 있다.
주요 어노테이션
@AbapCatalog.sqlViewName: 'CUSTOMER_VIEW'
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Customer Data View'
define view ZCUSTOMER_VIEW as select from scustom
{
key scustom.id as CustomerID,
scustom.name as CustomerName,
scustom.country as Country
}
위 코드에서는 @AbapCatalog.sqlViewName 어노테이션을 사용하여 ABAP Dictionary에서 생성될 SQL 뷰의 이름을 'CUSTOMER_VIEW'로 지정한다. @AccessControl.authorizationCheck 어노테이션을 통해 권한 검사가 필요 없음을 설정하고, @EndUserText.label은 뷰의 설명을 'Customer Data View'로 설정한다.
CDS 데이터 정의는 ABAP 리포지토리 객체로, ABAP CDS DDL(Data Definition Language)을 사용해 정의된다. 데이터 정의를 통해 ABAP 프로그램 내에서 데이터 소스로 사용할 수 있는 CDS 엔터티를 정의할 수 있다. CDS 엔터티는 다양한 ABAP SQL 문장에서 사용할 수 있다.
CDS View (CDS 뷰): 기존의 데이터베이스 테이블과 다른 CDS 뷰를 조합하여 데이터의 특정 프로젝션을 정의하는 CDS 엔터티이다.
CDS Table Function (CDS 테이블 함수): 테이블 함수를 정의하며, 이 함수는 데이터베이스에서 직접 호출되어 데이터를 반환한다.
CDS Hierarchy (CDS 계층): 계층 구조로 데이터를 구성하는 CDS 엔터티이다.
@AbapCatalog.sqlViewName: 'CUSTOMER_HIERARCHY_VIEW'
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Customer Hierarchy Data'
define view ZCUSTOMER_HIERARCHY as select from scustom
association [1..1] to sbook as _booking on scustom.id = _booking.customer_id
{
key scustom.id as CustomerID,
scustom.name as CustomerName,
_booking.bookid as BookingID
}
이 예시는 CDS Hierarchy와 Association을 사용해 고객과 그들의 예약 정보를 조회하는 예시이다. association을 통해 scustom 테이블과 sbook 테이블을 연결하고, _booking 연관 필드를 통해 예약 데이터를 추가로 조회할 수 있다.
액세스 제어는 CDS 엔터티에 대해 권한을 관리하는 기능이다. ABAP CDS는 민감한 데이터를 보호하기 위해 특정 사용자가 데이터를 조회하거나 조작할 수 있는지 여부를 제어하는 방법을 제공한다.
@AbapCatalog.sqlViewName: 'AUTH_CUSTOMER_VIEW'
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Authorized Customer Data View'
define view ZAUTH_CUSTOMER_VIEW as select from scustom
{
key scustom.id as CustomerID,
scustom.name as CustomerName,
scustom.country as Country
}
이 예시는 @AccessControl.authorizationCheck: #CHECK 어노테이션을 사용하여 권한 검사가 필요한 CDS 뷰를 정의한 것이다. 권한 검사를 통과한 사용자만 이 데이터를 조회할 수 있게 된다.
ABAP CDS를 사용하여 데이터베이스 레벨에서 데이터를 효과적으로 관리하고, 필요에 따라 권한 검사를 통해 데이터를 보호할 수 있다. 이러한 개념들을 이해하고 활용하면 SAP HANA와 ABAP CDS를 사용해 더 효율적이고 안전한 데이터 모델을 구축할 수 있다.