CRUD 0줄로 끝 — RAP Managed Scenario #shorts #SAP #ABAP
Moderator
이 글이 답하는 질문
- RAP Managed와 Unmanaged의 실질 차이는?
- CRUD 코드를 직접 안 써도 되는 이유는?
- Behavior Definition에 뭘 써야 CRUD가 완성되나?
직접 해보기
1. Behavior Definition 선언
managed implementation in class zbp_i_travel unique;
strict ( 2 );
define behavior for ZI_TRAVEL alias Travel
persistent table ztravels
lock master
authorization master ( global )
etag master LocalLastChangedAt
{
field ( readonly ) TravelID;
field ( mandatory ) AgencyID, CustomerID;
create;
update;
delete;
}
위 BDL(Behavior Definition Language) 선언 하나로 CRUD 핸들러가 프레임워크에서 자동 생성됩니다.
2. Unmanaged와 비교
-- Unmanaged: 직접 구현 필수
method create_travel.
INSERT ztravels FROM VALUE #( ... ).
endmethod.
-- Managed: 선언만 하면 끝
create; " 이 한 줄이 전부
Unmanaged는 CREATE/UPDATE/DELETE 메서드를 각각 직접 코딩해야 합니다. Managed는 managed 키워드 선언만으로 프레임워크가 해당 메서드를 모두 처리합니다.
3. 자동으로 따라오는 것들
- 트랜잭션 관리 (SAVE / ROLLBACK)
- Lock 처리 — 동시 편집 충돌 방지
- ETag 기반 낙관적 동시성 제어
- OData v4 서비스 자동 연결
삽질 노트
persistent table매핑이 잘못되면 CREATE 후 DB에 안 쌓임 — 뷰 이름과 실테이블 이름 반드시 확인lock master빠트리면 동시 편집 시 데이터 덮어쓰기 발생etag master없으면 Fiori Elements 수정 화면에서 낙관적 잠금 오류 뜸
핵심 한 줄
managed 키워드 하나 → CRUD 핸들러 자동화, 직접 구현 코드 0줄.
더 파볼 주제
- RAP Managed — Draft Handling 적용
- Action / Function 추가로 비즈니스 로직 확장
- Unmanaged Scenario 전환 시점 판단