jest vs cds.test — CAP 테스트 실패 3원인 #shorts #SAP #CAP
📖 개요와 목표 CAP Node.js 프로젝트에서 jest만 설치하고 서비스 핸들러를 테스트하면 service is undefined , no model loaded 같은 에러로 시작부터 막히는 경우가 많습니다. 이 글은 구매 주문(PurchaseOrder) 서비스를 예제로, @sap
📖 개요와 목표 CAP Node.js 프로젝트에서 jest만 설치하고 서비스 핸들러를 테스트하면 service is undefined , no model loaded 같은 에러로 시작부터 막히는 경우가 많습니다. 이 글은 구매 주문(PurchaseOrder) 서비스를 예제로, @sap
1. 대용량 테이블의 조회 성능 문제 — 왜 파티셔닝이 필요한가 SAP HANA 컬럼 스토어 테이블은 인메모리 구조 덕분에 기본 조회 성능이 뛰어나지만, 데이터가 수억 건 단위로 쌓이기 시작하면 상황이 달라집니다. 가장 먼저 부딪히는 것은 단일 컬럼 스토어 테이블(또는 파티션)당 약 2
버튼이 화면에 아예 나타나지 않는 이유 — 흔한 실패 시나리오 RAP(ABAP RESTful Application Programming Model)으로 List Report를 만들다 보면 "테이블 위쪽 툴바에 커스텀 버튼 하나만 추가하고 싶은데 아무리 해도 안 보인다"는 상황을 자주 만
📖 개요와 이 글의 목표 SAPUI5로 List Report 화면을 freestyle로 직접 그리다 보면 필터바, 테이블, 변형 관리(Variant Management), 초안(Draft) 처리까지 반복 구현하게 됩니다. Fiori Elements는 이 반복을 어노테이션 기반 템플릿으
1. iFlow에서 에러를 무시하면 생기는 일 SAP BTP Integration Suite(Cloud Integration capability)에서 Integration Flow(iFlow)를 운영하다 보면, 수신 시스템의 일시적 다운, 네트워크 타임아웃, 잘못된 페이로드 같은 장애는
📖 개요: 왜 Cloud의 권한은 "다르게" 설계되었나 ECC나 온프레미스 S/4HANA에서 PFCG로 권한을 관리해 온 실무자가 S/4HANA Cloud Public Edition을 처음 만나면 가장 먼저 당황하는 지점이 바로 권한 체계입니다. SU01도, PFCG 프로파일 생성도,
개요 — 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
1. "You are not authorized" — 권한 오류가 터지는 순간 SAP S/4HANA(2022/2023 온프레미스 및 Private Cloud Edition 기준)를 쓰다 보면 누구나 한 번은 만나는 메시지가 있습니다. 화면 하단 상태 표시줄에 뜨는 You are not
RAP BO를 테스트하지 않으면 생기는 일 — 이 글의 목표 RAP(ABAP RESTful Application Programming Model)으로 Business Object를 만들다 보면 Validation, Determination, Action 로직이 Behavior Imple
왜 Fiori Elements인가 — 프리스타일 개발의 함정 SAPUI5로 List Report 화면을 처음부터 직접 만들어 본 적이 있다면 공감할 것이다. 필터바를 붙이고, 테이블을 바인딩하고, 변형 관리(Variant Management)를 연결하고, 내보내기 버튼을 달고, 접근성과
1. Dead Letter Channel 패턴이 왜 필요한가 SAP BTP Integration Suite로 S/4HANA와 외부 시스템을 연동하다 보면 반드시 마주치는 질문이 있습니다. "수신 시스템이 죽어 있을 때 그 메시지는 어디로 가는가?" 에러 처리를 설계하지 않은 iFlow에
이 글이 답하는 질문 CAP Node.js 서비스에서 수백 MB짜리 PDF·이미지·CSV를 응답할 때 Buffer로 통째로 읽어 메모리가 터진 경험이 있다면, 이 글이 해결책입니다. ReadableStream 기반 스트리밍 응답으로 메모리 사용량을 일정하게 유지하는 방법을 다룹니다. C
1. Execution Plan을 못 읽으면 왜 큰일인가 SAP HANA는 인메모리 컬럼 스토어 덕분에 웬만한 쿼리는 빠르게 처리하지만, 데이터가 수억 건으로 늘어나거나 조인이 복잡해지면 "HANA인데 왜 느리지?"라는 상황이 반드시 옵니다. 이때 감으로 인덱스를 추가하거나 힌트를 남발
📖 개요 — SE80 경험자가 ADT 첫날 마주치는 3가지 벽 아직도 SE80에서 더블클릭으로 모든 개발을 하고 있다면, RAP(RESTful ABAP Programming Model)을 시작하는 순간 벽에 부딪히게 됩니다. CDS View Entity, Behavior Definit
1. ST01이 필요한 이유 — SU53의 한계와 트레이스의 힘 권한 오류가 발생하면 대부분의 관리자는 SU53부터 실행합니다. 그러나 SU53은 해당 사용자의 마지막 실패한 권한 체크 하나 만 보여줍니다. 실제 업무 트랜잭션은 한 번의 실행에서 수십 개의 AUTHORITY-CHECK를
📖 이 글에서 다루는 내용과 목표 온프레미스 Fiori Launchpad를 시스템마다 따로 관리하다 보면 카탈로그·역할·테마가 제각각 흩어지고, S/4HANA·SuccessFactors·커스텀 UI5 앱을 한 화면에 모으는 일이 점점 어려워집니다. SAP Build Work Zone,
Integration Suite 운영의 숨겨진 위험 SAP BTP Integration Suite(Cloud Integration 캐퍼빌리티)로 iFlow를 배포하고 나면 "연결됐으니 끝"이라고 생각하기 쉽습니다. 하지만 실제 운영 환경에서는 수신 시스템의 일시적 다운, 인증서 만료,
SOD란 무엇인가 — 직무 분리가 무너지면 벌어지는 일 SOD(Segregation of Duties, 직무 분리)는 한 사람이 하나의 비즈니스 프로세스를 처음부터 끝까지 혼자 처리하지 못하도록 권한을 나누는 내부통제 원칙입니다. 예를 들어 공급업체 마스터를 생성하는 사람 이 대금 지급
📖 개요: 이 글에서 다루는 것 서브쿼리가 3중, 4중으로 중첩된 HANA SQL을 유지보수해 본 적이 있다면, WITH 절(CTE, Common Table Expression)이 왜 "가독성 끝판왕"이라 불리는지 바로 공감할 수 있습니다. 이 글은 SAP HANA(온프레미스 2.0