CAP Remote — HTTP 없이 외부 OData 호출? #shorts #SAP #CAPJava
📖 개요 및 이 글에서 다루는 것 CAP Java 애플리케이션이 자기 데이터베이스만 바라보는 경우는 드뭅니다. 실무에서는 S/4HANA의 OData API나 다른 팀이 만든 마이크로서비스를 호출해 데이터를 합쳐 보여줘야 하는 상황이 훨씬 많습니다. 이 글에서는 CAP Java의 Rem
📖 개요 및 이 글에서 다루는 것 CAP Java 애플리케이션이 자기 데이터베이스만 바라보는 경우는 드뭅니다. 실무에서는 S/4HANA의 OData API나 다른 팀이 만든 마이크로서비스를 호출해 데이터를 합쳐 보여줘야 하는 상황이 훨씬 많습니다. 이 글에서는 CAP Java의 Rem
BAPI와 OData, 무엇이 다른가 — 패러다임 비교 BAPI는 함수 모듈 기반의 RFC 프로토콜 위에서 동작합니다. 호출자는 SAP GUI 프로토콜 계층을 이해하는 커넥터(JCo, NCo 등)를 갖춰야 하고, 파라미터 구조는 ABAP 딕셔너리 타입에 강하게 결합됩니다. 반면 ODat
📖 개요: Before와 After, 이름만 보고 쓰면 반드시 사고가 난다 CAP Java에서 커스텀 핸들러를 처음 작성할 때 가장 많이 겪는 사고는 문법 오류가 아니라 "코드는 정상 실행됐는데 DB에는 아무 것도 반영되지 않는" 침묵의 버그 입니다. 특히 @After 핸들러에서 엔티
개요 — 핸들러 실행 순서를 알아야 하는 이유 CAP Java(SAP Cloud Application Programming Model, Java 런타임)에서 커스텀 비즈니스 로직은 @Before , @On , @After 세 페이즈(Phase)의 이벤트 핸들러로 작성합니다. 이 세 페이
📖 개요와 이 글의 목표 SAP HANA Cloud에서 수량 × 단가 × (1 - 할인율) 같은 파생 값을 어디서 계산할지는 생각보다 성능에 큰 영향을 줍니다. 테이블에 계산형 컬럼(Generated/Calculated Column)으로 미리 정의해 두는 방식과, 매번 SELECT 문
개요: 핸들러 실행 순서를 알아야 하는 이유 CAP Java(SAP Cloud Application Programming Model, Java 런타임)에서 커스텀 로직은 @Before , @On , @After 세 가지 페이즈(Phase)의 이벤트 핸들러로 작성합니다. 문제는 이 세 페
S/4HANA 이관에서 커스텀 코드가 가장 큰 위험인 이유 S/4HANA 전환 프로젝트에서 예산 초과와 일정 지연의 가장 흔한 원인은 표준 기능이 아니라 수십 년간 쌓인 커스텀 ABAP 코드 입니다. ECC 시절 작성된 Z 프로그램은 S/4HANA에서 사라진 테이블(KONV, VBUK
1. iFlow는 언제, 어떻게 시작되는가 — 스케줄 실행의 배경 SAP Integration Suite(Cloud Integration 캐패빌리티)에서 Integration Flow(이하 iFlow)를 처음 만들면 반드시 마주치는 질문이 있습니다. "이 iFlow는 무엇이 실행시키는가
📖 개요 및 핵심 체크포인트 ECC 시절에 만든 Classic BAdI와 CMOD/SMOD 기반 확장 코드를 그대로 S/4HANA로 가져오면, 컴파일은 통과해도 런타임에서 조용히 무너지는 경우가 많습니다. S/4HANA(예: S/4HANA 2023 On-Premise)에서는 커널 기반
1. iFlow에서 에러를 무시하면 생기는 일 SAP BTP Integration Suite(Cloud Integration capability)에서 Integration Flow(iFlow)를 운영하다 보면, 수신 시스템의 일시적 다운, 네트워크 타임아웃, 잘못된 페이로드 같은 장애는
1. Dead Letter Channel 패턴이 왜 필요한가 SAP BTP Integration Suite로 S/4HANA와 외부 시스템을 연동하다 보면 반드시 마주치는 질문이 있습니다. "수신 시스템이 죽어 있을 때 그 메시지는 어디로 가는가?" 에러 처리를 설계하지 않은 iFlow에
Integration Suite 운영의 숨겨진 위험 SAP BTP Integration Suite(Cloud Integration 캐퍼빌리티)로 iFlow를 배포하고 나면 "연결됐으니 끝"이라고 생각하기 쉽습니다. 하지만 실제 운영 환경에서는 수신 시스템의 일시적 다운, 인증서 만료,
SOD란 무엇인가 — 직무 분리가 무너지면 벌어지는 일 SOD(Segregation of Duties, 직무 분리)는 한 사람이 하나의 비즈니스 프로세스를 처음부터 끝까지 혼자 처리하지 못하도록 권한을 나누는 내부통제 원칙입니다. 예를 들어 공급업체 마스터를 생성하는 사람 이 대금 지급
1. CASE TYPE OF가 필요한 상황과 배경 상속 계층을 설계하다 보면 결국 마주치는 순간이 있습니다. 부모 클래스 타입의 참조 변수 하나에 여러 자식 객체가 담겨 흘러 들어오고, 그중 특정 타입일 때만 다르게 처리해야 하는 상황입니다. ABAP 7.40 이전에는 이럴 때 TRY
📖 개요 — 이 글에서 다루는 내용 ABAP 시스템에서 외부 REST API를 호출해야 하는 순간은 반드시 옵니다. 환율 조회, 배송 추적, 사내 미들웨어 연동까지, 온프레미스 SAP ECC / S/4HANA(온프레미스) 환경에서는 CL_HTTP_CLIENT 가 사실상 표준 진입점입니
📖 개요 — 이 글에서 다루는 것 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 같은 테이블을 직접 조인해야 했습니다. 테이블 이름 자체가 독일어 약어라 가독성이 떨어지고,
KEKO 테이블의 구조와 원가 견적 도메인 개요 SAP 제품 원가 계산(Product Cost Planning, CO-PC) 영역에서 KEKO 는 수십 년간 원가 견적(Cost Estimate)의 헤더 정보를 담아온 핵심 테이블입니다. 자재별 표준 원가 견적을 생성(CK11N)하고 표시
BNKA 테이블의 구조와 한계 — 왜 직접 SELECT하면 안 되는가 SAP에서 은행 관련 데이터를 다뤄본 개발자라면 BNKA (은행 마스터), T012 (하우스 뱅크), T012K (하우스 뱅크 계좌) 세 테이블을 직접 SELECT하는 코드를 한 번쯤 봤을 것입니다. BNKA는 은행