
아직도 LOOP AT 쓰세요? FOR 문법으로 끝 #shorts #SAP #ABAP
전통 LOOP AT의 문제 ABAP의 고전적인 LOOP AT 구문은 내부 테이블을 순회하면서 새 테이블을 만들 때 코드가 장황해집니다. 워크 에리어 선언, APPEND, ENDLOOP까지 최소 5~6줄이 필요합니다. DATA lt_result TYPE TABLE OF zs_result.

전통 LOOP AT의 문제 ABAP의 고전적인 LOOP AT 구문은 내부 테이블을 순회하면서 새 테이블을 만들 때 코드가 장황해집니다. 워크 에리어 선언, APPEND, ENDLOOP까지 최소 5~6줄이 필요합니다. DATA lt_result TYPE TABLE OF zs_result.

CDS Scalar Function이란? CDS View 내부에서 호출할 수 있는 재사용 가능한 계산 로직입니다. 동일한 계산식을 여러 CDS View에 반복 작성하는 대신, 한 번 정의한 함수를 어디서든 참조할 수 있습니다. 구성 요소 Scalar Function은 두 부분으로 이루어

데이터 일관성 없이 저장하면? RAP에서 Validation을 구현하지 않으면 잘못된 금액, 빈 필드, 논리 오류가 그대로 DB에 저장됩니다. 저장 전 체크 없이는 데이터 정합성을 보장할 방법이 없습니다. Behavior Definition 선언 Behavior Definition에서

RAP Managed란? ABAP RAP(RESTful Application Programming Model)에서 managed 키워드 하나면 Create, Read, Update, Delete — 모든 CRUD 로직을 SAP 프레임워크가 자동 처리합니다. 직접 코드를 짤 필요가 없습니

CREATE OBJECT vs NEW — 무엇이 다른가 ABAP 7.40부터 NEW 키워드로 객체를 한 줄에 생성할 수 있습니다. 기존 CREATE OBJECT 와 비교하면 코드가 확연히 간결해집니다. 기존 방식 — CREATE OBJECT DATA: lo_flight TYPE REF
CTE란 무엇인가 CTE(Common Table Expression)는 ABAP SQL에서 WITH 절을 사용해 임시 결과 집합을 정의하는 기능입니다. 복잡한 중첩 서브쿼리를 평탄화해 가독성을 높이고, 동일 서브쿼리의 반복 작성을 줄여줍니다. ABAP 7.50 이상에서 지원되며, Ope

전통 방식: LOOP로 합계 구하기 ABAP 개발자라면 내부 테이블의 합계를 구할 때 아래 패턴을 자주 씁니다. DATA lv_total TYPE p DECIMALS 2. LOOP AT lt_orders INTO DATA(ls_order). lv_total = lv_total + ls_

전통 LOOP, 너무 길지 않나요? 내부 테이블의 합계를 구하는 코드, 보통 이렇게 작성합니다. 변수 선언, 초기화, LOOP, 누적, ENDLOOP까지 다섯 줄 이상이 필요하죠. DATA(lt_orders) = VALUE tt_orders( ( amount = 100 ) ( amoun

Side Effects란? RAP Behavior Definition에서 side effects 는 특정 필드가 변경될 때 다른 필드를 자동으로 다시 읽어오는 선언적 메커니즘입니다. UI가 필드 변경을 감지하면 백엔드에서 지정된 대상 필드를 재조회해 화면을 갱신합니다. 수동 Refres

RAP Validation이 없으면 생기는 일 RAP(RESTful ABAP Programming) 기반 앱에서 Validation을 구현하지 않으면, 잘못된 데이터가 데이터베이스에 그대로 저장된다. 예를 들어 수량이 음수이거나, 날짜 범위가 역전된 주문이 버젓이 생성될 수 있다. Va

기존 방식 vs VALUE #( ) 비교 ABAP에서 내부 테이블에 데이터를 채울 때 기존 방식은 CLEAR·MOVE·APPEND를 매번 반복해야 했습니다. 행이 10개면 30줄이 넘는 코드가 생깁니다. " 기존 방식 (3줄 × n행) CLEAR ls_order. ls_order-id

중첩 서브쿼리, 정말 읽을 수 있나요? ABAP 개발 중 SELECT 문 안에 SELECT가 또 들어가고, 그 안에 또 들어가는 코드를 본 적 있나요? 작성한 본인도 일주일 뒤에 보면 해석이 어렵습니다. ABAP 7.50 이상에서는 CTE(Common Table Expression)를

CTE란 무엇인가 ABAP SQL 7.4부터 지원하는 WITH 절을 사용하면, 복잡한 쿼리를 이름 있는 임시 결과셋으로 분해할 수 있습니다. CTE(Common Table Expression)는 중첩 서브쿼리 대신 가독성과 재사용성을 크게 높여주는 도구입니다. 중첩 서브쿼리 방식 SEL

ABAP SQL Window Function 이란? ABAP 7.4부터 SELECT 안에서 Window Function 을 직접 쓸 수 있습니다. 행 단위 계산(순위·누계·이동평균)을 서브쿼리 없이 해결합니다. ROW_NUMBER — 부서별 급여 순위 SELECT carrid, paym

ABAP Unit Test란? ABAP Unit Test는 ABAP 코드의 개별 단위(메서드, 함수)를 자동으로 검증하는 테스트 프레임워크입니다. 수동 테스트 대신 코드로 테스트를 작성해 버그를 배포 전에 잡을 수 있습니다. 테스트 클래스 구조 테스트 클래스는 FOR TESTING AD

SELECT *, 중첩 루프, 동적 SQL 등 비효율 패턴을 식별하고 JOIN/FOR ALL ENTRIES/EXISTS 비교, DML 블록 처리, 집계 Push-down, 버퍼링 전략을 코드 예제와 함께 다룹니다. AI 도구(Claude/ChatGPT)로 레거시 쿼리를 자동 최적화하는

1. 개요 - ABAP OOP가 왜 중요한가 SAP S/4HANA와 BTP(Business Technology Platform) 시대에 접어들면서, ABAP 개발은 더 이상 절차적 프로그래밍만으로는 충분하지 않습니다. RAP(RESTful ABAP Programming Model), C

ABAP RAP의 Managed Scenario를 활용하여 CRUD 앱을 만드는 전체 과정을 다룹니다. DB Table, CDS View, Behavior Definition, Service Binding부터 Validation, Determination, Action까지.

ABAP SQL의 CTE(Common Table Expressions)와 Window Functions(ROW_NUMBER, LEAD/LAG, NTILE 등), 그리고 WITH HIERARCHY 계층 쿼리까지 단계별로 다루는 완전 가이드입니다.

ABAP 7.40+ 모던 문법 VALUE, FILTER, REDUCE 연산자로 Internal Table 초기화/필터링/집계를 간결하게 처리하는 방법을 실전 코드와 함께 설명합니다.