아직도 KNA1 따로? BUT000 뷰로 BP 통합 #shorts #SAP #ABAP
이 글에서 다루는 범위 S/4HANA에서 고객(Customer, KNA1)과 공급업체(Vendor, LFA1)는 더 이상 별개의 마스터 데이터가 아닙니다. 비즈니스 파트너(Business Partner, BP)라는 단일 엔티티로 통합되었고, 모든 외부 거래 주체는 BUT000 테이블을
이 글에서 다루는 범위 S/4HANA에서 고객(Customer, KNA1)과 공급업체(Vendor, LFA1)는 더 이상 별개의 마스터 데이터가 아닙니다. 비즈니스 파트너(Business Partner, BP)라는 단일 엔티티로 통합되었고, 모든 외부 거래 주체는 BUT000 테이블을
개요 및 이 글에서 다루는 범위 SAP S/4HANA에서 가장 자주 호출되는 CDS 뷰 중 하나가 바로 I_BusinessPartner 입니다. 전통적인 ERP 시대에는 고객( KNA1 )과 공급업체( LFA1 )가 분리되어 있었지만, S/4HANA는 BUT000 을 중심으로 비즈니스
개요와 이 글에서 얻어갈 것 ABAP 개발자라면 한 번쯤 "랭킹을 구하려고 SELECT 결과를 내부 테이블에 담고 SORT한 뒤 LOOP를 돌리며 카운터를 증가시킨" 경험이 있을 것입니다. 이런 방식은 작동은 하지만 데이터가 수십만 건을 넘어가면 애플리케이션 서버 메모리와 네트워크 전송
I_WorkCenter란 무엇인가 I_WorkCenter는 SAP S/4HANA에서 작업 센터(Work Center) 마스터 데이터를 표준화된 형태로 노출하는 ABAP CDS 기본 뷰(Basic Interface View)입니다. 전통적으로 작업 센터는 CRHD(Work Center H
개요 및 학습 포인트 ABAP Open SQL의 CASE 표현식은 SELECT 문 내부에서 조건에 따라 값을 분기시킬 수 있는 강력한 기능입니다. 기존에는 데이터를 가져온 후 ABAP 레벨에서 IF/CASE 문으로 가공했다면, CASE 표현식을 사용하면 DB 서버에서 직접 분기 처리하여
개요 및 이 글에서 다루는 범위 SAP S/4HANA 환경에서 생산 오더(Production Order) 데이터를 ABAP으로 다룰 때, 과거에는 AUFK, AFKO, AFPO 같은 클러스터 테이블을 직접 JOIN하여 조회하는 방식이 일반적이었습니다. 그러나 S/4HANA 1909 이후
개요 및 이 글에서 다루는 범위 I_ProductionOrder는 SAP S/4HANA에서 생산 오더(Production Order) 헤더 정보를 표준화된 형태로 노출하는 기본(Basic) CDS View입니다. 내부적으로 AUFK(오더 마스터)와 AFKO(오더 헤더), AFPO(오더
개요 및 이번 예제에서 다루는 것 이 글에서는 ABAP Open SQL이 제공하는 내장 문자열 함수를 활용해 데이터베이스 레이어에서 직접 문자열을 가공하는 방법을 다룹니다. 전통적으로 ABAP 개발자는 SELECT로 데이터를 가져온 뒤 LOOP나 CONCATENATE, SHIFT, RE
개요 및 핵심 포인트 SAP S/4HANA 환경에서 MRP(Material Requirements Planning) 실행 결과로 생성된 계획 오더(Planned Order)는 PLAF 테이블에 저장됩니다. 과거에는 PLAF 테이블을 직접 SELECT 하거나 BAPI_PLANNEDORDE
이 글에서 다루는 내용과 도달 지점 복잡한 분석 쿼리를 작성하다 보면 SELECT 절 안에 또 다른 SELECT가 중첩되고, 동일한 서브쿼리가 두세 번 반복되며, FROM 절에 인라인 뷰가 잔뜩 들어가는 상황을 자주 만나게 됩니다. ABAP 7.50부터 도입된 Open SQL의 WITH
이 글에서 다룰 것 SAP ERP/S/4HANA 환경에서 이익 센터(Profit Center) 데이터를 조회할 때 많은 개발자가 여전히 CEPC 테이블과 CEPCT 텍스트 테이블을 직접 JOIN해 사용합니다. 이 방식은 동작은 하지만 시간 종속(time-dependent) 처리, 다국어
이 글에서 다루는 내용 ABAP 7.40 SP05부터 도입된 @DATA(...) 인라인 선언은 Open SQL의 SELECT 결과를 받기 위해 미리 작업 영역(work area)이나 내부 테이블(internal table) 타입을 선언해야 했던 전통적인 방식을 크게 단순화합니다. 이 글
이 글에서 다루는 것 ABAP 7.40 이상에서 가장 많이 쓰이는 문법 중 하나가 바로 인라인 선언(Inline Declaration)입니다. 특히 Open SQL의 SELECT ... INTO 구문에서 @DATA() 를 활용하면, 결과를 담을 internal table이나 work a
I_CostCenter가 필요한 이유 — CSKS 직접 SELECT의 문제점 Controlling 영역에서 원가 센터(Cost Center) 정보를 다뤄야 할 때, 많은 ABAP 개발자들이 본능적으로 CSKS 테이블을 직접 조회합니다. 그런데 이 접근 방식은 S/4HANA 환경에서 여러
개요 및 이 글에서 다루는 것 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을 중첩하거나, 임시 구조체를 만들어 수동으로 매핑하는 방식이 일반적이었습니다. 이러한 패턴은 코드 가독성이 떨어지고, 키 변경 시 여러