
?= 다운캐스트 금지 — CAST 쓰는 이유 #shorts #SAP #ABAP
개요 및 이 글에서 다루는 것 ABAP 객체지향에서 상위 클래스 참조를 하위 클래스 참조로 변환하는 다운캐스팅(Downcast)은 다형성을 활용하는 코드에서 반드시 마주치는 작업입니다. 전통적으로 사용해 온 MOVE ?= 또는 ?= 연산자는 한 줄에 변수 선언을 함께 쓰기 어렵고, 예외

개요 및 이 글에서 다루는 것 ABAP 객체지향에서 상위 클래스 참조를 하위 클래스 참조로 변환하는 다운캐스팅(Downcast)은 다형성을 활용하는 코드에서 반드시 마주치는 작업입니다. 전통적으로 사용해 온 MOVE ?= 또는 ?= 연산자는 한 줄에 변수 선언을 함께 쓰기 어렵고, 예외

개요 및 이 글에서 다룰 내용 S/4HANA 재무 모듈에서 총계정원장(General Ledger) 계정 마스터를 다룰 때 가장 먼저 마주치는 CDS 뷰가 바로 I_GLAccount 입니다. 전통 ABAP에서는 SKA1 (Chart of Accounts 레벨 계정 마스터) 테이블을 직접

이 글에서 다루는 내용 ABAP에서 REF TO 참조 변수는 데이터 객체나 인스턴스를 직접 가리키는 포인터 역할을 합니다. 값 복사가 아닌 참조 전달을 통해 메모리 효율성과 다형성을 동시에 확보할 수 있어, 대용량 내부 테이블 처리·동적 디스패치·Factory 패턴 등 실무 곳곳에서 핵

개요 및 이 글에서 다루는 범위 SAP S/4HANA의 재무회계(FI) 모듈은 전통적으로 BKPF (전표 헤더)와 BSEG (전표 라인)이라는 두 클러스터 테이블에 데이터를 보관해 왔습니다. 그러나 S/4HANA로 전환되면서 SAP는 I_AccountingDocument 를 비롯한 표준
왜 같은 이름의 필드인데도 값이 비어 있을까 ABAP 개발자라면 한 번쯤은 겪었을 상황이다. CORRESPONDING 한 줄로 깔끔하게 구조체를 복사했는데, 디버거를 열어보니 분명히 양쪽에 있는 필드 하나가 비어 있다. 컴파일 에러도 없고, 런타임 덤프도 없다. 그저 조용히 잘못된 값이

1. MESHES란 무엇인가 — 개념과 등장 배경 ABAP에서 여러 내부 테이블 사이의 관계를 다룰 때, 전통적으로는 LOOP 안에 READ TABLE을 중첩하거나, 임시 구조체를 만들어 수동으로 매핑하는 방식이 일반적이었습니다. 이러한 패턴은 코드 가독성이 떨어지고, 키 변경 시 여러

개요 및 이 글에서 다룰 범위 SAP S/4HANA로 전환된 환경에서 재무 전표(FI Document) 라인 아이템을 조회할 때, 과거처럼 BSEG 클러스터 테이블을 직접 SELECT 하는 방식은 더 이상 권장되지 않습니다. 대신 SAP는 I_JournalEntryItem 이라는 표준

이 글에서 다룰 것 ABAP에서 단순한 분기 로직을 처리할 때 CASE ... ENDCASE 명령문은 행 수가 많아지고, 결과 값을 변수에 담으려면 매번 WHEN 마다 대입문을 써야 합니다. ABAP 7.40 SP08부터 도입된 SWITCH 표현식을 활용하면 한 줄로 값을 반환 하고,
개요 및 이 글에서 다룰 내용 ABAP에서 조건 분기를 표현할 때 가장 익숙한 도구는 IF ... ELSEIF ... ENDIF 입니다. 그러나 단순히 변수 하나에 값을 채우기 위해 5~6줄의 IF 블록을 반복해서 작성하다 보면 코드는 빠르게 비대해지고, 한눈에 의도를 파악하기 어려워집

개요 및 이 글에서 다루는 것 ABAP 7.4 이후 도입된 COND 표현식은 전통적인 IF...ELSEIF...ENDIF 블록을 한 줄의 우아한 표현식으로 압축할 수 있는 강력한 기능입니다. 이 글에서는 중첩 조건문을 COND 로 리팩토링하는 방법과 실무 시나리오에서의 적용 패턴을 다룹

개요 및 이 글에서 얻을 것 ABAP 7.40 이후 도입된 표현식 지향 프로그래밍(expression-oriented programming) 은 코드를 간결하게 만들었지만, 한 줄에 여러 계산을 욱여넣다 보면 오히려 가독성이 떨어지는 역설이 생깁니다. VALUE , REDUCE , FI

개요와 이 글에서 다루는 범위 SAP S/4HANA 환경에서 회계 전표 헤더 정보를 조회할 때 과거에는 BKPF 테이블을 직접 SELECT 하는 방식이 일반적이었습니다. 그러나 가상 데이터 모델(VDM)이 도입된 이후로는 I_JournalEntry CDS View가 표준 접근 경로로 자

개요 및 이번 예제에서 다룰 내용 ABAP 7.40 SP08부터 도입된 FOR ... GROUPS BY 표현은 내부 테이블을 키 기반으로 그룹화하고 각 그룹별로 집계·요약 데이터를 한 번의 표현으로 생성할 수 있게 해주는 강력한 구문입니다. 기존에는 COLLECT , LOOP AT ..

개요와 이 글에서 다루는 범위 판매 계약(Sales Contract)은 고객과 일정 기간 동안 정해진 조건으로 거래하기로 약속한 'Outline Agreement'의 한 종류입니다. S/4HANA에서는 전통적인 VBAK/VBAP 테이블 위에 Virtual Data Model(VDM) 계
개요 및 학습 포인트 ABAP 7.52부터 정식 지원되는 FOR ... THEN ... UNTIL 표현식은 단순한 반복 카운터를 넘어, 수학적 수열(arithmetic/geometric sequence)을 한 줄의 인라인 표현식으로 만들어내는 강력한 기능입니다. 전통적인 DO ... E
개요 및 이 글에서 다루는 내용 SAP RAP(ABAP RESTful Application Programming Model)에서 Behavior Definition(BDEF)을 작성할 때 가장 먼저 마주치는 갈림길이 바로 managed 와 unmanaged 시나리오의 선택입니다. 잘못

개요 및 핵심 포인트 SAP RAP(RESTful ABAP Programming Model)에서 CDS 뷰는 단순히 "데이터를 보여주는 SQL 래퍼"가 아닙니다. RAP의 계층 아키텍처에서 Interface View와 Projection View는 명확히 분리된 역할을 가지며, 이 분리
개요 및 도입 ABAP에서 연속된 숫자 시퀀스나 날짜 범위를 내부 테이블로 만들어야 하는 상황은 의외로 자주 발생합니다. 월별 매출 집계 슬롯, 회계연도 12개 기간, 발주일로부터 D+30까지의 일자 배열, 페이지네이션 인덱스 등이 대표적입니다. 전통적으로 DO ... ENDDO 루프로

개요 및 이 글에서 다룰 것 고객 반품(Customer Return)은 매출 환입, 재고 복원, 환불 정산이 동시에 얽힌 복잡한 프로세스입니다. 전통적인 ABAP 개발에서는 VBAK/VBAP를 직접 조회하면서 오더 타입을 'RE'로 필터링하는 패턴이 흔했지만, S/4HANA에서는 I_C
1. SAP OData 서비스 개발의 역사와 패러다임 전환 SAP의 ABAP 기반 서비스 개발은 지난 15년간 큰 변화를 겪었습니다. 초기 SAP NetWeaver Gateway가 등장하면서 SAP는 SOAP 기반 RFC/BAPI 호출에서 벗어나 OData(REST 기반) 프로토콜을 표