iFlow Dead Letter 없으면 큰일 — 3단계 방어 #shorts #SAP #BTP
1. Dead Letter Channel 패턴이 왜 필요한가 SAP BTP Integration Suite로 S/4HANA와 외부 시스템을 연동하다 보면 반드시 마주치는 질문이 있습니다. "수신 시스템이 죽어 있을 때 그 메시지는 어디로 가는가?" 에러 처리를 설계하지 않은 iFlow에
1. Dead Letter Channel 패턴이 왜 필요한가 SAP BTP Integration Suite로 S/4HANA와 외부 시스템을 연동하다 보면 반드시 마주치는 질문이 있습니다. "수신 시스템이 죽어 있을 때 그 메시지는 어디로 가는가?" 에러 처리를 설계하지 않은 iFlow에
📖 개요 — SE80 경험자가 ADT 첫날 마주치는 3가지 벽 아직도 SE80에서 더블클릭으로 모든 개발을 하고 있다면, RAP(RESTful ABAP Programming Model)을 시작하는 순간 벽에 부딪히게 됩니다. CDS View Entity, Behavior Definit
1. CASE TYPE OF가 필요한 상황과 배경 상속 계층을 설계하다 보면 결국 마주치는 순간이 있습니다. 부모 클래스 타입의 참조 변수 하나에 여러 자식 객체가 담겨 흘러 들어오고, 그중 특정 타입일 때만 다르게 처리해야 하는 상황입니다. ABAP 7.40 이전에는 이럴 때 TRY
📖 개요: 이 글에서 다루는 내용 비용 센터 계층, 예산 항목 트리, 프로젝트 WBS처럼 부모-자식 관계가 재귀적으로 반복되는 데이터 는 엔터프라이즈 애플리케이션에서 가장 자주 등장하는 구조 중 하나입니다. 그런데 RAP(RESTful ABAP Programming Model)은 기본
$tmp 버퍼, RAP 트랜잭션의 숨은 주인공 RAP(ABAP RESTful Application Programming Model)으로 Managed 시나리오를 개발하다 보면, 분명 CREATE 를 실행했는데 DB 테이블을 SELECT 하면 데이터가 없는 상황을 만나게 됩니다. 원인은
📖 개요 — 이 글에서 다루는 것 SAP ERP 시절부터 유통 채널(Distribution Channel)은 TVTW 테이블에 저장되고, 텍스트는 TVTWT 에서 별도로 조회하는 방식이 일반적이었습니다. S/4HANA(온프레미스 및 Cloud 에디션)에서는 이 방식 대신 VDM(Vir
📖 개요와 이 글에서 다루는 내용 SAP S/4HANA에서 설비 정비·현장 서비스가 끝나면 "실제로 무엇을 얼마나 수행했는가"를 기록하는 문서가 서비스 확정(Service Confirmation) 입니다. 이를 조회하는 표준 릴리스 CDS 뷰가 I_ServiceConfirmation
1. I_ServiceOrderItem이 필요한 배경 SAP ECC 시절 서비스 오더 데이터를 다루려면 개발자는 AUFK (오더 마스터), AFIH (유지보수 오더 헤더), AFKO , AFPO 같은 테이블을 직접 조인해야 했습니다. 테이블 이름 자체가 독일어 약어라 가독성이 떨어지고,
개요: 이 글에서 얻어갈 것 ABAP에서 문자열을 조합할 때 아직도 CONCATENATE 를 쓰고 있다면, 이 글이 코드 스타일을 바꾸는 계기가 될 것입니다. ABAP 7.02부터 도입된 String Template( |...{ }...| ) 문법은 문자열 조합을 한 줄로, 그리고 훨씬
개요 — 이 글에서 다루는 것 두 명의 담당자가 같은 서비스 오더를 동시에 열어 편집하면 어떤 일이 벌어질까요? ETag가 설정되지 않은 RAP 비즈니스 오브젝트에서는 나중에 저장한 사람이 먼저 저장한 사람의 변경을 조용히 덮어씌웁니다 . 오류도, 경고도 없습니다. 이 글은 SAP BT
KEKO 테이블의 구조와 원가 견적 도메인 개요 SAP 제품 원가 계산(Product Cost Planning, CO-PC) 영역에서 KEKO 는 수십 년간 원가 견적(Cost Estimate)의 헤더 정보를 담아온 핵심 테이블입니다. 자재별 표준 원가 견적을 생성(CK11N)하고 표시
BNKA 테이블의 구조와 한계 — 왜 직접 SELECT하면 안 되는가 SAP에서 은행 관련 데이터를 다뤄본 개발자라면 BNKA (은행 마스터), T012 (하우스 뱅크), T012K (하우스 뱅크 계좌) 세 테이블을 직접 SELECT하는 코드를 한 번쯤 봤을 것입니다. BNKA는 은행
1. BNKA를 아직도 직접 조회하고 있나요? — 개요와 목표 S/4HANA 이전 시절부터 ABAP를 다뤄온 개발자라면 은행 관련 데이터를 조회할 때 습관적으로 SELECT ... FROM bnka 를 작성해 왔을 것입니다. 하지만 SAP S/4HANA 환경, 특히 클린 코어(Clean
I_WorkCenterCapacity CDS 뷰 개요 — 왜 CRHD를 버려야 하는가 SAP S/4HANA의 생산 관련 개발에서 작업장(Work Center) 능력 데이터를 다룰 때, 많은 개발자가 여전히 CRHD , CRCA , KAKO 테이블을 직접 조인하는 레거시 방식을 사용합니다
개요 — 이 글에서 얻어갈 것 SAP S/4HANA에서 구매 정보 기록(Purchasing Info Record)을 조회할 때, 여전히 EINA와 EINE 테이블을 직접 조인하는 코드를 작성하고 계신가요? 이 글은 표준 CDS View인 I_PurchasingInfo 를 활용해 테이블
개요 및 이 글에서 다룰 것 SAP UI5 애플리케이션에서 화면에 데이터를 뿌릴 때, 백엔드에서 내려온 원본 값을 그대로 노출하면 사용자 경험이 어색해집니다. 예를 들어 20260714 라는 문자열, 1500000.00 이라는 숫자, P 라는 코드 값은 각각 2026-07-14 , 1,
개요 — 이 글에서 다루는 것 UI5에서 OData V4 모델을 쓰면서도 생성·수정·삭제(CUD)를 여전히 fetch 나 수동 AJAX 호출로 처리하는 코드를 실무에서 자주 봅니다. OData V4 모델( sap.ui.model.odata.v4.ODataModel )은 V2와 설계 철학
📖 개요 — ETag 없는 RAP 서비스는 "나중에 저장한 사람이 이긴다" 두 명의 담당자가 같은 정비 오더를 동시에 열어 수정한다고 가정해 봅시다. A가 우선순위를 바꿔 저장하고, 몇 초 뒤 B가 상태값을 바꿔 저장하면 — ETag가 없는 RAP 서비스에서는 B의 저장이 A의 변경을
왜 Copy Action이 아닌 Factory Action인가 RAP(RESTful ABAP Programming Model)에서 기존 비즈니스 오브젝트(BO)를 복제하는 요구사항은 실무에서 매우 자주 등장합니다. 예를 들어 판매 오더(SalesOrder)를 그대로 복사해 새 오더 초안
1. I_SchedulingAgreement가 해결하는 문제 구매 스케줄링 어그리먼트(Scheduling Agreement)는 장기 공급 계약을 체결하고 그 아래에 반복적인 납기 일정(Delivery Schedule Line)을 관리하는 SAP 표준 프로세스입니다. 전통적으로 개발자는