본문 바로가기

CDS View(Core Data Service)/Core Data Service 기초

CDS View Annotations

Annotation은 데이터 정의 언어(DDL)에서 도입된 중요한 확장 기능으로, 의미론적으로 풍부한 데이터 모델을 정의할 수 있게 해줍니다. Annotation은 CDS 엔티티를 기술적인 속성(클라이언트 종속성, 버퍼링), 의미론적인 측면(최종 사용자 라벨, 통화 필드) 및 프레임워크별 속성(OData, SAPUI5, 임베디드 분석)과 같은 도메인별 메타데이터로 확장할 수 있습니다. 이러한 속성들은 Open SQL 문으로는 이전에는 불가능했던 데이터베이스 뷰가 아닌 Dictionary 레이어에서 항상 CDS 엔티티와 연관됩니다.

Annotation의 일반적인 구문은 @ 또는 <@로 시작하여 Annotation 이름, 콜론(:) 및 작은따옴표로 둘러싸인 값을 포함합니다. Annotation은 CDS 엔티티가 정의된 방식에 따라 필수적일 수도 있고 선택적일 수도 있습니다.

CDS 엔티티의 소스 코드에 직접 주석을 포함하려면 코드 완성을 위해 단축키(Ctrl) + (스페이스)를 눌러 코드 완성 템플릿을 사용할 수 있씁니다.

Annotation의 주요 특징은 다음과 같습니다:
■ Annotation은 @ 또는 <@로 시작합니다.
■ Annotation은 추가적인 의미 정보로 CDS 보기 정의를 보강합니다.
■ Annotation은 필수 또는 선택 사항일 수 있습니다.
■ Annotation은 버퍼링 또는 클라이언트 종속성과 같은 기술적 속성을 제공할 수 있습니다.
■ Annotation은 최종 사용자 레이블 또는 통화와 같은 의미론적 정보를 제공할 수 있습니다.
■ Annotation어노테이션은 OData, UI5 또는 임베디드 분석에 대한 프레임워크 속성을 제공할 수 있습니다.
■ Annotation어노테이션은 사용자가 정의할 수 있습니다.


Scope of Annotation


SAP에서 미리 정의된 몇 가지 Annotation이 제공되며, 그 범위는 CDS 뷰 정의에서 사용하는 위치에 따라 다릅니다.
주석의 범위 전체 뷰(Full View), 요소(Element), CDS 뷰 확장(CDS View Extension), CDS 테이블 기능(CDS table Function), 매개변수(Parameter) 또는 역할(Role)에 대해 정의될 수 있습니다.


아래 표에는 Annotation 범위가 CDS 뷰 정의 내에서 사용되는 위치에 따라 어떻게 Annotation 범위가 어떻게 사용되는지 요약합니다.

Annotation Scope Position
View annotations CDS View Before a DEFINE VIEW statement
Extension annotations CDS View Extension Before EXTEND VIEW
Function annotations CDS Table Function Before DEFINE TABLE FUNCTION
Parameter annotations Parameter of a CDS view or table function Before or After the parameter
Element annotations The Element of the SELECT list of a CDS view or the element list of the CDS table function Befor or After the element
Role annotations CDS Role Before DEFINE ROLE statement

예를 들어, DEFINE VIEW 문 앞에 Annotation이 사용되면 해당 Annotation은 전체 뷰에 적용됩니다. 필드 이름 앞이나 바로 뒤에 Annotation이 사용되면 해당 Annotation은 해당 필드 이름에 적용됩니다. 필드 이름 뒤에 Annotation을 사용하려면 Annotation 앞에 @<를 붙여야 합니다. 이는 아래 소스코드에 나와 있는 것처럼 적용되어야 합니다.

Annotation을 잘못 사용한 경우, 폼 기반(form-based) 소스 코드 편집기는 오류를 빨간색으로 표시합니다.

--Annotation used before DEFINE VIEW’ Validity - View
@AbapCatalog.sqlViewName: 'ZCDS_EX_SQL01'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck:#NOT_ALLOWED
@EndUserText.label: 'CDS using one data source'
define view ZCDS_Example_01
as select from sflight
{
--Annotation used before the field Validity - Field Name Annotation begins with
@
@EndUserText.label: 'Carrier No'
key carrid,
key connid,
key fldate
--Annotation used after the field Validity - Field Name Annotation begins with
@<
@<EndUserText.label: 'Connection Flight No'
}

Types of Annotation


SAP에서는 사전 정의된 여러 Annotation을 제공하고 있습니다. CDS 뷰 정의에서 포함된 속성이나 메타데이터에 기반하여, 이러한 Annotation은 크게 다음 두 가지 범주로 분류할 수 있습니다:

■ ABAP Annotation
이러한 Annotation은 CDS 정의의 기술적 및 의미적 속성을 정의하며, ABAP 런타임 환경에서 활성화될 때 평가됩니다. 이러한 Annotation은 CDS 엔티티에 접근하는 Open SQL 문의 동작을 수정할 수 있습니다. 예를 들어, CDS 엔티티의 클라이언트 종속성을 어떻게 관리할지와 같은 사항을 변경할 수 있습니다.

■ Component Annotation
이러한 Annotation은 OData, UI5, 임베디드 분석 등과 같은 소비자 프레임워크에서 평가됩니다. 이 Annotation의 이름과 값은 소비자 프레임워크의 규칙을 따라야 합니다.

반응형