아직도 sy-subrc? Exception Class 3단계 #shorts #SAP #ABAP
개요 및 이 글에서 다루는 것 ABAP 개발자라면 CALL FUNCTION 뒤에 무의식적으로 IF sy-subrc <> 0 를 붙이는 습관이 있을 것이다. 하지만 sy-subrc = 4 가 의미하는 바가 "레코드 없음"인지 "권한 오류"인지 "락 실패"인지는 매뉴얼을 뒤져야
개요 및 이 글에서 다루는 것 ABAP 개발자라면 CALL FUNCTION 뒤에 무의식적으로 IF sy-subrc <> 0 를 붙이는 습관이 있을 것이다. 하지만 sy-subrc = 4 가 의미하는 바가 "레코드 없음"인지 "권한 오류"인지 "락 실패"인지는 매뉴얼을 뒤져야
개요와 이 글에서 얻어갈 것 OData 서비스를 개발하면서 헤더와 아이템을 두 번씩 나눠 호출하고 있다면, 이는 네트워크 왕복(round-trip)을 두 배로 소비하는 안티패턴입니다. 실제로 판매 주문 500건을 화면에 뿌리려고 헤더 GET → 아이템 GET을 순차 호출하면 500 +
개요 및 이 글에서 얻어갈 것 Fiori Launchpad에 앱을 배포했는데 사용자들이 "타일만 봐서는 지금 처리할 일이 있는지 없는지 모르겠다"고 불평한 경험이 있다면, 이 글이 정확히 그 문제를 해결합니다. Static Tile(정적 타일)만 나열된 홈 화면은 사용자에게 매번 앱을
Draft 상태 관리의 핵심: Admin 필드란 무엇인가 SAP RAP(RESTful ABAP Programming Model)에서 Draft 기능은 사용자가 데이터를 편집하는 동안 임시로 보관하고, 여러 세션을 넘나들면서도 작업을 이어갈 수 있게 하는 매우 중요한 메커니즘이다. 이 D
RAP F4 Value Help가 UX와 데이터 무결성에 미치는 영향 Fiori Elements 화면에서 사용자가 입력 필드를 클릭했을 때 뜨는 조회 팝업, 이른바 F4 Help(Value Help)는 단순한 편의 기능이 아닙니다. 이 팝업은 사용자가 잘못된 코드를 입력해서 서버 왕복
개요 및 이 글에서 배우는 것 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 을 쓸 것인
개요 및 이 글에서 다루는 내용 SAP RAP(RESTful ABAP Programming Model)에서 Action은 비즈니스 오브젝트에 상태 변경 로직을 담는 핵심 구성 요소입니다. 하지만 실무에서 Action을 구현할 때 RESULT 파라미터를 제대로 채우지 않아 Fiori El
개요 및 이 글에서 다룰 것 ABAP RESTful Application Programming Model(RAP)에서 비즈니스 오브젝트(BO)에 파일 첨부 기능을 얹는 작업은 겉으로 보면 단순해 보이지만, Stream 어노테이션과 content type 처리를 놓치면 Fiori Elem
구매 오더 삭제 시 라인/스케줄이 남는 문제 파헤치기 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)에서 각각 다른 권한 체크를 수
이 글에서 다루는 것 RAP(RESTful ABAP Programming Model)로 구축한 비즈니스 오브젝트는 기본적으로 모든 사용자에게 열려 있는 문 과 같습니다. BDEF(Behavior Definition)에 authorization 절을 명시하지 않으면 CREATE·UPDAT
개요 및 이 글에서 얻어갈 것 Fiori 앱을 오픈하는 순간 사용자 눈에 처음 보이는 것은 로딩 스피너입니다. 초기 렌더링이 3초를 넘어가면 이탈률이 급격히 상승한다는 UX 통계가 있는데, Fiori/UI5 앱의 경우 라이브러리 파일이 워낙 방대하다 보니 최적화 전략 없이는 첫 화면(T
이 글에서 다룰 것 UI5에서 다량의 비즈니스 데이터를 화면에 뿌릴 때 가장 먼저 부딪히는 고민은 "어떤 컨트롤을 써야 하지?"입니다. sap.m.Table , sap.m.List , sap.m.Tree 는 겉보기에는 비슷하지만, 데이터 구조와 사용자 시나리오에 따라 명확히 다른 선택을
1. 개요 및 이 글에서 다루는 범위 ABAP 개발 현장에서 "테스트는 나중에", "DB에 값 넣고 눈으로 확인하면 되지"라는 관성은 여전히 강합니다. 그러나 S/4HANA 전환과 Clean Core 원칙이 확산되면서, DB 의존 없는 단위 테스트가 품질 게이트의 표준으로 자리잡고 있습