개발자 90%가 놓치는 Deep Insert 함정 #shorts #SAP #RAP
Deep Insert가 필요한 이유 — 기존 방식의 한계 전형적인 주문 처리 화면을 떠올려 봅시다. 사용자는 SalesOrder 헤더를 입력하고, 그 아래에 여러 줄의 OrderItem을 함께 채워 넣은 뒤 한 번의 저장 버튼으로 모두 등록하길 원합니다. 그런데 OData V2 시절 흔
Deep Insert가 필요한 이유 — 기존 방식의 한계 전형적인 주문 처리 화면을 떠올려 봅시다. 사용자는 SalesOrder 헤더를 입력하고, 그 아래에 여러 줄의 OrderItem을 함께 채워 넣은 뒤 한 번의 저장 버튼으로 모두 등록하길 원합니다. 그런데 OData V2 시절 흔
1. %control이란 무엇인가 — RAP의 부분 업데이트 철학 SAP RAP(RESTful ABAP Programming Model)은 OData v4 기반의 트랜잭션 처리를 위해 설계되었습니다. OData v4의 PATCH 요청은 PUT과 달리 "리소스의 일부만 갱신한다"는 의미를
개요 및 이 글에서 다룰 내용 SAP RAP(RESTful ABAP Programming Model)에서 Behavior 핸들러는 각각 독립적인 메서드로 호출되며, 같은 트랜잭션 안에서도 핸들러 간 직접적인 변수 공유가 불가능합니다. 특히 Determination 단계에서 계산한 값이나
test
이 글에서 다루는 내용과 도달 지점 SAP RAP(RESTful Application Programming Model)에서 %cid 는 단일 트랜잭션 내에서 아직 데이터베이스에 커밋되지 않은 신규 인스턴스를 식별하기 위한 임시 키(temporary key)입니다. 특히 부모-자식 관계를
이 글이 답하는 질문 레거시 ABAP 코드를 유지보수하다 보면 MOVE ?TO 나 ?= 연산자로 객체 참조를 다루는 패턴을 흔히 만납니다. 이런 코드는 ABAP 7.40 이후 도입된 CAST 연산자로 대체되어야 합니다. 단순한 문법 변경이 아니라 가독성, 표현식 기반 프로그래밍, 인라인
개요 및 이 글에서 다룰 것 SAP BTP에서 가장 흔하게 발생하는 운영 장애 중 하나가 Quota 초과 입니다. 갑자기 서비스 인스턴스를 만들 수 없거나, 앱 배포가 실패하거나, 라이선스 비용이 예상보다 폭증하는 상황을 사전에 막으려면 Entitlement 구조와 Cockpit 운영,
콘텐츠 준비 중입니다.
abapGit, Jenkins, SAP Piper를 연결해 ABAP 코드 푸시 시 자동으로 빌드와 단위 테스트를 실행하는 CI 파이프라인 구성 3단계를 다룹니다.
UI5 모듈 API 설계 — public vs private 분리 패턴
1. 개요 및 핵심 포인트 UI5 애플리케이션을 BTP에 배포하면 사용자가 페이지를 열 때마다 sap-ui-core.js , Component-preload.js , 컨트롤 라이브러리 등 수백 KB의 정적 리소스가 네트워크로 흘러갑니다. 이 트래픽을 줄이고 초기 로딩을 1초 이하로 끌어
개요 및 핵심 포인트 SAPUI5/OpenUI5 애플리케이션에서 라우팅은 단순한 페이지 전환을 넘어 뷰 인스턴스의 생명주기(Lifecycle) 를 직접 제어하는 핵심 메커니즘입니다. 기본적으로 UI5 라우터는 한 번 생성된 뷰를 메모리에 캐시(cache)하여 재방문 시 빠르게 보여주지만
왜 Embedded Steampunk가 등장했는가 S/4HANA Cloud Private Edition과 On-Premise 시스템에서 클린코어(Clean Core) 원칙을 강제하기 위해 도입된 개발 모델이 바로 Embedded Steampunk 입니다. 기존의 Classic ABAP은
1. 개요 및 이 글의 목표 ABAP 객체지향 설계에서 클래스 간 결합도를 낮추는 두 가지 대표적인 기법이 의존성 주입(Dependency Injection, DI) 과 서비스 로케이터(Service Locator) 패턴입니다. 두 기법 모두 "객체가 자신이 필요로 하는 의존 객체를 직
1. 개요 및 이 글의 목표 ABAP Objects의 Singleton 패턴 은 특정 클래스의 인스턴스가 단일 세션 내에서 단 하나만 존재하도록 보장하는 객체 생성 패턴입니다. 설정 관리자, 캐시, 로거, 데이터베이스 연결과 같이 시스템 전반에서 동일한 상태를 공유해야 하는 컴포넌트를
1. 개요 및 이 글의 목표 SAPUI5에서 날짜를 다루는 컨트롤은 여러 가지가 있지만, 그중에서도 sap.ui.unified.Calendar 는 단순한 입력 필드가 아닌 전체 달력 뷰 를 화면에 펼쳐 보여주는 컨트롤입니다. 예약 시스템, 휴가 신청, 일정 관리 화면처럼 사용자가 한 달
1. 개요 및 이 글에서 얻어갈 것 SAPUI5에서 날짜를 다루는 컨트롤은 여러 가지가 있지만, 화면에 항상 달력을 펼쳐 두고 사용자가 즉시 날짜를 클릭하도록 유도해야 한다면 sap.ui.unified.Calendar 가 가장 적합합니다. sap.m.DatePicker 가 입력 필드를
1. 개요 및 이 글에서 얻어갈 것 ABAP 7.40 SP02부터 도입된 DATA(...) 인라인 선언은 단순한 문법 설탕(syntactic sugar)이 아니라, ABAP 개발 스타일 자체를 바꾼 핵심 기능입니다. 변수를 사용하는 위치 에서 곧바로 선언함으로써 코드의 가독성이 향상되고
개요 및 이 글에서 다루는 것 sap.m.FeedListItem 은 SAPUI5 모바일 라이브러리에서 제공하는 피드/타임라인 전용 리스트 아이템으로, 일반 StandardListItem 으로는 표현하기 까다로운 "누가, 언제, 무엇을 말했는가"의 3요소를 한 줄에 자연스럽게 담아냅니다.
개요 및 이 글에서 다루는 것 ABAP RAP(RESTful Application Programming Model)에서 비즈니스 로직을 구현할 때 가장 자주 마주치는 함정 중 하나가 바로 FAILED와 REPORTED 테이블의 오용 입니다. 두 구조는 이름이 비슷하지만 역할이 완전히 다