안녕하세요.
아래 내용은 2017년 2월 18일 HANA 스터디에서 2주차 강의내용 중 일부입니다.
원작자는 접니다.
이번 강좌는 3가지를 다룬다.
1. ABAP 7.4~
2. ABAP ALV IDA
3. ABAP CDS 1부(다음주에 2부가 이어진다)
1. ABAP 7.4~
변화되는 ABAP에서 실무적인 관점으로 주시해야 할 부분은 LOOP 구문을 대체할 만한 SQL의 개선과 데이터선언의 편의성이라 생각된다.
PUSHDOWN을 ABAP으로 구현하기 위해서는 LOOP을 줄여서 처리하는 방법에 익숙해질 필요가 있다.
2. ABAP ALV with Integrated Data Access on HANA
기존의 ALV가 개편되었다. 먼저 클래식한 방법으로 ALV에 데이터를 출력되는 방법은 아래와 같다.
- SELECT 쿼리를 작성하여 데이터베이스에서 데이터를 가져온다.
- 모든 데이터 처리 로직은 애플리케이션 계층에서 발생하고 최종적으로 데이터는 인터널 테이블에 저장된다.
- 최종 인터널 테이블에서 그룹화, 정렬, 집계 및 페이징과 같은 모든 UI 작업이 응용 프로그램 계층 자체에서 수행된다.
그러나 통합 데이터 액세스 ALV (ALA with IDA)는 다르다.
- SAPGUI의 ALV에 데이터를 표시하기 위한 그룹화, 정렬, 집계 및 페이징이 모두 SAP HANA 데이터베이스에서 수행되며 이 처리가 끝난 데이터가 애플리케이션으로 전송되고 ALV는 출력만 담당하게 된다.
IDA와 함께 ALV를 사용하는 방법 2가지를 소개한다.
1) CREATE
ABAP Dictionary로 생성된 테이블이나 뷰에 접근할 때 사용하는 방법이다.
2) CREATE_FOR_CDS_VIEW – Create ‘ALV with IDA’ for Core Data Services(CDS)
DDL에 직접 접근할 때 사용한다. DDL에 직접 연결되기 때문에 DDL 고유의 속성을 이용할 수 있다.
예를 들어 DDL에서 특정 필드를 키로 선언하면 여기서도 키로 사용된다.
ABAP Dictionary를 호출하는 것과 DDL을 호출하는 것의 차이
위에서 확인할 수 있듯이 DDL을 Active해서 생성한 뷰를 호출한 경우 DDL에서 지정한 키필드 정의가 적용되지 않았다.
반면 DDL을 직접 호출한 경우는 그렇지 않은 것을 확인할 수 있다.
기본적으로 IDA는 SALV의 기능을 사용할 수 있다. 파라미터와 셀렉트옵션을 사용하는 예는 아래와 같다.
3. ABAP CDS
DD 오브젝트명 Z_DDL_0012로 ABAP Dictionary View명 Z_CDS_V0012을 생성하는 DDL을 만들어 본다.
1) 원하는 패키지를 지정해 새 오브젝트를 생성한다.
2) Core Data Services > Data Definition 를 찾는다.
3) DD 오브젝트명과 내역을 입력한다.
4) Finish를 선택하면 아래와 같이 기본적인 구문이 입력된 DD 오브젝트가 생성된다.
@뒤에 있는 명령어들은 DD 오브젝트의 속성을 정의하는 것이다.
아래 소스를 입력해서 Active 하면 SE11에서 조회되는 Z_CDS_V0012 View가 생성된다.
과제
이번에 배운 기능을 사용해 아래 프로그램을 만들어보자.
1) 조건
SBOOK을 기준으로 SFLIGT에 있는 금액을 가져온다.
SBOOK-SFLIGHT
SBOOK-CARRID
SBOOK-CONNID
SBOOK-FLDATE
SBOOK-BOOKID
SFLIGHT-CURRENCY
SFLIGHT-PRICE (만약 CURRENCY가 USD 이면 * 1000)
ZFIELD (만약 CURRENCY가 USD 이면 값 Y 아니면 N)
2) 목표
-OPEN SQL만 사용해 PUSHDOWN 개념이 반영된 ALV 만들기
-같은 조건으로 IDA 프로그램 만들기
3) 제약조건
- 데이터를 선언하지 않고 쿼리로 인터널테이블 만든다.
- 연산과 조건식을 구현하기위해 LOOP를 사용하지 않는다.
댓글 8
-
Brisky
2017.02.20 08:08
-
ninestone
2017.06.20 08:21
강좌 잘 보고 있습니다. 그런데 질문이 있어 문의 드립니다.첫번째 코딩 Select * from vbak에서INTO TABLE @DATA(otab)의Internal Table otab은 선언이 안되어 있는 데HAHA에서는 정의 하지 않아도 되나요?Data: begin of otab occurs 0,......end of otab. -
대략나
2017.06.20 20:20
이문법은 HANA 와 관련없이
ABAP 7.4 부터 나온 새로운 선언문입니다. DATA(변수명) 만 쓰면 타입은 적절하게 알아서 선언이 됩니다.
적절하게 알아서 ?:
위 경우는 INTO 절에 있는 변수이므로 SELECT 절에 나열한 필드를 가지는 인터널 테이블이 선언됩니다.
예를들어 펑션이나 메소드의 파라미터에 있는 변수의 경우 그 파라미터 타입에 맞게 선언됩니다.
-
초코
2018.01.26 20:29
감사합니다.
-
하회탈0
2018.10.27 00:49
감사합니다.
-
낭만돼지
2018.11.20 02:14
감사합니다.
-
프로복서TM
2019.04.02 23:14
감사합니다.
-
사랑엄
2020.07.01 02:55
감사합니다. 많이 배우고 있습니다.
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
11 | [Guide] 하나 천재가 된 하대리의 비밀 [14] | 공상우 | 2017.12.30 | 7678 |
10 | [Guide] ABAP CDS View 아는 만큼 그리고 필요한 만큼 사용하기 2부 [2] | 공상우 | 2017.12.30 | 16618 |
9 | [Tips] ABAP CDS View 에서 Join과 Association 의 차이 | 공상우 | 2017.12.30 | 4931 |
8 | [Tips] S4H 1511 이후 자재문서 테이블에 커스텀 필드 추가방법 >> 23.03 수정 [5] | 공상우 | 2017.12.29 | 4088 |
7 | [Guide] ABAP CDS View 아는 만큼 그리고 필요한 만큼 사용하기 1부 [1] | 공상우 | 2017.12.28 | 6349 |
6 | [Tips] 기존 테이블명으로 CDS View 찾기 [1] | 공상우 | 2017.12.28 | 3727 |
5 | [Tutorial] HANA View 모델링부터 Extention View 까지 [1] | 공상우 | 2017.03.20 | 6582 |
4 | [Tutorial] ABAP CDS 3부 / AMDP / CDS with AMDP [2] | 공상우 | 2017.03.06 | 11282 |
3 | [Tutorial] ABAP CDS 2부 [2] | 공상우 | 2017.03.06 | 6973 |
» | [Tutorial] ABAP7.4 / ABAP ALV IDA / ABAP CDS 1부 [8] | 공상우 | 2017.02.20 | 9173 |
1 | [Guide]어려운 이야기는 쏙 뺀 ABAP으로 하나 플랫폼 이용하기 [10] | 공상우 | 2017.02.12 | 7899 |
강의 내용 감사합니다.