VBAK 없이 견적 조회 — I_Quotation CDS 3가지 #shorts #SAP #ABAP
VBAK 직접 조회의 문제점과 한계 SAP ERP 시절부터 SD 모듈을 다뤄본 개발자라면 VBAK 테이블에 익숙할 것입니다. 견적(Quotation), 수주(Sales Order), 계약(Contract) 등 모든 판매 문서의 헤더가 이 하나의 테이블에 저장되기 때문에, VA21로 생성
VBAK 직접 조회의 문제점과 한계 SAP ERP 시절부터 SD 모듈을 다뤄본 개발자라면 VBAK 테이블에 익숙할 것입니다. 견적(Quotation), 수주(Sales Order), 계약(Contract) 등 모든 판매 문서의 헤더가 이 하나의 테이블에 저장되기 때문에, VA21로 생성
구매 오더 삭제 시 라인/스케줄이 남는 문제 파헤치기 ERP 실무에서 가장 흔히 만나는 문제 중 하나가 PurchaseOrder(구매 오더) 를 삭제했는데 PurchaseOrderItem(라인 아이템) 이나 PurchaseOrderItemSchedule(납기 일정) 이 데이터베이스에 그
개요 및 이 글에서 다루는 것 오래된 ABAP 코드는 대부분 7.02 이전 문법으로 작성되어 있어, 변수 선언이 상단에 몰려 있거나 내부 테이블 처리에 LOOP...MODIFY 패턴이 반복됩니다. ABAP 7.4부터 도입된 New Syntax 는 이러한 코드를 절반 이하 라인으로 줄이면
개요와 이 글에서 다루는 것 ABAP 7.40 이후 도입된 인라인 선언( DATA(...) , FINAL(...) )과 표현식 기반 연산자( VALUE , CORRESPONDING , FILTER , REDUCE , FOR )는 코드를 극적으로 짧게 만들어 줍니다. 그러나 실제 프로젝트
개요 및 이 글의 목표 SAP Fiori 앱을 열었을 때 "권한이 없다"는 메시지 대신 빈 화면이나 일부 데이터만 노출되는 경험을 한 적이 있을 것입니다. 이는 Fiori 아키텍처가 여러 계층(Launchpad → ICF → OData → CDS → DB)에서 각각 다른 권한 체크를 수
개요 및 이 글에서 얻어갈 것 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 의존 없는 단위 테스트가 품질 게이트의 표준으로 자리잡고 있습
이 글에서 다루는 내용과 확인 포인트 SAPUI5 애플리케이션에서 사용자에게 정보를 전달하는 두 가지 대표 위젯인 sap.m.MessageBox 와 sap.m.MessageToast 는 얼핏 비슷해 보이지만 UX 측면에서 완전히 다른 역할을 담당합니다. 이 글은 두 컴포넌트의 동작 원리
1. RAP 디버깅이 왜 유독 까다로운가 ABAP RESTful Application Programming Model(RAP)은 CDS 뷰, Behavior Definition(BDEF), Behavior Implementation(BIL) 클래스, Service Definition,
개요 및 핵심 포인트 RAP(RESTful Application Programming Model) 기반 서비스에서 대량 데이터를 다룰 때 가장 흔히 발생하는 문제 중 하나가 바로 "필터링 누락으로 인한 전체 스캔"입니다. 프론트엔드에서 $filter , $top , $skip 쿼리를 던
이 글의 목적과 도달점 SAP RAP(ABAP RESTful Application Programming Model)로 Fiori Elements 앱을 개발하다 보면, 개발 초기에는 @UI 어노테이션을 CDS 뷰 안에 직접 넣는 경우가 많습니다. 처음에는 편리해 보이지만, 필드가 30개를
placeholder
COEP의 시대가 끝났다 — S/4HANA 비용 아키텍처 전환 ECC 시절 원가회계 담당자에게 COEP는 성전(聖典)이었다. 실적 라인 아이템은 여기 있었고, 배부·정산·재분배 결과도 모두 여기로 흘러들었다. 그러나 S/4HANA로 넘어오면서 회계 데이터 모델은 Universal Jou
STRING_AGG가 필요한 이유 — 여러 행을 한 줄로 관계형 데이터베이스에서 자주 마주치는 상황이 있습니다. 하나의 고객이 여러 개의 주문을 갖고, 하나의 주문이 여러 개의 상품 라인을 갖습니다. 이 데이터를 화면이나 리포트에 표시할 때 "고객 A: 노트북, 마우스, 키보드" 같은
CAP 프로젝트에서 HANA Cloud 연결이 실패하는 진짜 이유 SAP CAP(Cloud Application Programming) 프로젝트를 처음 HANA Cloud에 연결하려는 개발자들이 공통으로 겪는 상황이 있다. cds watch 로 로컬에서 잘 돌아가던 서비스가 HANA C