Early Numbering 동시 생성 키 충돌 3가지 #shorts #SAP #RAP
📖 개요: 이 글에서 다루는 것 RAP(RESTful Application Programming Model)에서 Early Numbering 을 직접 구현하면, 사용자가 저장 버튼을 누르기 전에 이미 문서번호가 확정됩니다. 편리해 보이지만, 두 사용자가 동시에 생성 트랜잭션을 시작하는
📖 개요: 이 글에서 다루는 것 RAP(RESTful Application Programming Model)에서 Early Numbering 을 직접 구현하면, 사용자가 저장 버튼을 누르기 전에 이미 문서번호가 확정됩니다. 편리해 보이지만, 두 사용자가 동시에 생성 트랜잭션을 시작하는
개요 — 이 글에서 확인할 내용 RAP(ABAP RESTful Application Programming Model)에서 액션이 실패해 트랜잭션 전체가 롤백되었는데, 다음 문서를 생성하면 번호가 하나 건너뛰어 있는 현상을 본 적이 있을 것입니다. 예를 들어 판매오더 SO-1007 생성이
📖 개요 및 핵심 체크리스트 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)과 역할 기반 접근 제어를 선언적으로 처리하는 핵심 도구입니다. 이 글에서는 물류 창고 운
새벽 배치가 멈춘 날 — RFC 타임아웃과의 첫 만남 새벽 2시, 물류 시스템의 재고 동기화 배치가 "TIME_OUT" 덤프를 남기고 멈췄다는 알림을 받아본 적이 있다면, 이 글이 도움이 될 것입니다. ERP에서 창고관리 시스템으로 RFC를 호출하는 커스텀 함수모듈 Z_WM_GET_BI
📖 개요 — 이 글에서 다루는 것 CAP Java 프로젝트에서 트랜잭션은 대부분 프레임워크가 알아서 열고 닫아 주기 때문에, 격리 수준(Isolation Level)을 의식하지 않고 개발하는 경우가 많습니다. 그러다 동시 요청이 몰리는 재고 차감, 채번, 잔액 갱신 로직에서 갱신 유실
📖 이 글에서 다루는 것 SAP MM 구매 프로세스에서 승인(Release Strategy)을 구매요청(PR)에 걸 것인지 구매오더(PO)에 걸 것인지는 결재 흐름 전체를 좌우하는 설계 결정입니다. S/4HANA 2023 FPS02를 기준으로 두 문서의 승인 구조 차이와 설정 절차,
📖 개요 — 이 글에서 다루는 것 SAP SD에서 판매 문서를 하나 만들려면 반드시 영업영역(Sales Area) 을 통과해야 합니다. 영업영역은 판매조직(VKORG), 유통경로(VTWEG), 제품군(SPART) 세 요소의 조합 이며, 이 조합이 고객마스터 접근, 가격 조건, 판매전표
개요 — 이 글에서 얻어갈 것 SD 청구(Billing) 문서를 처음 접하면 F2, G2, L2라는 코드가 같은 화면(VF01)에서 만들어지는데도 회계에 미치는 방향이 정반대라는 점 때문에 혼란이 생깁니다. 이 글은 세 가지 표준 청구유형이 어떤 업무 트리거로 생성되는지 , 그리고 FI
이 글에서 다루는 내용 SAP를 처음 시작한 개발자가 가장 먼저 부딪히는 벽은 ABAP 문법이 아니라 수백 개의 트랜잭션 코드 입니다. SE11과 SE16은 뭐가 다른지, 덤프가 나면 ST22를 봐야 하는지 SM21을 봐야 하는지, 테이블 데이터는 SM30으로 고치는 게 맞는지 — 실무
도입 — 정산 배치가 절반만 커밋되는 사고, 어디서 시작됐을까 CAP Java로 서비스를 만들다 보면 초반에는 트랜잭션을 의식할 일이 거의 없습니다. 프레임워크가 요청 단위로 알아서 커밋과 롤백을 처리해 주기 때문입니다. 그런데 어느 순간 이런 요구사항이 들어옵니다. "정산 배치 1만
이 글이 답하는 질문 자재를 구매하면 창고에 물건이 도착하고 입고(GR, Goods Receipt)를 전기합니다. 그런데 설비 점검, 청소 용역, IT 유지보수 같은 서비스 를 구매하면 트럭에서 내릴 실물이 없습니다. 그럼 입고는 어떻게 될까요? 이 글은 아래 질문에 답합니다. Q. 서
📖 개요: 여신 체크가 수주를 막는 순간 영업 담당자가 "수주가 갑자기 저장이 안 돼요"라고 말할 때, 원인의 상당수는 여신관리(Credit Management)입니다. 그런데 같은 여신한도 초과라도 수주 저장 시점 에 막히는 회사가 있고, 납품 생성 시점 또는 출고(PGI) 시점 에
1. 이 글이 답하는 질문 구매송장을 전기하면 SAP는 "언제까지 갚아야 하는지"와 "일찍 갚으면 얼마를 깎아주는지"를 자동으로 계산합니다. 이 계산의 출발점이 지급조건(Payment Terms) 과 기산일(Baseline Date) 입니다. 이 글은 SAP S/4HANA(온프레미스 2