
BKPF 직접 JOIN 큰일 — 지불 문서 CDS 뷰 실전 #shorts #SAP #ABAP
이 글에서 다루는 내용과 도달 지점 이 글은 S/4HANA 재무 회계 영역에서 지불 문서(Payment Document)를 조회할 때 흔히 저지르는 실수인 BKPF 테이블 직접 JOIN 방식을 벗어나, SAP가 제공하는 표준 CDS 뷰 I_PaymentDocument 를 활용해 데이터

이 글에서 다루는 내용과 도달 지점 이 글은 S/4HANA 재무 회계 영역에서 지불 문서(Payment Document)를 조회할 때 흔히 저지르는 실수인 BKPF 테이블 직접 JOIN 방식을 벗어나, SAP가 제공하는 표준 CDS 뷰 I_PaymentDocument 를 활용해 데이터
이 글에서 다루는 범위와 도달점 SAP S/4HANA의 PM(Plant Maintenance) 모듈에서 정비 오더는 설비 고장, 예방 정비, 검사 작업을 관리하는 핵심 트랜잭션 객체입니다. 이 글은 I_MaintenanceOrder CDS 뷰가 레거시 AUFK 테이블을 어떻게 의미론적으

저장 위치(Storage Location)란 — 물류 구조에서의 역할 SAP 물류 모듈에서 저장 위치(Storage Location)는 공장(Plant) 하위에 존재하는 재고 관리의 최소 단위입니다. 하나의 Plant 안에 여러 개의 Storage Location이 존재할 수 있으며,

개요 및 핵심 포인트 구매·조달 모듈에서 공급사(Vendor/Supplier) 정보를 가져올 때 여전히 SELECT * FROM lfa1 코드를 그대로 유지하고 있다면, S/4HANA 전환 시점에 큰 리팩터링 부담을 떠안게 됩니다. SAP는 S/4HANA 이후 Virtual Data M

개요 및 이 글에서 다루는 것 S/4HANA 환경에서 회계 라인 아이템을 조회할 때, 여전히 많은 개발자가 습관적으로 SELECT ... FROM bseg 를 작성합니다. 하지만 S/4HANA에서는 이 접근이 매우 위험합니다. BSEG는 여전히 존재하지만, ACDOCA(Universal

MSEG 직접 조회를 멈춰야 하는 순간 SAP S/4HANA 도입 후에도 자재 문서(GR/GI/전송)를 조회할 때 여전히 MSEG 와 MKPF 를 INNER JOIN 으로 엮는 코드를 자주 만납니다. 이 방식은 ECC 시절에는 표준이었지만, ABAP Cloud 환경에서는 릴리스 미보장·

이 예제로 얻는 것 SAP S/4HANA 환경에서 구매 요청(Purchase Requisition) 데이터를 조회할 때, 전통적으로는 EBAN 테이블을 직접 SELECT 해왔습니다. 하지만 ABAP Cloud, RAP, Fiori Elements 시대에는 I_PurchaseRequisi
이 예제로 무엇을 얻어갈 수 있는가 SAP S/4HANA 환경에서 구매 오더 아이템 데이터를 다룰 때 개발자들이 가장 먼저 마주치는 선택은 "EKPO를 직접 SELECT할 것인가, 아니면 I_PurchaseOrderItem CDS 뷰를 쓸 것인가"입니다. 이 글에서는 S/4HANA Vi

개요와 이 글에서 얻어갈 것 S/4HANA 환경에서 판매 오더 헤더 데이터를 조회할 때 여전히 VBAK 테이블을 직접 SELECT 하는 코드를 자주 보게 됩니다. 하지만 SAP는 S/4HANA 이후로 판매 오더 헤더 정보를 표준 CDS 뷰인 I_SalesOrder 를 통해 노출하도록 아
개요와 이 글에서 얻어갈 것 ABAP CDS 뷰는 SAP S/4HANA 개발의 심장부에 해당합니다. 하지만 CDS 뷰에 담긴 조인 조건, 필드 계산식, 어소시에이션, Access Control 로직이 복잡해질수록 "실제 DB 데이터로만 검증할 수밖에 없다"는 관성이 생깁니다. 그 결과

개요와 이 글에서 다룰 범위 CDS(Core Data Services) 기반 애플리케이션에서 데이터 노출은 뷰 정의만으로 끝나지 않습니다. 어떤 사용자가 어떤 로우(row)를 조회할 수 있는지, 어떤 조직·회사코드·판매조직에 속한 데이터만 볼 수 있는지 결정하는 계층이 필요합니다. 이

이 글에서 다루는 내용과 도달 지점 Fiori Elements 앱에서 사용자가 입력 필드 옆의 돋보기 아이콘(F4)을 눌렀을 때 뜨는 값 도움말(Value Help)은 UX 품질을 좌우하는 핵심 요소입니다. 이 글은 ABAP CDS View에 @Consumption.ValueHelpDe

1. VDM이란 무엇인가 — 탄생 배경과 설계 목적 VDM(Virtual Data Model)은 SAP S/4HANA에서 데이터베이스 테이블을 그대로 노출하지 않고, 의미 있는 비즈니스 개체(엔티티) 단위로 재조립해 제공하기 위한 CDS(Core Data Services) 기반의 논리적

1. 개요 및 무엇을 얻어갈 것인가 SAP S/4HANA 환경에서 CDS(Core Data Services) 뷰를 작성하다 보면 I_SalesOrder , C_SalesOrderTP , P_SalesOrderCube 같은 접두사가 붙은 이름들을 마주치게 됩니다. 이 접두사들은 단순한 명

개요 및 핵심 포인트 SAP 시스템은 태생부터 다국어 환경이었습니다. 독일 본사에서 만든 마스터 데이터가 미국 지사에서는 영어로, 한국 지사에서는 한국어로 표시되어야 하는 요구사항이 기본값이었죠. 전통적인 ABAP 개발자라면 이런 상황에서 반사적으로 "T 테이블(Text 테이블)을 만들

개요 및 이 글에서 얻어갈 것 CDS(Core Data Services) 뷰를 여러 화면과 리포트에서 재사용하다 보면, 같은 로직인데 필터 값만 다른 뷰를 여러 개 복제하게 되는 상황이 반복됩니다. 예를 들어 "특정 회사코드의 판매오더"를 조회하는 뷰와 "특정 통화의 판매오더"를 조회하

CDS에서 세션 변수가 필요한 이유 ABAP CDS 뷰를 개발하다 보면 "현재 로그인한 사용자가 담당하는 데이터만 보여줘야 한다", "오늘 날짜 기준 유효한 계약만 조회해야 한다" 같은 요구사항을 자주 만납니다. 전통적인 ABAP 리포트에서는 sy-uname , sy-datum 같은 시
1. CDS 세션 변수가 필요한 이유 ABAP CDS에서 뷰를 작성하다 보면 "지금 접속한 사용자가 담당한 오더만 보여줘"라거나 "오늘 만료되는 계약만 조회해줘"와 같은 요구를 자주 받게 됩니다. 이때 화면에서 파라미터를 매번 넘겨받아 처리하면 개발자·사용자 모두 피곤합니다. CDS $
1. CDS Table Function이 필요한 이유 일반 CDS View는 선언형 SQL 기반의 데이터 뷰라는 강점이 있지만, 실제 프로젝트에서 벽에 부딪히는 순간이 있습니다. 예를 들어 매출 데이터를 지역별로 집계하되, 특정 월에만 환율을 재계산해서 반영 하고 싶다거나, 고객별 주문
1. 왜 표준 CDS View를 직접 수정하면 안 되는가 S/4HANA 도입 프로젝트에서 가장 흔하게 마주치는 유혹 중 하나는 "SAP 표준 CDS View에 필드 하나만 슬쩍 추가하면 되지 않을까"라는 발상입니다. 예를 들어 I_SalesOrderItem 에 자사 특화 프로모션 코드