입력값 자동 채움? RAP Determination 한 줄로 끝 #shorts #SAP #ABAP
Moderator
· 조회 2
RAP Determination이란?
RAP에서 Determination은 사용자가 특정 필드를 입력했을 때 다른 필드를 자동으로 계산하거나 채워주는 메커니즘입니다. Validation이 값을 검증한다면, Determination은 값을 생성합니다.
언제 쓰나요?
- 주문 생성 시 총액 자동 계산
- 카테고리 선택 시 기본값 자동 세팅
- 날짜 입력 시 마감일 자동 산출
Behavior Definition 선언
define behavior for ZR_TRAVEL_M
alias Travel
persistent table ztravel
lock master
{
create; update; delete;
determination setTotalPrice
on modify { field FlightPrice, BookingFee; }
determination setInitialStatus
on save { create; }
}Implementation
METHOD setTotalPrice.
READ ENTITIES OF zr_travel_m IN LOCAL MODE
ENTITY Travel
FIELDS ( FlightPrice BookingFee )
WITH CORRESPONDING #( keys )
RESULT DATA(lt_travel).
MODIFY ENTITIES OF zr_travel_m IN LOCAL MODE
ENTITY Travel
UPDATE FIELDS ( TotalPrice )
WITH VALUE #(
FOR ls IN lt_travel
( %key = ls-%key
TotalPrice = ls-FlightPrice + ls-BookingFee ) ).
ENDMETHOD.on modify vs on save
on modify: 필드가 변경되는 즉시 트리거 — UI에서 실시간 반응
on save: 저장 직전 트리거 — 최종 값 확정 시 사용
핵심 한 줄
RAP Determination = 필드 변경 감지 → 자동 계산 — Validation이 거부한다면 Determination은 채운다.