본문 바로가기

ABAP

ABAP : CDS View

● CDS의 유형

- ABAP CDS : ABAP프로그램을 설계 및 개발하는 layer에서데이터 모델에 대한 추상화를 하여 모델 접근 편의성을 개선하고 물리적인 HANA View를 생성한다

- HANA Native CDS

 

SAP HANA database에는

Core Data Service (DDL, QL , EL) / SQL Engine / Clac Engine /  SQL Script로 나누어져 있다.

 

- DDL : Data Definition Language

- QL : Query Language

- EL : Expression Language

 

 

 

 

 

 

 

CDS의 정의 : ABAP의향상된 'View 엔터티"이다,

 

● CDS의 장점은 다음과 같다

- 데이터 집약적 계산을 데이터베이스 계층으로 푸시한다.

- 쿼리를 결합할 수 있다( UNION, UNION ALL)

- VIEW 엔터티 간의 연관성을 정의할 수 있다.

- 지원하는 예제 표현식 코드 템플릿이 있다.

- 산술, 문자열 및 캐스트 식이 지원된다.

- ABAP CDS는 INNER JOIN, OUTER JOIN 및 RIGHT OUTER JOIN을 지원한다.

- 주석(Annotations)을 사용 할 수 있다.

- 집계, 그룹화, 필터링 그룹

- AnyDB를 지원하지만 HANA 기능에 엑세스 불가하다

- SQL 기능의 약90%를 지원한다

- ABAP 및 SAP HANA의 구축을 지원한다.

 

● CDS의 특징 및 TMI는 다음과 같다

- CDS는 ABAP 7.4 SP2 부터 지원한다.

- ABAP 7.40 SP5부터 CDS Associations를 지원한다. CDS Association는 쿼리에서 간단한 경로 표현으로 join을 대체하여 사용할 수 있다.

- ABAP CDS의 목표는 SQL-92 표준을 모두 지원하고, 백단의 association, entities, create, read, update and delete ( CRUD) 및 OData Service를 지원하는 것이다.

 

- 주석(Annotiation)은 @문자를 통해 표시된다. 추가적으로 View 레코드가 버퍼링해야하는지, SQL View이름, 클라이언트종속, 수량 및 금액 컬럼에 대한 통화 및 단위 참조여부를 결정한다.

- 주석 @ABAPCatalog.sqlViewName은 필수이다. ; ABAP딕셔너리 및 데이터베이스에서 DDL(CREATE ALTER DROP) 소스의 이름으로 사용된다.

- CDS를 활성화 하면 2개의 오브젝트를 생성한다 ; 하나는 데이터베이스뷰, 다른하나는 CDS엔터티 (최신은 CDS 엔터니만 생성한다)

- CDS 데이터베이스 뷰는 SE11 ABAP 딕셔너리를 사용하여 접근 할 수 있다.

- 주석은 View의 DDL 소스코드의 위 부분에서 @문자로 표시된다 예를들면 @ABAPCatlog.Buffering.status는 버퍼링을 활성화 할것인지 비활성화 할것인지 상태를 결정한다. @AbapCatlog.Buffering.type은 CDS View의 버퍼링 유형을 결정한다.

- @Semantics는 금액 및 수량 필드를 참조하는데 사용된다.

 

- ABAP CDS계산을 통해 레코드에 대한 집계 및 그루핑을 지원한다. GROUP BY 및 HANVING을 사용한다.

- CDS View정의에서 WHERE 조건을 포함하여 사용 가능하다.

- 여러개의 쿼리를 Merge 할 수 있는 Union 및 Union All 키워드를 지원한다. Union은 결합된 결과에 대하여 중복된 행(Rows) 없도록 Distinct가 내제된다. Union All은 중복된 행 값이 있을 수 있다.

이클립스를 이용하여 CDS를 개발하는 내용입니다.

 

● Select in 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가 사용된다.