SAP S/4HANA에서 ABAP CDS 뷰 작성
@AbapCatalog.sqlViewName: 'ZC_SALES_ORDER' " SQL 뷰의 이름을 정의
@AbapCatalog.compiler.compareFilter: true " 필터 조건에 대한 비교를 허용
@AccessControl.authorizationCheck: #CHECK " 접근 권한을 확인
@EndUserText.label: 'Sales Order Details' " 사용자 인터페이스에 표시될 설명을 설정
define view ZC_SalesOrder as select from vbak " vbak 테이블을 사용하여 CDS 뷰를 정의
association [0..*] to vbap as _Items " vbak과 vbap 테이블 간의 다중(0..*) 연관 관계를 정의
on $projection.vbeln = _Items.vbeln " 연관 조건을 정의합니다. vbak의 vbeln과 vbap의 vbeln이 동일해야 한다.
{
key vbeln, " Sales Order Number(주문 번호)을 키로 설정
erdat, " 생성 일자
ernam, " 생성자 이름
vkorg, " 판매 조직
vtweg, " 유통 채널
_Items.posnr, " 연관된 vbap 테이블에서의 품목 번호
_Items.matnr, " 연관된 vbap 테이블에서의 물품 번호
_Items.kwmeng " 연관된 vbap 테이블에서의 주문 수량
}
SQL 스크립트 예제 코드
SELECT vbeln, erdat, ernam, vkorg, vtweg -- 필요한 필드를 선택
FROM vbak -- vbak 테이블에서 데이터를 가져오기
WHERE erdat >= '20230101'; -- 2023년 1월 1일 이후의 데이터를 필터링
AMDP (ABAP Managed Database Procedures) 예제 코드
CLASS zcl_sales_order_implementation DEFINITION " 클래스 정의 시작
PUBLIC " 클래스 접근 권한을 공개로 설정
FINAL " 이 클래스는 상속될 수 없음
CREATE PUBLIC. " 클래스의 인스턴스 생성이 가능함
PUBLIC SECTION. " 클래스의 공개 섹션 시작
INTERFACES: if_amdp_marker_hdb. " 이 클래스가 HANA 데이터베이스에서 실행될 수 있음을 나타내는 AMDP 인터페이스를 구현
METHODS: get_sales_orders " get_sales_orders 메서드 정의
IMPORTING iv_date TYPE datum " 메서드에 입력 파라미터로 날짜를 받음
EXPORTING et_sales_orders TYPE TABLE OF vbak. " 메서드가 vbak 타입의 테이블을 반환
ENDCLASS. " 클래스 정의 종료
CLASS zcl_sales_order_implementation IMPLEMENTATION. " 클래스 구현 시작
METHOD get_sales_orders BY DATABASE PROCEDURE " 데이터베이스 프로시저로 구현된 get_sales_orders 메서드
FOR HDB " 이 메서드는 HANA 데이터베이스에서 실행
LANGUAGE SQLSCRIPT " SQLSCRIPT 언어를 사용하여 메서드를 구현
OPTIONS READ-ONLY. " 이 메서드는 읽기 전용
et_sales_orders = " 결과를 et_sales_orders에 저장
SELECT vbeln, erdat, ernam, vkorg, vtweg " vbak 테이블에서 필요한 필드들을 선택
FROM vbak " vbak 테이블에서 데이터를 가져옴
WHERE erdat >= :iv_date; " 입력된 날짜 이후의 데이터를 필터링
ENDMETHOD. " 메서드 종료
ENDCLASS. " 클래스 구현 종료
SAP BW/4HANA에서 BEx 쿼리 예제
SELECT * FROM /BIC/0000123456 -- 모든 필드를 선택하여 /BIC/0000123456 테이블(InfoProvider)에서 데이터를 가져오기
WHERE 0CALMONTH = '202301'; -- 2023년 1월에 해당하는 데이터만 필터링하여 선택
SAP Analytics Cloud (SAC) 모델 정의 예제
MODEL my_model -- my_model이라는 모델을 정의
DIMENSION product WITH KEY product_id; -- product 차원을 정의하고, 제품 ID를 키로 설정
DIMENSION time WITH KEY year; -- time 차원을 정의하고, 연도를 키로 설정
MEASURE sales_amount; -- 매출액을 측정 지표로 정의
DATA { -- 데이터 블록을 정의
product_id, year, sales_amount -- 데이터 필드들: 제품 ID, 연도, 매출액
'P001', 2021, 1000 -- 데이터: 제품 P001, 2021년, 매출액 1000
'P002', 2021, 2000 -- 데이터: 제품 P002, 2021년, 매출액 2000
};