입력값 자동 채움? 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은 채운다.