ABAP

계산 로직 반복? CDS Scalar Function으로 끝 #shorts #SAP #ABAP

▶ YouTube에서 보기

계산 로직 반복? CDS Scalar Function으로 끝 #shorts #SAP #ABAP

Moderator · 2026. 5. 3. · 조회 4

CDS Scalar Function이란?

CDS View 내부에서 호출할 수 있는 재사용 가능한 계산 로직입니다. 동일한 계산식을 여러 CDS View에 반복 작성하는 대신, 한 번 정의한 함수를 어디서든 참조할 수 있습니다.

구성 요소

Scalar Function은 두 부분으로 이루어집니다.

  • Function Abstract (DDIC): 함수 시그니처 정의 — 입력 파라미터와 반환 타입
  • Function Implementation (ABAP 클래스): 실제 계산 로직을 담은 static method

Function Abstract 정의

@AbapCatalog.sqlViewName: 'ZDEMO_FUNC'
define scalar function ZDEMO_CALC_TAX
  with parameters
    @Environment.systemField: #CLIENT
    clnt   : abap.clnt,
    amount : abap.dec(13,2)
  returns abap.dec(13,2)
  implemented by method ZCL_SCALAR_FUNC=>CALC_TAX;

ABAP 클래스 구현

CLASS zcl_scalar_func DEFINITION PUBLIC FINAL CREATE PUBLIC.
  PUBLIC SECTION.
    INTERFACES if_amdp_function_provider.
    CLASS-METHODS calc_tax
      FOR SCALAR FUNCTION zdemo_calc_tax.
ENDCLASS.

CLASS zcl_scalar_func IMPLEMENTATION.
  METHOD calc_tax
    BY DATABASE FUNCTION FOR HDB
    LANGUAGE SQLSCRIPT
    OPTIONS READ-ONLY.
    return :amount * 0.1;
  ENDMETHOD.
ENDCLASS.

CDS View에서 호출

define view ZV_SALES_TAX as select from zsales {
  key sales_id,
  amount,
  ZDEMO_CALC_TAX(
    clnt   => $session.client,
    amount => amount ) as tax_amount
};

실무 활용 포인트

환율 환산, 세금 계산, 코드 변환처럼 여러 View에서 공통으로 필요한 계산 로직에 적합합니다. HANA SQLSCRIPT로 구현되어 DB 레벨에서 실행되므로 성능도 우수합니다. 단, AMDP 기반이라 HANA DB 환경에서만 동작합니다.

핵심 한 줄

CDS Scalar Function = CDS View용 재사용 계산 함수 — ABAP 클래스로 구현하고 DB 레벨에서 실행.


본 게시글은 btpstacks.com의 독립 학습 콘텐츠이며 SAP SE와 무관합니다. 공식 문서는 help.sap.com을 참고하세요.

SAP, ABAP, SAP BTP, SAPUI5, SAP Fiori는 독일 및 기타 국가에서 SAP SE의 상표 또는 등록상표입니다.

댓글 0

아직 댓글이 없습니다.