ON SAVE vs ON MODIFY — 트리거 차이 #shorts #SAP #ABAP
RAP에서 Determine과 Modify, 헷갈리죠? 두 메서드는 트리거 시점이 완전히 다릅니다. 이걸 모르면 의도치 않은 순서로 로직이 실행됩니다. determineBySave 저장(Save) 직전에 호출됩니다. 데이터베이스에 기록하기 전, 최종 필드 값을 계산하거나 파생 데이터를
RAP에서 Determine과 Modify, 헷갈리죠? 두 메서드는 트리거 시점이 완전히 다릅니다. 이걸 모르면 의도치 않은 순서로 로직이 실행됩니다. determineBySave 저장(Save) 직전에 호출됩니다. 데이터베이스에 기록하기 전, 최종 필드 값을 계산하거나 파생 데이터를
이 글이 답하는 질문 SQLScript가 일반 SQL과 뭐가 다른가? HANA Procedure를 언제 써야 하나? TABLE TYPE은 왜 별도로 정의하는가? 직접 해보기 1. Table Type 정의 CREATE TYPE tt_employee AS TABLE ( empId NVARC
이 글이 답하는 질문 SQLScript 프로시저 기본 구조는? TABLE TYPE으로 여러 행을 반환하려면? DECLARE, IF 절차형 구문은 어떻게 쓰나요? 프로시저 기본 구조 BEGIN-END 블록에 IN/OUT 파라미터를 선언하고 로직을 작성합니다. CREATE OR REPLAC
이 글이 답하는 질문 Calculation View가 SQL View와 구체적으로 뭐가 다른가? 어떤 상황에서 Calculation View를 써야 하나? 처음 만들 때 어떤 순서로 접근하나? 직접 해보기 SQL View vs Calculation View 차이 -- SQL View:
이 글이 답하는 질문 CAP for Java에서 역할(Role) 기반 접근 제어를 어떻게 선언하나요? @AuthorizedRole과 @PreAuthorize 중 어떤 걸 써야 하나요? 로컬에서 권한 테스트는 어떻게 하나요? 직접 해보기 1. CDS에서 Role 선언 CDS 서비스 정의에
이 글이 답하는 질문 BTP 서비스 카탈로그에서 인스턴스를 만들 때 초보자가 하는 실수는? 서비스 인스턴스 생성 후 앱에 연결하려면 뭐가 더 필요한가? 서비스 플랜 차이를 모르고 선택하면 어떤 문제가 생기나? 실수 1 — 서비스 플랜을 아무거나 고름 BTP Service Catalog에
Object Page란? Fiori 상세 화면의 표준 패턴입니다. 구조는 Header Area 와 Content Area 로 나뉘고, Content Area는 Section → SubSection → Facet 계층을 따릅니다. 이 계층을 잘못 이해하면 레이아웃이 무너지거나 내용이 통째
이 글이 답하는 질문 BTP Service Catalog에서 서비스 인스턴스는 어떻게 만드나요? 서비스 바인딩이 꼭 필요한가요? 인스턴스와 바인딩은 어떻게 다른가요? BTP Service Catalog란 BTP Service Catalog는 SAP BTP에서 사용 가능한 모든 서비스 목
이 글이 답하는 질문 HANA SQLScript에서 WHILE/FOR 루프를 쓰면 왜 느린가? Set 방식으로 어떻게 대체하나? 실무에서 루프를 피해야 하는 이유는? 직접 해보기 루프 방식 (느림) -- 행 단위 처리 — 대용량에서 치명적 DECLARE i INT = 1; WHILE i
Fiori에서 ARIA가 없으면 벌어지는 일 SAP Fiori 앱에 ARIA 속성을 빠뜨리면 스크린 리더 사용자는 버튼이 존재하는지조차 알 수 없습니다. 단순한 권고 사항이 아닙니다. 유럽 EAA(European Accessibility Act) 2025, 미국 Section 508 등
이 글이 답하는 질문 여러 Component로 쪼개진 UI5 앱에서, 서로를 직접 참조하지 않고 데이터를 주고받으려면 어떻게 해야 하나? EventBus의 channelId와 eventId는 어떤 단위로 설계해야 충돌 없이 운영할 수 있나? subscribe를 걸어 둔 뒤 뷰가 dest
이 글이 답하는 질문 CAP for Java에서 Custom Action을 어떻게 정의하나? Java Handler를 @On으로 연결하는 정확한 방법은? Action 구현 시 자주 하는 실수는? 직접 해보기 1. service.cds에 Action 정의 // srv/my-service.
Custom Action이란? CAP CDS에서 action 은 데이터 조회·수정 외의 비즈니스 로직을 명시적으로 노출하는 방법입니다. REST로 치면 POST /approve 같은 비표준 동작을 OData 서비스에 추가할 때 사용합니다. CDS 정의 service OrderServic
Custom Action이 필요한 순간 CAP for Java에서 표준 CRUD만으로는 부족할 때 Custom Action을 사용합니다. 주문 승인, 결제 처리, 외부 시스템 호출처럼 특정 비즈니스 로직을 전용 API 엔드포인트로 노출할 수 있습니다. CDS 모델에서 Action 선언
S/4HANA 마이그레이션은 한 번 잘못 시작하면 비즈니스가 멈춘다. 프로젝트 전 현장에서 반복적으로 나타나는 실수 3가지를 체크포인트로 정리했다. 실수 1 — 커스텀 코드 임팩트 분석 없이 착수 S/4HANA는 여러 API와 데이터 모델이 변경됐다. SAP Readiness Check
SAP BTP에서 XSUAA(User Account and Authentication)는 OAuth2 기반 인증의 핵심이다. 그런데 설정 하나만 틀려도 앱 전체 인증이 멈춘다. 실무에서 반복되는 실수 3가지를 정리했다. 실수 1 — xs-security.json scope를 role t
이 글이 답하는 질문 CAP 프로젝트에서 초기 데이터를 자동으로 로드하려면? CSV Seed 파일명은 어떻게 지어야 하나? 초기 데이터 로드가 안 될 때 어디를 봐야 하나? CSV Seed란 CAP(Cloud Application Programming Model)에서 앱 시작 시 DB에
External vs Internal Numbering RAP에서 엔티티를 생성할 때 키(Key) 값을 누가 결정하느냐에 따라 두 방식으로 나뉩니다. External Numbering 은 클라이언트(UI/API 호출자)가 키를 직접 지정하고, Internal Numbering 은 서버가
내부 테이블 3종 기본 ABAP 내부 테이블은 STANDARD , SORTED , HASHED 세 가지 타입이 있습니다. 단순해 보이지만 잘못 선택하면 READ 성능이 수십 배 달라집니다. 특히 데이터 건수가 늘어날수록 차이가 두드러집니다. STANDARD TABLE — 기본, 순차 탐
이 글이 답하는 질문 APPEND와 INSERT, 뭐가 다른가? 내부 테이블 중간에 행을 추가하려면? SORTED TABLE에서는 어떤 걸 써야 할까? 직접 해보기 1. APPEND — 항상 마지막에 DATA lt_data TYPE TABLE OF string. APPEND 'Alpha