BAPI 성공했는데 저장 왜 안 될까? #shorts #SAP #ABAP
📖 개요: BAPI는 성공했다는데 테이블엔 데이터가 없다? ABAP 입문자가 가장 자주 겪는 미스터리 중 하나가 이것입니다. BAPI를 호출했고, RETURN에 에러도 없었고, 디버거로 보면 오더 번호까지 반환됐는데 — 정작 VBAK 테이블을 조회하면 아무것도 없습니다. 원인은 대부분
📖 개요: BAPI는 성공했다는데 테이블엔 데이터가 없다? ABAP 입문자가 가장 자주 겪는 미스터리 중 하나가 이것입니다. BAPI를 호출했고, RETURN에 에러도 없었고, 디버거로 보면 오더 번호까지 반환됐는데 — 정작 VBAK 테이블을 조회하면 아무것도 없습니다. 원인은 대부분

📖 개요 및 이 글에서 얻어갈 것 송장검증(MIRO)에서 구매오더 가격과 송장 가격이 다를 때, 그 차액이 어떤 조건에서 손익계정(가격차이 계정)으로 가고 어떤 조건에서 재고 계정 자체로 흡수되는지는 MM-FI 통합의 가장 자주 질문받는 지점 중 하나입니다. 이 글은 평가방식(가격결정
📖 개요 — 이 글에서 얻어갈 것 생산오더를 TECO(기술적 완료) 처리했는데 월말 결산에서 재공품(WIP)이 그대로 남아 있는 경험, 한 번쯤 있을 것입니다. 반대로 CLSD(종결) 처리를 하려다 "잔액이 남아 있다"는 오류에 막히기도 합니다. 이 글은 오더 상태가 재공품 계산과 원

이 글이 답하는 질문 출고전기까지 끝난 납품전표인데 VF01을 열면 "청구 대상 전표가 없습니다"가 뜬다. 창고는 물건을 보냈고 재고도 빠졌는데 매출이 안 잡히는 상황이다. 이 글에서는 그 원인의 8할을 차지하는 항목범주(Item Category)의 청구관련 지시자(Billing Rel
이 글에서 다루는 내용 RAP(ABAP RESTful Application Programming Model)으로 만든 서비스에 여러 건의 변경을 한 번에 보냈는데, 딱 한 건의 검증 오류 때문에 나머지 아홉 건까지 전부 사라지는 경험을 해본 적이 있을 것입니다. 이것은 버그가 아니라 O

📖 개요: 이 글에서 다루는 것 RAP(RESTful Application Programming Model)에서 Early Numbering 을 직접 구현하면, 사용자가 저장 버튼을 누르기 전에 이미 문서번호가 확정됩니다. 편리해 보이지만, 두 사용자가 동시에 생성 트랜잭션을 시작하는
개요 — 이 글에서 확인할 내용 RAP(ABAP RESTful Application Programming Model)에서 액션이 실패해 트랜잭션 전체가 롤백되었는데, 다음 문서를 생성하면 번호가 하나 건너뛰어 있는 현상을 본 적이 있을 것입니다. 예를 들어 판매오더 SO-1007 생성이
개요와 목표 체크리스트 SAP Joule은 SAP 애플리케이션 전반에 내장되는 생성형 AI 코파일럿입니다. 이 글은 기존 레거시 챗봇(intent/webhook 방식)과 비교하면서, Joule Studio에서 커스텀 액션(Custom Action) 을 등록하고 SAP BTP CAP 서비
📖 개요: Draft 저장 로직, 왜 자꾸 오해가 생길까 SAP CAP(Cloud Application Programming Model) Node.js 런타임에서 Fiori Elements 앱을 만들 때 가장 자주 마주치는 기능이 바로 Draft(초안) 입니다. 어노테이션 한 줄이면

이 글이 답하는 질문 목록 화면이 건수가 늘수록 느려지는데, 쿼리는 한 번뿐인 것 같다면 어디를 봐야 하나? 필요한 필드만 고르는 것이 실제로 얼마나 차이를 만드는가? 연관 데이터를 가져올 때 확장과 개별 조회 중 무엇을 골라야 하나? 대량 저장에서 건별 처리와 묶음 처리는 어디서 갈리
📖 개요: 이 글에서 다루는 것 UI5 앱을 처음 열었을 때 흰 화면이 3~5초씩 이어진다면, 대부분은 서버 성능이 아니라 부트스트랩과 리소스 로딩 방식 의 문제입니다. 이 실전 예제에서는 SAPUI5/OpenUI5(1.120 LTS 기준) 앱의 초기 로딩 속도를 개선하는 7가지 방법

📖 개요 — 이 글에서 다루는 문제 RAP(ABAP RESTful Application Programming Model)에서 precheck 으로 수정 요청을 분명히 차단했는데, Fiori Elements 화면에는 사용자가 입력한 값이 그대로 남아 있는 현상을 다룹니다. 서버 로그를
왜 Joule 커스텀 액션인가 SAP Joule은 단순한 사내 챗봇이 아니라, SAP 애플리케이션 전반에 걸쳐 동작하는 코파일럿 계층입니다. 이 글은 Joule Studio에서 커스텀 액션(스킬)을 정의하고 실제 SAP 백엔드 — RAP 액션과 CAP 서비스 — 를 호출하도록 연동하는

📖 개요 및 핵심 체크리스트 CAP Java 프로젝트가 커지면 어느 순간 이런 질문이 반복됩니다. "이 필드는 @readonly 로 막아야 하나, 아니면 핸들러에서 검사해야 하나?" "권한은 @requires 인가 @restrict 인가?" 어노테이션은 종류가 많은 데다 이름이 비슷해
📖 개요: 이 글에서 다루는 것 CAP Java 프로젝트에서 CDS 어노테이션은 단순한 메타데이터가 아니라, 런타임 동작(검증·권한·CRUD 제한)과 UI 렌더링을 실제로 바꾸는 선언적 계약입니다. 문제는 "어떤 어노테이션을 CDS에 걸고, 어떤 로직을 Java 핸들러로 내려야 하는가

📖 개요: 트라이얼 만료, 정말 큰일일까 SAP BTP 트라이얼 계정을 쓰다 보면 어느 날 콕핏 상단에 "트라이얼이 곧 종료됩니다"라는 배너가 뜹니다. 이때 많은 분들이 "큰일 났다, 다 날아가는 건가?"라고 당황하는데, 결론부터 말하면 미리 준비하면 큰일이 아니고, 준비 없이 만료일

이 글이 답하는 질문 예외 클래스를 만들었는데 운영 로그에 메시지가 비어 있는 이유는 무엇인가? RAISE EXCEPTION TYPE 과 RAISE EXCEPTION NEW 는 무엇이 다른가? 예외 클래스 계층을 어디까지 나누고, 어디서 합쳐야 하는가? 호출자가 복구할 수 있는 예외와
📖 개요 — 이 글에서 얻어갈 것 RAP(ABAP RESTful Application Programming Model)으로 트랜잭셔널 앱을 설계할 때 가장 먼저 마주치는 갈림길이 관리형(managed)과 비관리형(unmanaged)의 선택입니다. 관리형은 프레임워크가 CRUD·버퍼·저

왜 "느린 CDS 뷰"는 원인 찾기가 더 어려운가 ABAP CDS 뷰는 로직을 데이터베이스로 내려보내는 코드 푸시다운(Code Pushdown)의 핵심 도구지만, 바로 그 특성 때문에 성능 문제가 생기면 원인이 ABAP 레이어가 아닌 HANA 내부 실행 과정에 숨어버립니다. 이 글은 해

개요: 왜 CDS 모델 확장을 알아야 하는가 CAP(Cloud Application Programming Model) 프로젝트가 커지면 하나의 CDS 모델을 여러 팀, 여러 앱이 공유하게 됩니다. 이때 원본 모델 파일을 직접 고치지 않고 필드·연관·어노테이션을 덧붙이는 기법이 바로 CD