드래프트 테이블 큰일 — 정리 잡 없으면 생기는 일 #shorts #SAP #RAP
드래프트 테이블은 왜 끝없이 커지는가 RAP(ABAP RESTful Application Programming Model)로 설비 점검 요청 관리 앱을 운영하던 한 현장 팀의 사례를 보면 문제의 본질이 잘 드러납니다. 설비 점검 요청(EqpInspReq) 화면에서 현장 엔지니어가 입력을
드래프트 테이블은 왜 끝없이 커지는가 RAP(ABAP RESTful Application Programming Model)로 설비 점검 요청 관리 앱을 운영하던 한 현장 팀의 사례를 보면 문제의 본질이 잘 드러납니다. 설비 점검 요청(EqpInspReq) 화면에서 현장 엔지니어가 입력을
이 글에서 다루는 내용 RAP(ABAP RESTful Application Programming Model)으로 만든 서비스에 여러 건의 변경을 한 번에 보냈는데, 딱 한 건의 검증 오류 때문에 나머지 아홉 건까지 전부 사라지는 경험을 해본 적이 있을 것입니다. 이것은 버그가 아니라 O
개요 — 이 글에서 확인할 내용 RAP(ABAP RESTful Application Programming Model)에서 액션이 실패해 트랜잭션 전체가 롤백되었는데, 다음 문서를 생성하면 번호가 하나 건너뛰어 있는 현상을 본 적이 있을 것입니다. 예를 들어 판매오더 SO-1007 생성이
📖 개요 — 이 글에서 다루는 문제 RAP(ABAP RESTful Application Programming Model)에서 precheck 으로 수정 요청을 분명히 차단했는데, Fiori Elements 화면에는 사용자가 입력한 값이 그대로 남아 있는 현상을 다룹니다. 서버 로그를
📖 개요 및 핵심 체크리스트 CAP Java 프로젝트가 커지면 어느 순간 이런 질문이 반복됩니다. "이 필드는 @readonly 로 막아야 하나, 아니면 핸들러에서 검사해야 하나?" "권한은 @requires 인가 @restrict 인가?" 어노테이션은 종류가 많은 데다 이름이 비슷해
📖 개요: 이 글에서 다루는 것 CAP Java 프로젝트에서 CDS 어노테이션은 단순한 메타데이터가 아니라, 런타임 동작(검증·권한·CRUD 제한)과 UI 렌더링을 실제로 바꾸는 선언적 계약입니다. 문제는 "어떤 어노테이션을 CDS에 걸고, 어떤 로직을 Java 핸들러로 내려야 하는가
이 글이 답하는 질문 예외 클래스를 만들었는데 운영 로그에 메시지가 비어 있는 이유는 무엇인가? RAISE EXCEPTION TYPE 과 RAISE EXCEPTION NEW 는 무엇이 다른가? 예외 클래스 계층을 어디까지 나누고, 어디서 합쳐야 하는가? 호출자가 복구할 수 있는 예외와
📖 개요 — 이 글에서 얻어갈 것 RAP(ABAP RESTful Application Programming Model)으로 트랜잭셔널 앱을 설계할 때 가장 먼저 마주치는 갈림길이 관리형(managed)과 비관리형(unmanaged)의 선택입니다. 관리형은 프레임워크가 CRUD·버퍼·저
개요: 왜 CDS 모델 확장을 알아야 하는가 CAP(Cloud Application Programming Model) 프로젝트가 커지면 하나의 CDS 모델을 여러 팀, 여러 앱이 공유하게 됩니다. 이때 원본 모델 파일을 직접 고치지 않고 필드·연관·어노테이션을 덧붙이는 기법이 바로 CD
개요: Path Expression 한 줄이 조인 폭탄이 되는 순간 ABAP CDS를 처음 접하면 Association과 Path Expression은 "편리한 조인 문법" 정도로 보입니다. 그런데 실무에서는 이 둘의 구조적 차이를 이해하지 못한 채 Path Expression을 남용하
📖 이 글에서 다루는 내용 전통적인 Java 엔터프라이즈 개발에서는 이벤트 리스너 하나를 붙이려면 XML 설정 파일에 bean을 선언하고 wiring을 관리해야 했습니다. CAP Java(SAP Cloud Application Programming Model)는 이 과정을 뒤집었습니다
개요: 이 글에서 다루는 것 SAP CAP(Cloud Application Programming Model) Java 애플리케이션에서 @requires 어노테이션은 인증(Authentication)과 역할 기반 접근 제어를 선언적으로 처리하는 핵심 도구입니다. 이 글에서는 물류 창고 운
📖 개요 — 이 글에서 다루는 것 RAP(ABAP RESTful Application Programming Model)의 Behavior Definition을 처음 다루다 보면 가장 자주 마주치는 갈림길이 있습니다. "이 로직은 Determination으로 구현해야 하나, Valida
📖 개요 — 이 글에서 다루는 것 CAP Java 프로젝트에서 트랜잭션은 대부분 프레임워크가 알아서 열고 닫아 주기 때문에, 격리 수준(Isolation Level)을 의식하지 않고 개발하는 경우가 많습니다. 그러다 동시 요청이 몰리는 재고 차감, 채번, 잔액 갱신 로직에서 갱신 유실
📖 개요: 이 글에서 다루는 것 ABAP CDS 뷰만으로는 표현하기 어려운 복잡한 계산 로직을 만나면, CDS Table Function이 강력한 탈출구가 됩니다. 이 글은 가상의 물류 시나리오(창고 재고 회전율 분석)를 바탕으로 Table Function과 AMDP를 결합해 HANA
개요: Joule로 ABAP 코드 리뷰를 자동화한다는 것 코드 리뷰는 ABAP 팀의 품질을 지키는 마지막 관문이지만, 리뷰어의 시간과 컨디션에 따라 품질 편차가 큰 작업이기도 합니다. SAP의 생성형 AI 코파일럿인 Joule 은 ABAP Development Tools(ADT) 안에서
📖 이 글에서 다룰 것 SAP HANA는 컬럼 스토어 기반의 관계형 엔진으로 잘 알려져 있지만, 그 안에는 JSON 문서를 그대로 저장하고 SQL로 조회할 수 있는 JSON Document Store 가 함께 들어 있습니다. 문제는 "쓸 수 있다"와 "써야 한다"는 다르다는 점입니다.
개요 — 이 글에서 얻어갈 것 SD 청구(Billing) 문서를 처음 접하면 F2, G2, L2라는 코드가 같은 화면(VF01)에서 만들어지는데도 회계에 미치는 방향이 정반대라는 점 때문에 혼란이 생깁니다. 이 글은 세 가지 표준 청구유형이 어떤 업무 트리거로 생성되는지 , 그리고 FI
도입 — 정산 배치가 절반만 커밋되는 사고, 어디서 시작됐을까 CAP Java로 서비스를 만들다 보면 초반에는 트랜잭션을 의식할 일이 거의 없습니다. 프레임워크가 요청 단위로 알아서 커밋과 롤백을 처리해 주기 때문입니다. 그런데 어느 순간 이런 요구사항이 들어옵니다. "정산 배치 1만
📖 개요: 여신 체크가 수주를 막는 순간 영업 담당자가 "수주가 갑자기 저장이 안 돼요"라고 말할 때, 원인의 상당수는 여신관리(Credit Management)입니다. 그런데 같은 여신한도 초과라도 수주 저장 시점 에 막히는 회사가 있고, 납품 생성 시점 또는 출고(PGI) 시점 에