iFlow 에러 방치하면 큰일 — 메시지 손실 막는 법 #shorts #SAP #BTP
에러 핸들링 없이 iFlow를 운영하면 생기는 일 새벽 3시, 운영팀에 긴급 호출이 옵니다. "어제 들어온 구매발주 17건이 S/4HANA에 안 들어왔어요." 로그를 뒤져보니 SAP BTP Integration Suite의 iFlow는 분명 메시지를 수신했는데, 중간 매핑 단계에서 Nu
에러 핸들링 없이 iFlow를 운영하면 생기는 일 새벽 3시, 운영팀에 긴급 호출이 옵니다. "어제 들어온 구매발주 17건이 S/4HANA에 안 들어왔어요." 로그를 뒤져보니 SAP BTP Integration Suite의 iFlow는 분명 메시지를 수신했는데, 중간 매핑 단계에서 Nu
IS BOUND vs IS INITIAL — 헷갈리는 두 연산자 ABAP 객체지향 코드를 작성하다 보면 참조 변수(reference variable)가 실제로 객체를 가리키고 있는지, 아니면 그 객체가 특정 클래스의 인스턴스인지를 자주 확인하게 됩니다. 이때 자주 등장하는 두 연산자가
이 글이 답하는 질문 레거시 ABAP 코드를 유지보수하다 보면 MOVE ?TO 나 ?= 연산자로 객체 참조를 다루는 패턴을 흔히 만납니다. 이런 코드는 ABAP 7.40 이후 도입된 CAST 연산자로 대체되어야 합니다. 단순한 문법 변경이 아니라 가독성, 표현식 기반 프로그래밍, 인라인
개요 및 핵심 포인트 ABAP 객체 지향 프로그래밍에서 참조 변수(reference variable) 간 형 변환은 일상적으로 발생합니다. 과거에는 MOVE source ?TO target 또는 MOVE source TO target TYPE 구문을 사용했지만, ABAP 7.40 SP0
1. Object Page 레이아웃과 섹션의 역할 SAP Fiori Elements의 Object Page는 단일 비즈니스 엔티티(예: 판매주문 한 건, 거래처 한 곳)의 상세 정보를 표시하기 위한 표준 플로어플랜입니다. List Report에서 행을 클릭했을 때 펼쳐지는 그 페이지를
List Report가 어노테이션을 해석하는 방식 SAP Fiori Elements의 List Report는 CDS(또는 OData) 메타데이터에 선언된 @UI 어노테이션을 런타임에 해석해 UI를 자동 렌더링합니다. 개발자가 XML View를 직접 작성하지 않아도 컬럼, 필터바, 헤더
PersistenceService란 무엇인가 PersistenceService 는 CAP for Java 런타임이 제공하는 영속성 추상화 계층입니다. 패키지 com.sap.cds.services.persistence.PersistenceService 에 정의되어 있으며, CDS 엔터티
왜 EventBus가 필요한가 대형 SAP Fiori 애플리케이션은 보통 여러 개의 Component로 쪼개져 있습니다. 주문 목록을 보여주는 컴포넌트, 주문 상세를 띄우는 컴포넌트, 사이드 알림 패널을 다루는 컴포넌트가 서로 다른 페이지·다른 라이프사이클을 가진 상태에서 "방금 사용자
왜 CAP 아키텍트 면접은 코드 한 줄로 합격이 갈릴까? SAP BTP 프로젝트가 늘어나면서 CAP(Cloud Application Programming Model) 아키텍트 포지션의 채용도 활발해졌습니다. 그런데 막상 면접장에 들어가 보면 "CDS 엔티티 어떻게 정의하나요" 같은 표면
같은 요건, 세 갈래의 길 SAP S/4HANA와 ABAP Platform 환경에서 표준 기능을 확장할 때, 어떤 방식을 고를지 망설인 경험이 한 번쯤 있을 겁니다. 같은 "판매 오더에 프로모션 코드 필드 하나 추가"라는 요건이라도 Tier 1(Key User), Tier 2(Devel
SAP 확장 모델이 3계층으로 나뉜 이유 SAP S/4HANA Cloud가 등장하면서 ERP를 "건드리지 않고 어떻게 확장할 것인가"가 핵심 과제로 떠올랐습니다. 과거 ECC 시절에는 SE38에서 표준 프로그램을 그대로 수정하거나, User Exit/BAdI로 핵심 로직에 깊숙이 개입하
이 글이 답하는 질문 CAP에서 외부 OData 서비스를 연결하려면? 서드파티 API를 CAP 쿼리처럼 쓸 수 있나? RemoteService 3단계 1. CDS에서 외부 서비스 선언 // srv/external.cds using { northwind } from '../srv/exte
이 글이 답하는 질문 On-stack ABAP과 BTP ABAP, 실제로 어떤 코드 제약이 생기나? 클라우드 전환 시 가장 먼저 포기해야 할 것은? 진짜 차이 3가지 1. Released API만 허용 BTP ABAP(ABAP Cloud)은 SAP가 릴리즈 계약(C1/C2)을 공개한 클
Principal Propagation이란? SAP BTP에서 외부 백엔드 시스템을 호출할 때, 현재 로그인한 사용자의 ID를 그대로 전달 하는 메커니즘입니다. 이게 없으면 기술 사용자(Technical User)로만 연결되어 감사 추적(Audit Trail)이 불가능 합니다. 왜 문제
Generative AI Hub란? SAP BTP의 Generative AI Hub는 OpenAI, Anthropic, Mistral 등 주요 LLM을 단일 API 엔드포인트로 통합 제공합니다. 각 모델마다 별도 계정 없이 BTP 자격증명 하나로 모든 LLM을 호출할 수 있습니다. AI
BTP Generative AI Hub LLM 통합 시 실수 TOP 3 SAP BTP Generative AI Hub는 OpenAI, Anthropic, Google 등 다양한 LLM을 단일 API로 호출할 수 있게 해주는 서비스입니다. 하지만 비즈니스 앱에 통합할 때 흔히 발생하는 실
Bound Action vs Unbound Action RAP(ABAP RESTful Application Programming Model)에서 Action은 데이터를 변경하는 비표준 작업입니다. Bound Action 은 특정 엔티티 인스턴스에 종속되지만, Unbound Action
이 글이 답하는 질문 RAP에서 Function과 Action은 언제 각각 사용하나요? 데이터 변경이 가능한 건 둘 중 어느 쪽인가요? OData에서 어떤 HTTP 메서드로 매핑되나요? Function — 읽기 전용 오퍼레이션 RAP Behavior Definition에서 functio
Function과 Action, 뭐가 다른가? RAP(RESTful ABAP Programming) BDEF에서 function 과 action 은 둘 다 커스텀 오퍼레이션처럼 보이지만 근본적인 차이가 있다. Function은 읽기 전용 , Action은 상태 변경 이다. 이 구분을 무
RAP에서 Determine과 Modify, 헷갈리죠? 두 메서드는 트리거 시점이 완전히 다릅니다. 이걸 모르면 의도치 않은 순서로 로직이 실행됩니다. determineBySave 저장(Save) 직전에 호출됩니다. 데이터베이스에 기록하기 전, 최종 필드 값을 계산하거나 파생 데이터를