CDS는 도메인별 언어(DSL, Domain Specific Languages)이고, SAP HANA에서 많은 데이터 모델에 대하여 의미적으로 정의되고 소비되는 서비스입니다.
SAP HANA의 필수적인 부분이며 ABAP 스택에서 활용할 수 있습니다.
CDS는 ABAP의 향상된 "View 엔터티"로 다음과 같은 여러 가지 이점을 제공합니다.
■ 데이터 집약적 계산을 데이터베이스 계층으로 푸시합니다.
■ 쿼리를 결합할 수 있습니다(예: UNION, UNION ALL).
■ View on View( View에서 View 조회 ) 및 View 확장이 지원됩니다.
■ View 엔터티 간의 연관성을 정의할 수 있습니다.
■ 지원되는 예제 표현식 코드 템플릿이 있습니다.
■ 산술, 문자열 및 캐스트 식이 지원됩니다.
■ ABAP CDS는 INNER JOIN, OUTER JOIN 및 RIGHT OUTER JOIN을 지원합니다.
■ 주석(Annotations)을 사용할 수 있습니다.
■ 집계, 그룹화, 필터링 그룹
■ AnyDB를 지원하지만 특정 HANA 기능에 액세스할 수 없습니다.
■ SQL 기능의 약 90% 지원
■ ABAP 및 SAP HANA 구축을 지원합니다.
ABAP에서 CDS는 ABAP 7.4 SP2 부터 지원을 시작합니다.
그리고 SAP NetWeaver ABAP 7.40 SP5 부터는 추가적으로 CDS Associations를 지원합니다.
CDS Associations는 쿼리에서 간단한 경로 표현으로 join을 대체하여 사용할 수 있습니다.
ABAP CDS의 목표는 SQL-92 표준을 모두 지원하고, 백 단의 associations, entities, create, read, update, and delete (CRUD) 및 OData Services를 지원하는 것입니다.
ABAP 7.4 SP05 는 데이터 패러다임을 위한 코드를 지원합니다. ABAP스택은 모든 엔터티를 관리하고, ABAP레이어에서 데이터베이스 레이어로 모든 아티팩트(산출물)들을 배포합니다. ABAP서버는 개발, 관리 및 Hana View호출을 위한 마스터로써 행동합니다. CDS를 활성화 하면 2개의 오브젝트를 생성합니다. 하나는 CDS 데이터 베이스 뷰이고 하나는 CDS 엔터티입니다. CDS View는 ABAP 딕셔너리의 데이터베이스 테이블, 다른 Viw 또는 CDS View 를 사용하여 정의됩니다. CDS View 정의를 위한 문법은 SQL과 유사합니다.
CDS 생성을 위해 ABAP 개발 툴을 사용합니다. ABAP 워크벤치는 'DDL Sources'라고 불리는 새로운 유형의 ABAP 레파지토리 오브젝트를 지원하지 않습니다. DDL 구문은 DEFINE VIEW 와 SQL 과 같은 문법을 사용하여 정의됩니다. 주석(Annotations)은 @문자를 통해 표시됩니다. 이것은 추가적으로 View 레코드가 버퍼링해야하는지, SQL View 이름, 클라이언트 종속, 수량 및 금액 컬럼에 대한 통화 및 단위 참조여부 등을 결정합니다.
주석 @AbapCatalog.sqlViewName 은 필수입니다. (최신은 필수가 아닐 수 있습니다.) 그리고 ABAP 딕셔너리 및 데이터베이스에서 DDL 소스의 이름으로 사용됩니다. CDS를 활성화 하면 2개의 오브젝트를 생성합니다. 하나는 CDS 데이터 베이스 뷰이고 하나는 CDS 엔터티입니다. (최신은 CDS 엔터티만 생성합니다.) CDS 데이터 베이스 뷰는 SE11 ABAP 딕셔너리를 사용하여 접근할 수 있습니다. 이러한 표현이 DDL소스를 활성화 할 때 자동적으로 생성되고, 갱신되고, 삭제됩니다.
Simple CDS view:
위의 간단한 CDS View 예시를 보겠습니다.
ZCDS_DDL_SAMPLE2 는 CDS ABAP 데이터베이스 뷰 입니다.
그리고 ZCDS_SAMPLE2 는 CDS 엔터티 입니다.
CDS 엔터티는 "DEFINE VIEW" 문법을 사용하여 식별할 수 있습니다.
CDS ABAP 데이터베이스 뷰는 주석 @AbapCatalog.sqlViewName을사용하여식별할 수 있고, 활성화된 경우에 SE11-ABAP 딕셔너리에서 접근할 수 있습니다.
아래 표시된 모든 예에도 동일하게 적용됩니다.
CDS View with column list and using column alias:
이 CDS View 는 중괄호 사이에 컬럼 리스트가 있습니다.
그리고 별칭(alias)을 사용하여 변경된 컬럼 이름을 사용하는 컬럼도 있습니다.
각 컬럼은 콤마(,)를 사용하여 구분되고 별칭 이름은 'AS' 키워드를 사용하여 지정합니다.
Case Expressions in CDS View:
새로운 Open SQL에서 ABAP CDS는 CASE 표현을 지원합니다.
또한 이 표현으로 cast 표현을 적용할 수 있습니다.
CASE에 대한 결과를 출력하는 컬럼에 대한 별칭 이름이 필요합니다.
결과 컬럼 유형(Type)은 THEN, ELSE 이후의 표현 값으로 결정됩니다.
String, Arithmetic and Cast expressions in CDS Views:
연산자 +,-,*,& 를 사용한 수작적인 표현식을 사용할 수 있습니다.
단항식 -, CEIL(), MOD()와 같은 내장 함수를 사용할 수도 있습니다.
&&연산자를 사용하여 문자열 결합을 포함하거나 SUBSTRING( ) 과 같은 내장 함수를 포함하여 문자열 표현식을 사용할 수 있습니다. CAST 표현식도 사용할 수 있습니다.
Joins in CDS Views:
ABAP CDS는 INNER JOIN을 지원합니다.
LEFT OUTER JOIN 및 RIGHT OUTER JOIN 을 지원합니다.
JOIN 조건은 Select 리스트 앞 또는 뒤에 추가할 수 있습니다.
대괄호는 복잡한 JOIN 연산자를 구현하는 데 사용됩니다.
Join 을 사용하는 경우 Select 구문에서 별표가 지원되지 않습니다.
Annotations in CDS Views:
주석은 다음과 같은 추가적인 정보를 설정합니다.
ABAP의 버퍼링 테이블처럼 View를 버퍼링 할 것인지. 클라언트 종속인지 아닌지. CDS View에서 기본값은 클라이언트 종속이고, 컬럼리스트 또는 Join 조건에 클라이언트 필드를 추가하는 것은 필요하지 않습니다.
주석은 View의 DDL 소스코드의 위 부분에서 @ 문자로 표시됩니다.
위 예제에서 @AbapCatlog.Buffering.status 는 버퍼링을 활성화 할것인지 비활성화 할것인지 상태를 결정합니다.
@AbapCatlog.Buffering.type 은 CDS View의 버퍼링 유형을 결정합니다.
@Semantics 는 금액 및 수량 필드를 참조하는데에 사용됩니다.
Aggregation, Grouping, Filtering Groups in CDS Views:
ABAP CDS 계산을 통해 레코드에 대한 집계 및 그루핑을 지원합니다. GROUP BY 및 HAVING을 사용합니다.
간단하거나 복잡한 필터링 조건을 지원합니다. CDS View 정의에서 WHERE 조건을 포함하여 사용가능합니다.
Unions in CDS Views:
여러개의 쿼를 Merge할 수 있는 Union 및 Union All 키워드를 지원합니다.
Union은 결합된 결과에 대하여 중복된 행이(Rows) 없도록 DISTINCT 가 내제됩니다.
Union All 은 중복된 행 값이 있을 수 있습니다.
Selecting Data Using CDS Views:
CDS View 의 ABAP 딕셔너리 이름을 사용하여 데이터를 Select 하기 위해 오픈 SQL의 Select 구문을 사용합니다. CDS View의 SQL View 이름은 각각 Select from 절에 사용됩니다.
새로운 Open SQL 문법을 사용하는 경우에는 DEFINE VIEW 키워드를 사용하여 정의된 CDS View 이름을 Select From 절에 사용할 수 있습니다. CDS View 이름과 CDS SQL View 이름은 달라야 합니다. 또한 CDS View 이름과 ABAP 딕셔너리 이름은 같을 수 없습니다.
위 새로운 Open SQL 문법에서 Select from 절에 CDS view가 사용됩니다. 결과값을 호스트 변수를 담기 위해 @심볼을 사용했음을 알아야 합니다. 호스트 변수는 기본적으로 Open SQL 문의 내부에 있는 ABAP 변수 또는 상수를 의미합니다. 리터럴을 제외한 모든 호스트 변수는 문 안의 모든 위치에서 앞의 "@" 기호를 사용해야 합니다. 호스트 변수 하나를 @기호를 사용한 경우 모든 호스트 변수에 @를 적용해야 합니다.
클라이언트 종속 CDS View에서 데이터를 검색하기 위해 새로운 Open SQL 구문 USING CLIENT가 사용됩니다.
'SAP Story > CDS View' 카테고리의 다른 글
DDL정의 - (1)CDS의 일반적인 구문 규칙 (0) | 2022.11.15 |
---|---|
차세대 CDS View(New Generation)- CDS View Entities (1) | 2022.11.15 |
CDS View Part 00. 목록 - CDS View 를 이해하자 (1) | 2022.11.14 |
CDS View Part 18. CDS View 성능 분석 (2) (0) | 2022.11.14 |
CDS View Part 17. CDS View 성능 분석 (1) (0) | 2022.11.14 |
댓글