HANA 계산 컬럼 vs SELECT — 실측 성능 비교 #shorts #SAP #HANA
📖 개요와 이 글의 목표 SAP HANA Cloud에서 수량 × 단가 × (1 - 할인율) 같은 파생 값을 어디서 계산할지는 생각보다 성능에 큰 영향을 줍니다. 테이블에 계산형 컬럼(Generated/Calculated Column)으로 미리 정의해 두는 방식과, 매번 SELECT 문
📖 개요와 이 글의 목표 SAP HANA Cloud에서 수량 × 단가 × (1 - 할인율) 같은 파생 값을 어디서 계산할지는 생각보다 성능에 큰 영향을 줍니다. 테이블에 계산형 컬럼(Generated/Calculated Column)으로 미리 정의해 두는 방식과, 매번 SELECT 문
개요: 저장 버튼 없이 화면이 스스로 갱신되는 원리 Fiori Elements 앱에서 수량 필드를 바꿨는데 총액이 그대로라면, 사용자는 "이 앱이 계산을 안 하나?"라고 느낍니다. 백엔드 Determination은 이미 값을 다시 계산했지만, 브라우저가 그 사실을 모르는 것이 문제입니다
개요: 핸들러 실행 순서를 알아야 하는 이유 CAP Java(SAP Cloud Application Programming Model, Java 런타임)에서 커스텀 로직은 @Before , @On , @After 세 가지 페이즈(Phase)의 이벤트 핸들러로 작성합니다. 문제는 이 세 페
S/4HANA 이관에서 커스텀 코드가 가장 큰 위험인 이유 S/4HANA 전환 프로젝트에서 예산 초과와 일정 지연의 가장 흔한 원인은 표준 기능이 아니라 수십 년간 쌓인 커스텀 ABAP 코드 입니다. ECC 시절 작성된 Z 프로그램은 S/4HANA에서 사라진 테이블(KONV, VBUK
📖 개요 및 이 글에서 다루는 내용 매출 리포트를 만들 때 주문이 없는 날짜가 통째로 사라져 차트가 끊겨 보인 경험이 있다면, 이 글이 해결책이 됩니다. SAP HANA의 SERIES_GENERATE 계열 함수는 시작값·종료값·증가 간격만 지정하면 날짜, 타임스탬프, 숫자 시퀀스를 테
📖 개요와 목표 CAP Node.js 프로젝트에서 jest만 설치하고 서비스 핸들러를 테스트하면 service is undefined , no model loaded 같은 에러로 시작부터 막히는 경우가 많습니다. 이 글은 구매 주문(PurchaseOrder) 서비스를 예제로, @sap
버튼이 화면에 아예 나타나지 않는 이유 — 흔한 실패 시나리오 RAP(ABAP RESTful Application Programming Model)으로 List Report를 만들다 보면 "테이블 위쪽 툴바에 커스텀 버튼 하나만 추가하고 싶은데 아무리 해도 안 보인다"는 상황을 자주 만
📖 개요와 이 글의 목표 SAPUI5로 List Report 화면을 freestyle로 직접 그리다 보면 필터바, 테이블, 변형 관리(Variant Management), 초안(Draft) 처리까지 반복 구현하게 됩니다. Fiori Elements는 이 반복을 어노테이션 기반 템플릿으
개요 — jest만으로는 왜 CAP 테스트가 실패하는가 SAP CAP(Cloud Application Programming Model) 프로젝트에서 jest를 설치하고 서비스 핸들러를 테스트하려다 Cannot read properties of undefined , No service d
RAP BO를 테스트하지 않으면 생기는 일 — 이 글의 목표 RAP(ABAP RESTful Application Programming Model)으로 Business Object를 만들다 보면 Validation, Determination, Action 로직이 Behavior Imple
RAP BO를 테스트하지 않으면 생기는 일 — 이 글의 목표 RAP(ABAP RESTful Application Programming Model)으로 Business Object를 만들다 보면 Validation, Determination, Action 로직이 Behavior Imple
왜 Fiori Elements인가 — 프리스타일 개발의 함정 SAPUI5로 List Report 화면을 처음부터 직접 만들어 본 적이 있다면 공감할 것이다. 필터바를 붙이고, 테이블을 바인딩하고, 변형 관리(Variant Management)를 연결하고, 내보내기 버튼을 달고, 접근성과
이 글이 답하는 질문 CAP Node.js 서비스에서 수백 MB짜리 PDF·이미지·CSV를 응답할 때 Buffer로 통째로 읽어 메모리가 터진 경험이 있다면, 이 글이 해결책입니다. ReadableStream 기반 스트리밍 응답으로 메모리 사용량을 일정하게 유지하는 방법을 다룹니다. C
📖 이 글에서 다루는 내용과 목표 UI5 앱에서 버튼 라벨과 메시지를 뷰에 하드코딩하면, 영어 사용자에게도 한국어 화면이 그대로 노출되고 문구 하나를 바꿀 때마다 뷰 파일을 전부 뒤져야 합니다. 이 글은 SAPUI5의 i18n(ResourceModel) 모델과 .properties 파
📖 개요 — SE80 경험자가 ADT 첫날 마주치는 3가지 벽 아직도 SE80에서 더블클릭으로 모든 개발을 하고 있다면, RAP(RESTful ABAP Programming Model)을 시작하는 순간 벽에 부딪히게 됩니다. CDS View Entity, Behavior Definit
📖 개요: 이 글에서 다루는 것 서브쿼리가 3중, 4중으로 중첩된 HANA SQL을 유지보수해 본 적이 있다면, WITH 절(CTE, Common Table Expression)이 왜 "가독성 끝판왕"이라 불리는지 바로 공감할 수 있습니다. 이 글은 SAP HANA(온프레미스 2.0
1. Window 함수가 필요한 순간 — 서브쿼리 지옥에서 벗어나기 SAP HANA에서 "카테고리별 매출 상위 3개 제품"을 뽑아야 할 때, Window 함수를 모르면 보통 상관 서브쿼리(correlated subquery)나 셀프 조인으로 해결하게 됩니다. 문제는 이 방식이 행마다 서
📖 개요: 인증 없는 CAP 서비스가 위험한 이유 CAP(Cloud Application Programming Model) 서비스는 어노테이션 한 줄 없이도 배포가 됩니다. 문제는 바로 그 지점입니다. @requires 가 없는 서비스는 BTP에 올라간 순간부터 OData 엔드포인트
📖 개요: 이 글에서 다루는 내용 SAP Fiori에서 마스터-디테일 화면을 만들 때 가장 흔한 고민은 "리스트에서 항목을 클릭하면 전체 화면이 Object Page로 넘어가 버려서 목록 맥락을 잃는다"는 점입니다. Flexible Column Layout(이하 FCL)을 적용하면 별
1. RAP에서 집계 데이터가 필요한 이유 RAP(ABAP RESTful Application Programming Model)로 만든 트랜잭션 앱은 개별 레코드의 생성·수정에는 강하지만, 실무에서는 "이번 달 영업조직별 매출 합계", "고객별 주문 건수" 같은 집계 관점 의 화면이 반