○ SAP BTP(SAP Business Technology Platform)
- 데이터베이스 및 데이터 관리, 통합, 확장 기능을 갖춘 지능형 기업 애플리케이션사전 구축된
- 수백 개의 SAP 및 애플리케이션 통합을 비롯해 클라우드와 하이브리드 환경 모두를 위한 단일 플랫폼으로 통합
- 모바일 및 브라우저 애플리케이션 구축과 개발 제품을 확장하고 통합하기 위한 SAP 플랫폼 서비스
- 개방형 소프트웨어 플랫폼
- SAP Extension Suit와 SAP Integration의 조합을 통해 온프로미스 또는 클라우드에 관계없이
- SAP 및 비 SAP 시스템 확정 가능케 함
○ ABAP
- key client : mandt not null : 고유값이 될 키 설정, mandt 도메인으로 not null 값 설정
- key travel_uuid : sysuuid_x16 not null
1) sysuuid는 고유 일련번호 타입으로 지정
2) unique한 값을 가지도록 설정 및 빈 값 허용 X
- travel_id : /dmo/travel_id
1) 컬럼명 지정 후 ABAP dictionary Domain 설정
2) Sample 값이 있기 때문에 프로젝트 진행 시 정의된 도메인 사용
- @Semantics.amount.currencyCode : 'zsfc_atrav.currency_code'
1) Semantics는 SAP에서 등록 및 관리되는 Annotations
2) 통화코드(currency Code)로 지정된 칼럼은 통화타입을 가짐
- 저장한 후, [Activate]를 눌러 테이블 생성
- [File] - [New] - [ABAP Class]
- [Add]를 누르고, 'IF_OO_ADT_CLASSRUN' 검색 및 선택
- 생성한 Class에 아래 소스를 입력해준다.
CLASS zcl_generate_demo_data_scf DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_generate_demo_data_scf IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
" delete existing entries in the database table
DELETE FROM zsfc_atrav_0000.
DELETE FROM zsfc_abook_0000.
" insert travel demo data
INSERT zsfc_atrav_0000 FROM (
SELECT
FROM /dmo/travel
FIELDS
uuid( ) AS travel_uuid ,
travel_id AS travel_id ,
agency_id AS agency_id ,
customer_id AS customer_id ,
begin_date AS begin_date ,
end_date AS end_date ,
booking_fee AS booking_fee ,
total_price AS total_price ,
currency_code AS currency_code ,
description AS description ,
CASE status
WHEN 'B' THEN 'A' " accepted
WHEN 'X' THEN 'X' " cancelled
ELSE 'O' " open
END AS overall_status ,
createdby AS created_by ,
createdat AS created_at ,
lastchangedby AS last_changed_by ,
lastchangedat AS last_changed_at ,
lastchangedat AS local_last_changed_at
ORDER BY travel_id UP TO 200 ROWS
).
COMMIT WORK.
" insert booking demo data
INSERT zsfc_abook_0000 FROM (
SELECT
FROM /dmo/booking AS booking
JOIN zsfc_atrav_0000 AS z
ON booking~travel_id = z~travel_id
FIELDS
uuid( ) AS booking_uuid ,
z~travel_uuid AS travel_uuid ,
booking~booking_id AS booking_id ,
booking~booking_date AS booking_date ,
booking~customer_id AS customer_id ,
booking~carrier_id AS carrier_id ,
booking~connection_id AS connection_id ,
booking~flight_date AS flight_date ,
booking~flight_price AS flight_price ,
booking~currency_code AS currency_code ,
z~created_by AS created_by ,
z~last_changed_by AS last_changed_by ,
z~last_changed_at AS local_last_changed_by
).
COMMIT WORK.
out->write( 'Travel and booking demo data inserted.').
ENDMETHOD.
ENDCLASS.
- 임시데이터를 insert하기 위해서 [Run As] - [ABAP Application] 선택
- 아래와 같은 문구가 나오면서 임시데이터가 생성된다!
- 참고로 ABAP의 경우 공란이 있을 때 정상적으로 작동되지 않을 수 있으니 유념하자
- 패키지 우클릭 및 [New] - [Other ABAP Repository Object]
- 'data' 검색 후, [Data Definition] 선택
- [Name]과 [Description] 입력
- 생성된 Definition 확인
1) @AbapCatalog.sqlViewName: 'CDSVIEW NAME'
* TSCODE: SE11
2) @AbapCatalog.compiler.compareFilter: true
* CDS compiler가 필터가 있는 CDS-Path 표현식(expressions)을 JOIN으로 변환하는 방법 정의
* annotation이 사용되지 않으면 CDS compiler는 filter가 있는 각 CDS-Path 표현식에 대해 전용 JSON문 생성
* annotation이 사용되고 'true'로 설정되면 CDS compiler는 CDS-Path 표현식 내의 단계 중
하나에 다른 필터가 포함된 경우에만 별도의 JOIN문 생성(필터 조건이 재귀적으로 비교됨을 의미)
* 해당 CDS-Path 표현식 내의 두 단계가 동일한 것으로 식별되는 경우
해당 CDS-Path 표현식에 대해 하나의 JOIN만 생성
* Inner Join, Left Outer Join 사용, compare Filter를 true로 설정, association으로 연결된 Join문이 있을 경우
두 개가 동일하면 한 번만 compile하여 연결
* False 설정은 필터 조건에 있는 연결만 조인식으로 사용
3) @AbapCatalog.preserveKey: true
* CDS VIEW에서 연과된 데이터베이스 보기에서 Key필드 정의 지정
* True : CDS Database View의 Key 필드는 추가 Key에 따라 정의됨(중복 없이 key 필드 생성)
* False : CDS Database View의 Key 필드는 추가 Key에 관계엾이 ABAP Dictionary의 classic views와 같이 결정됨
4) @AccessControl.authorizationCheck: #CHECK
* 권한 체크
* 사용자마다 SAP System에서 본인이 접근할 수 있는 권한 부여
5) @EndUserText.label: 'Sap Fiori Cafe CDS VIEW Simple CDS VIEW'
* ADT 도구에서 보이는 Label
- {} 빈 공간에 [ctrl] + [space] 누르면 나오는 팝업창에서 [Insert all elements (template)] 선택
- sqlViewName 입력 및 elements 생성 확인
- 생성된 Definition 우클릭 및 [Open With] - [Data Preview] 선택
- 임시 데이터 생성 결과 확인
'SAP > ABAP' 카테고리의 다른 글
[ ABAP ] CDS 기초 개념 (0) | 2023.02.16 |
---|---|
[ ABAP ] CDS Views(1) (0) | 2023.02.14 |
[ ABAP ] CDS BTP + Eclips + ABAP (0) | 2023.02.14 |
[ ABAP ] CDS Views (0) | 2023.02.13 |