SAP ABAP SALV 시리즈 1탄. CL_SALV_TABLE 객체를 생성하고 데이터를 출력하는 가장 기초적이고 핵심적인 방법을 설명합니다.
CONTENTS: SALV 1탄 - 객체 생성 기초
1. 실무 적용 코드 예시 (Basic SALV)
" 1. 데이터 조회 (New SQL & Inline Declaration)
SELECT *
FROM sflight
INTO TABLE @DATA(lt_flight)
UP TO 100 ROWS.
IF lt_flight IS NOT INITIAL.
" 2. SALV 객체 생성 및 인스턴스화
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = DATA(lo_alv)
CHANGING
t_table = lt_flight
).
" 3. 화면 출력
lo_alv->display( ).
CATCH cx_salv_msg INTO DATA(lx_msg).
MESSAGE lx_msg->get_text( ) TYPE 'E'.
ENDTRY.
ELSE.
MESSAGE '조회된 데이터가 없습니다.' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
2. 기술 상세 설명
정의 (Definition)
SALV(SAP ALV Object Model)는 기존 Function 기반(REUSE_ALV_*) 방식의 한계를 극복하기 위해 도입된 객체 지향형 ALV 모델입니다. CL_SALV_TABLE 클래스를 핵심으로 하며, 개발자가 일일이 필드 카탈로그를 작성하지 않아도 인터널 테이블의 구조를 스스로 파악하여 화면을 구성합니다.
아키텍처 및 특징
- Factory Pattern: 개발자가 직접 CREATE OBJECT를 수행하지 않고, 클래스 메서드인 factory를 통해 시스템이 최적화된 객체를 반환합니다.
- Encapsulation: 그리드 설정, 컬럼 제어, 정렬 기능 등이 각각의 서브 클래스로 캡슐화되어 있어 관리가 용이합니다.
장점 및 주의사항
| 장점 (Pros) | 주의사항 (Cons) |
| Field Catalog 수동 생성 불필요 | 기본적으로 조회 전용 (Editable 불가) |
| Inline Declaration으로 코드 최소화 | HANA 외 환경에서 성능 차이 발생 가능 |
| 객체 지향 코드로 가독성 우수 | 복잡한 다중 컨테이너 구현 시 추가 설정 필요 |
3. 핵심 구현 포인트
- @DATA(lt_flight): 데이터 조회와 동시에 테이블 구조와 변수를 선언합니다.
- IMPORTING r_salv_table: 생성된 SALV 객체를 담을 참조 변수를 별도 선언 없이 그 자리에서 선언합니다.
- Exception Handling: SALV는 런타임 오류 방지를 위해 cx_salv_msg 예외 처리를 권장합니다.
'ABAP > SALV' 카테고리의 다른 글
| [SALV] 6탄: 데이터 시각화의 정점, 컬럼 및 행 색상 변경 (Color) (0) | 2026.04.08 |
|---|---|
| [SALV] 5탄: 이벤트 핸들링 (Double Click & Hotspot) (0) | 2026.04.07 |
| [SALV] 4탄: 레이아웃 및 디스플레이 설정 (Variant, Title, Stripe) (0) | 2026.04.06 |
| [SALV] 3탄: 컬럼 속성 제어 (Text, Alignment, Technical) (0) | 2026.03.27 |
| [SALV] 2탄: 표준 기능 확장 (Toolbar, Selection, Sort/Filter) (0) | 2026.03.27 |