@requires vs @restrict — CAP 보안 3단계 #shorts #SAP #CAPforNode
📖 개요: 인증 없는 CAP 서비스가 위험한 이유 CAP(Cloud Application Programming Model) 서비스는 어노테이션 한 줄 없이도 배포가 됩니다. 문제는 바로 그 지점입니다. @requires 가 없는 서비스는 BTP에 올라간 순간부터 OData 엔드포인트
📖 개요: 인증 없는 CAP 서비스가 위험한 이유 CAP(Cloud Application Programming Model) 서비스는 어노테이션 한 줄 없이도 배포가 됩니다. 문제는 바로 그 지점입니다. @requires 가 없는 서비스는 BTP에 올라간 순간부터 OData 엔드포인트
📖 개요 — 이 글에서 다루는 내용 ABAP 시스템에서 외부 REST API를 호출해야 하는 순간은 반드시 옵니다. 환율 조회, 배송 추적, 사내 미들웨어 연동까지, 온프레미스 SAP ECC / S/4HANA(온프레미스) 환경에서는 CL_HTTP_CLIENT 가 사실상 표준 진입점입니
📖 개요: 이 글에서 다루는 내용 SAP Fiori에서 마스터-디테일 화면을 만들 때 가장 흔한 고민은 "리스트에서 항목을 클릭하면 전체 화면이 Object Page로 넘어가 버려서 목록 맥락을 잃는다"는 점입니다. Flexible Column Layout(이하 FCL)을 적용하면 별
1. RAP에서 집계 데이터가 필요한 이유 RAP(ABAP RESTful Application Programming Model)로 만든 트랜잭션 앱은 개별 레코드의 생성·수정에는 강하지만, 실무에서는 "이번 달 영업조직별 매출 합계", "고객별 주문 건수" 같은 집계 관점 의 화면이 반
📖 개요: 이 글에서 다루는 내용 비용 센터 계층, 예산 항목 트리, 프로젝트 WBS처럼 부모-자식 관계가 재귀적으로 반복되는 데이터 는 엔터프라이즈 애플리케이션에서 가장 자주 등장하는 구조 중 하나입니다. 그런데 RAP(RESTful ABAP Programming Model)은 기본
📖 이 글에서 다루는 것 SAP 권한 설계의 중심에는 PFCG(Profile Generator) 트랜잭션이 있습니다. 같은 PFCG 안에서도 Single Role, Composite Role, Derived Role은 내부 동작과 적용 시점이 완전히 다르며, 이 선택을 잘못하면 권한
1. Criticality가 없을 때 Fiori 앱이 왜 밋밋한가 RAP(ABAP RESTful Application Programming Model)으로 List Report 앱을 처음 만들어 보면 데이터는 잘 나오는데 화면이 이상하게 밋밋합니다. 판매 오더가 "지연" 상태든 "완료"
📖 개요와 이 글에서 다루는 내용 SAP S/4HANA에서 설비 정비·현장 서비스가 끝나면 "실제로 무엇을 얼마나 수행했는가"를 기록하는 문서가 서비스 확정(Service Confirmation) 입니다. 이를 조회하는 표준 릴리스 CDS 뷰가 I_ServiceConfirmation
개요 — 이 글에서 다루는 것 RAP(ABAP RESTful Application Programming Model)로 만든 Fiori Elements 앱에서 할인율을 바꿨는데 총액이 화면에 바로 반영되지 않는 경험, 한 번쯤 있으실 겁니다. 서버의 Determination은 분명히 재계
BNKA 테이블의 구조와 한계 — 왜 직접 SELECT하면 안 되는가 SAP에서 은행 관련 데이터를 다뤄본 개발자라면 BNKA (은행 마스터), T012 (하우스 뱅크), T012K (하우스 뱅크 계좌) 세 테이블을 직접 SELECT하는 코드를 한 번쯤 봤을 것입니다. BNKA는 은행
1. BNKA를 아직도 직접 조회하고 있나요? — 개요와 목표 S/4HANA 이전 시절부터 ABAP를 다뤄온 개발자라면 은행 관련 데이터를 조회할 때 습관적으로 SELECT ... FROM bnka 를 작성해 왔을 것입니다. 하지만 SAP S/4HANA 환경, 특히 클린 코어(Clean
RAP Composition Tree란 무엇인가 — 계층 BO의 설계 원칙 SAP RAP(ABAP RESTful Application Programming Model)에서 비즈니스 오브젝트(BO)는 단일 엔티티가 아니라 트리 구조 로 설계됩니다. 판매 오더를 떠올려 보면 이해가 쉽습니다
I_WorkCenterCapacity CDS 뷰 개요 — 왜 CRHD를 버려야 하는가 SAP S/4HANA의 생산 관련 개발에서 작업장(Work Center) 능력 데이터를 다룰 때, 많은 개발자가 여전히 CRHD , CRCA , KAKO 테이블을 직접 조인하는 레거시 방식을 사용합니다
개요 — 이 글에서 얻어갈 것 SAP S/4HANA에서 구매 정보 기록(Purchasing Info Record)을 조회할 때, 여전히 EINA와 EINE 테이블을 직접 조인하는 코드를 작성하고 계신가요? 이 글은 표준 CDS View인 I_PurchasingInfo 를 활용해 테이블
개요 — 이 글에서 다루는 것 UI5에서 OData V4 모델을 쓰면서도 생성·수정·삭제(CUD)를 여전히 fetch 나 수동 AJAX 호출로 처리하는 코드를 실무에서 자주 봅니다. OData V4 모델( sap.ui.model.odata.v4.ODataModel )은 V2와 설계 철학
📖 개요 — ETag 없는 RAP 서비스는 "나중에 저장한 사람이 이긴다" 두 명의 담당자가 같은 정비 오더를 동시에 열어 수정한다고 가정해 봅시다. A가 우선순위를 바꿔 저장하고, 몇 초 뒤 B가 상태값을 바꿔 저장하면 — ETag가 없는 RAP 서비스에서는 B의 저장이 A의 변경을
왜 Copy Action이 아닌 Factory Action인가 RAP(RESTful ABAP Programming Model)에서 기존 비즈니스 오브젝트(BO)를 복제하는 요구사항은 실무에서 매우 자주 등장합니다. 예를 들어 판매 오더(SalesOrder)를 그대로 복사해 새 오더 초안
1. I_PurchaseContractItem이 해결하는 문제 구매 계약(Purchasing Contract)은 특정 자재나 서비스를 정해진 기간·조건에 반복 조달하기 위한 아웃라인 협약(Outline Agreement)입니다. SAP ERP 시절에는 EKKO(헤더)/EKPO(아이템)
개요와 이 글에서 얻어갈 것 OData 서비스를 개발하면서 헤더와 아이템을 두 번씩 나눠 호출하고 있다면, 이는 네트워크 왕복(round-trip)을 두 배로 소비하는 안티패턴입니다. 실제로 판매 주문 500건을 화면에 뿌리려고 헤더 GET → 아이템 GET을 순차 호출하면 500 +
개요 및 이 글에서 얻어갈 것 Fiori Launchpad에 앱을 배포했는데 사용자들이 "타일만 봐서는 지금 처리할 일이 있는지 없는지 모르겠다"고 불평한 경험이 있다면, 이 글이 정확히 그 문제를 해결합니다. Static Tile(정적 타일)만 나열된 홈 화면은 사용자에게 매번 앱을