[ABAP] Event handler 란?

몰라·2025년 4월 6일

ABAP

목록 보기
8/13

순서를 말로 표현하기가 어려워서 정리:
이벤트 처리를 위해 먼저 핸들러 클래스를 정의 및 구현하고,
그다음 인스턴스를 생성한 후 SET HANDLER 문으로 ALV와 이벤트를 연결합니다


클래스 기반 UI인 ALV(Grid) 와 같은 컴포넌트에서는
사용자의 특정 액션(F4 호출, 셀 클릭, 더블클릭 등)에 따라
자동으로 반응하는 로직을 구현해야 할 때가 많습니다.
이때 사용하는 메커니즘이 바로 이벤트 핸들러(Event Handler) 입니다.


⚙️ 작동 원리

  1. 사용자가 ALV에서 특정 동작을 하면
  2. CL_GUI_ALV_GRID 객체는 해당 이벤트를 발생시키고
  3. 사전에 연결된 핸들러 메소드가 자동으로 호출되어 처리합니다.

🛠 이벤트 기반 처리 로직 구성 방법

순서설명
이벤트 핸들러 클래스를 선언한다
METHOD on_event FOR EVENT ... OF cl_gui_alv_grid 형식으로 이벤트 메소드를 구현한다
SET HANDLER 문으로 ALV 객체와 이벤트 핸들러 메소드를 연결한다

💡 예제: ALV 셀에서 F4 도움말 처리

CLASS lcl_handler DEFINITION.
  PUBLIC SECTION.
    METHODS on_f4 FOR EVENT onf4 OF cl_gui_alv_grid
      IMPORTING e_fieldname es_row_no er_event_data.
ENDCLASS.

CLASS lcl_handler IMPLEMENTATION.
  METHOD on_f4.
    " F4 키 눌렀을 때 실행될 로직 작성
  ENDMETHOD.
ENDCLASS.

" ALV 생성 후 이벤트 핸들러 연결
DATA: go_handler TYPE REF TO lcl_handler.
CREATE OBJECT go_handler.

SET HANDLER go_handler->on_f4 FOR go_grid.

🔍 요약

이벤트 핸들러는 사용자 액션에 대한 반응 로직을 정의하는 구조

SET HANDLER로 ALV 객체와 연결해 두면
→ 사용자의 행동에 따라 자동으로 메소드가 호출됨

ALV를 인터랙티브하게 만들기 위해 핵심적으로 사용되는 개념

profile
일주일 동안 헤맨 흔적을 정리하러 왔습니다

0개의 댓글