CAST vs ?= — 다운캐스팅 실수 3가지 #shorts #SAP #ABAP
이 글이 답하는 질문 레거시 ABAP 코드를 유지보수하다 보면 MOVE ?TO 나 ?= 연산자로 객체 참조를 다루는 패턴을 흔히 만납니다. 이런 코드는 ABAP 7.40 이후 도입된 CAST 연산자로 대체되어야 합니다. 단순한 문법 변경이 아니라 가독성, 표현식 기반 프로그래밍, 인라인
이 글이 답하는 질문 레거시 ABAP 코드를 유지보수하다 보면 MOVE ?TO 나 ?= 연산자로 객체 참조를 다루는 패턴을 흔히 만납니다. 이런 코드는 ABAP 7.40 이후 도입된 CAST 연산자로 대체되어야 합니다. 단순한 문법 변경이 아니라 가독성, 표현식 기반 프로그래밍, 인라인
1. Object Page 레이아웃과 섹션의 역할 SAP Fiori Elements의 Object Page는 단일 비즈니스 엔티티(예: 판매주문 한 건, 거래처 한 곳)의 상세 정보를 표시하기 위한 표준 플로어플랜입니다. List Report에서 행을 클릭했을 때 펼쳐지는 그 페이지를
List Report가 어노테이션을 해석하는 방식 SAP Fiori Elements의 List Report는 CDS(또는 OData) 메타데이터에 선언된 @UI 어노테이션을 런타임에 해석해 UI를 자동 렌더링합니다. 개발자가 XML View를 직접 작성하지 않아도 컬럼, 필터바, 헤더
개요 및 이 글에서 다룰 내용 CAP(Cloud Application Programming Model) for Node.js에서 srv.run() 은 서비스 인스턴스를 통해 CQN(Core Query Notation) 쿼리를 직접 실행하는 핵심 API입니다. 이 글에서는 트랜잭션 컨텍스
작성 중...
왜 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로 핵심 로직에 깊숙이 개입하
예외를 무시하면 생기는 실제 장애 사례 SAP HANA SQLScript에서 예외 처리를 생략한 채 프로시저를 운영에 올리면, 단순한 버그가 아니라 데이터 정합성 자체가 무너지는 사고로 이어집니다. 예를 들어 SalesOrder 헤더는 INSERT 됐지만 라인 아이템 INSERT 단계에
Generative AI Hub란? SAP BTP의 Generative AI Hub는 OpenAI, Anthropic, Mistral 등 주요 LLM을 단일 API 엔드포인트로 통합 제공합니다. 각 모델마다 별도 계정 없이 BTP 자격증명 하나로 모든 LLM을 호출할 수 있습니다. AI
OData V2 vs V4 — Service Binding 선택의 차이 ABAP RAP에서 Service Binding을 생성할 때 OData 버전을 선택해야 합니다. V2 는 오래된 Fiori 앱과 호환성이 높고, V4 는 최신 기능과 성능이 더 우수합니다. 언제 어느 버전을 선택해야
Bound Action vs Unbound Action RAP(ABAP RESTful Application Programming Model)에서 Action은 데이터를 변경하는 비표준 작업입니다. Bound Action 은 특정 엔티티 인스턴스에 종속되지만, Unbound Action
ABAP 개발자도 이제 AI 코파일럿 시대 SAP의 AI 어시스턴트 Joule 이 ABAP 개발 환경에 직접 통합되었습니다. ABAP Development Tools(ADT)나 SAP Build Code에서 코드를 짜다가 막히면, Joule에게 바로 물어볼 수 있습니다. 어떤 걸 도와주
이 글이 답하는 질문 RAP에서 Function과 Action은 언제 각각 사용하나요? 데이터 변경이 가능한 건 둘 중 어느 쪽인가요? OData에서 어떤 HTTP 메서드로 매핑되나요? Function — 읽기 전용 오퍼레이션 RAP Behavior Definition에서 functio
컴포넌트 간 통신, 왜 까다로울까요? UI5 앱이 커지면 부모→자식 모델 바인딩만으로는 부족합니다. 형제 뷰나 독립된 컨트롤러 간 데이터 전달 시 직접 참조를 남발하면 의존성 지옥에 빠집니다. EventBus는 이 문제를 Publish/Subscribe 패턴으로 해결합니다. 발행(Pub
Function과 Action, 뭐가 다른가? RAP(RESTful ABAP Programming) BDEF에서 function 과 action 은 둘 다 커스텀 오퍼레이션처럼 보이지만 근본적인 차이가 있다. Function은 읽기 전용 , Action은 상태 변경 이다. 이 구분을 무
RAP에서 Determine과 Modify, 헷갈리죠? 두 메서드는 트리거 시점이 완전히 다릅니다. 이걸 모르면 의도치 않은 순서로 로직이 실행됩니다. determineBySave 저장(Save) 직전에 호출됩니다. 데이터베이스에 기록하기 전, 최종 필드 값을 계산하거나 파생 데이터를
Custom Action이란? CAP CDS에서 action 은 데이터 조회·수정 외의 비즈니스 로직을 명시적으로 노출하는 방법입니다. REST로 치면 POST /approve 같은 비표준 동작을 OData 서비스에 추가할 때 사용합니다. CDS 정의 service OrderServic
External vs Internal Numbering RAP에서 엔티티를 생성할 때 키(Key) 값을 누가 결정하느냐에 따라 두 방식으로 나뉩니다. External Numbering 은 클라이언트(UI/API 호출자)가 키를 직접 지정하고, Internal Numbering 은 서버가
이 글이 답하는 질문 RAP Managed와 Unmanaged의 실질 차이는? CRUD 코드를 직접 안 써도 되는 이유는? Behavior Definition에 뭘 써야 CRUD가 완성되나? 직접 해보기 1. Behavior Definition 선언 managed implementati