아직도 BKPF 직접 쓴다면 — CDS 뷰 3가지 #shorts #SAP #ABAP
개요 및 이 글에서 배우는 것 SAP S/4HANA 환경에서 재무 회계 문서를 조회할 때, 많은 ABAP 개발자들이 여전히 BKPF(회계 문서 헤더)와 BSEG(회계 문서 항목)를 직접 JOIN하는 방식을 사용합니다. 그러나 S/4HANA에서는 이러한 접근이 성능 저하, 유지보수 어려움
개요 및 이 글에서 배우는 것 SAP S/4HANA 환경에서 재무 회계 문서를 조회할 때, 많은 ABAP 개발자들이 여전히 BKPF(회계 문서 헤더)와 BSEG(회계 문서 항목)를 직접 JOIN하는 방식을 사용합니다. 그러나 S/4HANA에서는 이러한 접근이 성능 저하, 유지보수 어려움
개요와 이 글에서 얻어갈 것 CDS(Core Data Services)에서 @Annotation 은 단순한 주석이 아닙니다. Fiori Elements가 자동으로 렌더링하는 리스트 컬럼, OData $metadata에 노출되는 필드의 의미론적 타입, 검색 우선순위, VDM(Virtual
개요와 이 글에서 얻을 것 ABAP 7.40 이후 도입된 REDUCE 는 컬렉션을 단일 값으로 축약(reduce)하는 표현식 기반 구문입니다. 과거에는 합계·최대값·문자열 병합을 위해 DATA 선언 → LOOP AT → 누산 → ENDLOOP 4단계를 거쳐야 했지만, REDUCE 는 이
개요 및 목표 SAP S/4HANA Cloud와 On-Premise 환경에서 표준으로 제공되는 Business Object(BO)를 확장할 때, 과거처럼 APPEND 나 소스 수정으로 접근하면 다음 릴리스에서 필드 충돌·활성화 실패·업그레이드 롤백이라는 값비싼 대가를 치릅니다. RAP(
이 글에서 다룰 내용과 도달 지점 SAP Integration Suite의 Cloud Integration(iFlow) 안에서 데이터를 변환할 때 개발자가 가장 먼저 마주하는 결정은 Graphical Message Mapping 을 쓸 것인가, 아니면 XSLT Mapping 을 쓸 것인
1. 왜 분위수 함수가 실무 분석의 핵심인가 매출 데이터, 응답 시간, 재고 회전율 같은 수치형 지표를 다룰 때 평균(AVG)만으로는 데이터의 진짜 모습을 놓치기 쉽습니다. 한 명의 초대형 고객이 전체 평균을 왜곡시키거나, 응답 시간의 상위 5%가 서비스 품질을 좌우하는 상황은 SAP
1. 왜 LAG/LEAD가 필요한가 — 시계열 비교의 도전 매출, 재고, 센서 측정값, 로그 이벤트처럼 시간 축을 따라 흐르는 데이터를 분석할 때 가장 자주 등장하는 요구사항은 "이전 값 대비 얼마나 변했는가" 혹은 "다음 값과 비교했을 때 어떤 추세인가"입니다. 예를 들어 어제 대비
개요 및 이 글에서 다루는 내용 SAP RAP(RESTful ABAP Programming Model)에서 Action은 비즈니스 오브젝트에 상태 변경 로직을 담는 핵심 구성 요소입니다. 하지만 실무에서 Action을 구현할 때 RESULT 파라미터를 제대로 채우지 않아 Fiori El
VBAK 직접 조회의 문제점과 한계 SAP ERP 시절부터 SD 모듈을 다뤄본 개발자라면 VBAK 테이블에 익숙할 것입니다. 견적(Quotation), 수주(Sales Order), 계약(Contract) 등 모든 판매 문서의 헤더가 이 하나의 테이블에 저장되기 때문에, VA21로 생성
구매 오더 삭제 시 라인/스케줄이 남는 문제 파헤치기 ERP 실무에서 가장 흔히 만나는 문제 중 하나가 PurchaseOrder(구매 오더) 를 삭제했는데 PurchaseOrderItem(라인 아이템) 이나 PurchaseOrderItemSchedule(납기 일정) 이 데이터베이스에 그
개요와 이 글에서 다루는 것 ABAP 7.40 이후 도입된 인라인 선언( DATA(...) , FINAL(...) )과 표현식 기반 연산자( VALUE , CORRESPONDING , FILTER , REDUCE , FOR )는 코드를 극적으로 짧게 만들어 줍니다. 그러나 실제 프로젝트
개요 및 이 글에서 얻어갈 것 SAP Fiori 앱을 회사에 배포하다 보면 반드시 마주치는 요구사항이 있습니다. "우리 회사 CI 컬러로 바꿔주세요", "로고를 헤더에 넣어주세요", "폰트를 사내 표준 Pretendard로 통일해주세요" 같은 브랜딩 요청입니다. 이때 CSS를 직접 오버
이 글에서 다루는 것 RAP(RESTful ABAP Programming Model)로 구축한 비즈니스 오브젝트는 기본적으로 모든 사용자에게 열려 있는 문 과 같습니다. BDEF(Behavior Definition)에 authorization 절을 명시하지 않으면 CREATE·UPDAT
개요 및 배경 SAP HANA 성능 튜닝을 시작할 때 가장 흔한 실패 원인은 "느낌"으로 튜닝하는 것입니다. 어떤 SQL이 얼마나 자원을 소모하는지 데이터 없이 인덱스를 추가하거나 쿼리를 뜯어고치면, 오히려 다른 쿼리의 성능이 떨어지거나 리소스가 낭비됩니다. Expensive State
개요 및 이 글에서 얻어갈 것 Fiori 앱을 오픈하는 순간 사용자 눈에 처음 보이는 것은 로딩 스피너입니다. 초기 렌더링이 3초를 넘어가면 이탈률이 급격히 상승한다는 UX 통계가 있는데, Fiori/UI5 앱의 경우 라이브러리 파일이 워낙 방대하다 보니 최적화 전략 없이는 첫 화면(T
개요 및 이 글에서 다루는 것 SAP Cloud Application Programming Model(CAP)로 서비스를 만들다 보면 표준 CRUD로는 표현이 어려운 비즈니스 오퍼레이션이 반드시 등장합니다. 예를 들어 구매 요청 승인 , 재고 가용성 조회 , 주문 취소 같은 동작은 단순
이 글에서 다룰 것 UI5에서 다량의 비즈니스 데이터를 화면에 뿌릴 때 가장 먼저 부딪히는 고민은 "어떤 컨트롤을 써야 하지?"입니다. sap.m.Table , sap.m.List , sap.m.Tree 는 겉보기에는 비슷하지만, 데이터 구조와 사용자 시나리오에 따라 명확히 다른 선택을
1. 개요 및 이 글에서 다루는 범위 ABAP 개발 현장에서 "테스트는 나중에", "DB에 값 넣고 눈으로 확인하면 되지"라는 관성은 여전히 강합니다. 그러나 S/4HANA 전환과 Clean Core 원칙이 확산되면서, DB 의존 없는 단위 테스트가 품질 게이트의 표준으로 자리잡고 있습
1. RAP 디버깅이 왜 유독 까다로운가 ABAP RESTful Application Programming Model(RAP)은 CDS 뷰, Behavior Definition(BDEF), Behavior Implementation(BIL) 클래스, Service Definition,
이 글의 목적과 도달점 SAP RAP(ABAP RESTful Application Programming Model)로 Fiori Elements 앱을 개발하다 보면, 개발 초기에는 @UI 어노테이션을 CDS 뷰 안에 직접 넣는 경우가 많습니다. 처음에는 편리해 보이지만, 필드가 30개를