헤더-아이템 따로 조회 그만 — $expand 3단계 #shorts #SAP #RAP
개요와 이 글에서 얻어갈 것 OData 서비스를 개발하면서 헤더와 아이템을 두 번씩 나눠 호출하고 있다면, 이는 네트워크 왕복(round-trip)을 두 배로 소비하는 안티패턴입니다. 실제로 판매 주문 500건을 화면에 뿌리려고 헤더 GET → 아이템 GET을 순차 호출하면 500 +
개요와 이 글에서 얻어갈 것 OData 서비스를 개발하면서 헤더와 아이템을 두 번씩 나눠 호출하고 있다면, 이는 네트워크 왕복(round-trip)을 두 배로 소비하는 안티패턴입니다. 실제로 판매 주문 500건을 화면에 뿌리려고 헤더 GET → 아이템 GET을 순차 호출하면 500 +
개요 및 목표 SAP S/4HANA Cloud와 On-Premise 환경에서 표준으로 제공되는 Business Object(BO)를 확장할 때, 과거처럼 APPEND 나 소스 수정으로 접근하면 다음 릴리스에서 필드 충돌·활성화 실패·업그레이드 롤백이라는 값비싼 대가를 치릅니다. RAP(
1. 왜 분위수 함수가 실무 분석의 핵심인가 매출 데이터, 응답 시간, 재고 회전율 같은 수치형 지표를 다룰 때 평균(AVG)만으로는 데이터의 진짜 모습을 놓치기 쉽습니다. 한 명의 초대형 고객이 전체 평균을 왜곡시키거나, 응답 시간의 상위 5%가 서비스 품질을 좌우하는 상황은 SAP
개요 및 이 글에서 다루는 내용 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(납기 일정) 이 데이터베이스에 그
이 글에서 다루는 것 RAP(RESTful ABAP Programming Model)로 구축한 비즈니스 오브젝트는 기본적으로 모든 사용자에게 열려 있는 문 과 같습니다. BDEF(Behavior Definition)에 authorization 절을 명시하지 않으면 CREATE·UPDAT
개요 및 이 글에서 얻어갈 것 Fiori 앱을 오픈하는 순간 사용자 눈에 처음 보이는 것은 로딩 스피너입니다. 초기 렌더링이 3초를 넘어가면 이탈률이 급격히 상승한다는 UX 통계가 있는데, Fiori/UI5 앱의 경우 라이브러리 파일이 워낙 방대하다 보니 최적화 전략 없이는 첫 화면(T
이 글에서 다루는 내용과 확인 체크리스트 RAP(RESTful ABAP Programming Model)로 Business Object를 개발할 때 가장 흔하게 놓치는 부분이 바로 Behavior Implementation Class에 대한 단위 테스트 입니다. UI만 눈으로 확인하고
이 글에서 다루는 것 RAP(ABAP RESTful Application Programming Model) 기반으로 서비스를 노출할 때, 개발자가 반드시 마주치는 갈림길이 있습니다. 바로 Service Binding 유형 선택입니다. 같은 Service Definition을 만들었어도,
RAP Mass Action이란 무엇인가 RAP(RESTful Application Programming Model)에서 Mass Action 은 List Report의 여러 행을 선택한 뒤 단일 액션 호출로 한꺼번에 처리하는 메커니즘입니다. 예를 들어 주문 목록에서 100건을 체크박스
이 글에서 다루는 것 RAP(ABAP RESTful Application Programming Model)에서 Service Binding은 서비스를 실제 소비 가능한 프로토콜로 노출하는 마지막 관문입니다. 그런데 개발자들이 자주 놓치는 부분이 있습니다. 바로 Binding Type을
개요 및 이 글에서 얻어갈 것 SAP S/4HANA 환경에서 배송(Outbound Delivery) 데이터를 조회할 때, 여전히 관행처럼 LIPS(배송 아이템)와 LIKP(배송 헤더) 물리 테이블을 직접 SELECT하는 코드가 많습니다. 이 접근은 몇 년 전까지는 사실상 표준이었지만,
이 글의 방향과 확인 포인트 ABAP 개발자라면 한 번쯤은 "여기서 FIELD-SYMBOLS를 써야 하나, 아니면 REF TO로 참조 변수를 만들어야 하나?" 하는 갈림길에 서게 됩니다. 둘 다 "값을 복사하지 않고 원본을 가리킨다"는 공통점이 있지만, 내부 동작 방식과 적합한 시나리오
개요 및 이 글에서 다루는 것 SAP S/4HANA를 다루다 보면 I_Material 과 I_Product 라는 두 개의 CDS 뷰를 자주 마주치게 됩니다. 둘 다 자재 마스터의 헤더 정보를 노출하고, 내부적으로는 대부분 MARA 테이블에서 데이터를 가져옵니다. 그런데도 SAP는 왜 두
개요와 이 글에서 다룰 범위 CDS(Core Data Services) 기반 애플리케이션에서 데이터 노출은 뷰 정의만으로 끝나지 않습니다. 어떤 사용자가 어떤 로우(row)를 조회할 수 있는지, 어떤 조직·회사코드·판매조직에 속한 데이터만 볼 수 있는지 결정하는 계층이 필요합니다. 이
1. 개요 및 무엇을 얻어갈 것인가 SAP S/4HANA 환경에서 CDS(Core Data Services) 뷰를 작성하다 보면 I_SalesOrder , C_SalesOrderTP , P_SalesOrderCube 같은 접두사가 붙은 이름들을 마주치게 됩니다. 이 접두사들은 단순한 명
개요 및 이 글에서 얻어갈 것 CDS(Core Data Services) 뷰를 여러 화면과 리포트에서 재사용하다 보면, 같은 로직인데 필터 값만 다른 뷰를 여러 개 복제하게 되는 상황이 반복됩니다. 예를 들어 "특정 회사코드의 판매오더"를 조회하는 뷰와 "특정 통화의 판매오더"를 조회하
왜 Semantics 어노테이션이 필수인가 ABAP CDS View를 처음 설계할 때 개발자들이 가장 많이 놓치는 부분이 바로 의미 정보(semantics) 입니다. DB 컬럼 관점에서 보면 NET_AMOUNT 는 그저 DEC(15,2) 타입의 숫자일 뿐이고, QUANTITY 도 DEC
개요 및 실전 배포 목표 SAP BTP Cockpit은 시각적으로 편리하지만, 반복 배포·CI/CD·원격 서버 작업에서는 오히려 병목이 됩니다. 이 글은 Cloud Foundry CLI(cf CLI) 하나만으로 로그인부터 서비스 바인딩, 매니페스트 배포, 롤백까지 전체 흐름을 완성하는