# ABAP 버튼 처리: Application Toolbar vs ALV Toolbar

J._NA 개발일지·2025년 5월 30일

📌 주제 1: ABAP에서 버튼을 나눠서 처리하는 이유

SAP ABAP에서는 Application Toolbar (화면 상단 버튼)와 ALV Toolbar (ALV 그리드 내부 버튼)를 구분하여 이벤트를 처리합니다.
이유는 다음과 같습니다:

  • UI 주체가 다르기 때문

    • Application Toolbar: SAP Dynpro 기반 화면 제어
    • ALV Toolbar: CL_GUI_ALV_GRID 또는 ALV 함수 기반의 컨트롤
  • 처리 위치가 다름

    • Application Toolbar: MODULE user_command_**** INPUT
    • ALV Toolbar: CL_GUI_ALV_GRID의 이벤트 핸들러
  • 역할이 명확히 분리됨

    • 화면 전체 제어: 조회, 저장, 종료 등
    • ALV 관련 기능: 필터, 정렬, 선택 등

✅ 1. Application Toolbar (화면 도구막대)

  • 위치: SAP GUI 화면 상단
  • 정의: 화면 Painter 또는 PF-STATUS
  • 이벤트 처리: PAI MODULE

📌 예시

MODULE user_command_0100 INPUT.
  CASE sy-ucomm.
    WHEN 'EXEC'.
      " 실행 버튼 처리
    WHEN 'EXIT'.
      " 종료 처리
  ENDCASE.
ENDMODULE.

✅ 2. ALV Toolbar (ALV Grid 내부 도구막대)

  • 위치: ALV Grid 내부 도구막대
  • 정의 위치: CL_GUI_ALV_GRID 또는 REUSE_ALV_GRID_DISPLAY 사용 시
  • 이벤트 처리: ALV 이벤트 핸들러를 통해 처리
  • 주체: CL_GUI_ALV_GRID 컨트롤 (ALV 전용)

📌 예시 (클래스 기반 ALV)

CLASS lcl_event_handler DEFINITION.
  PUBLIC SECTION.
    METHODS: handle_user_command FOR EVENT user_command OF cl_gui_alv_grid.
ENDCLASS.

METHOD lcl_event_handler=>handle_user_command.
  CASE e_ucomm.
    WHEN 'MY_BTN'.
      " ALV 버튼 클릭 처리
  ENDCASE.
ENDMETHOD.

🔍 왜 나눠서 처리할까?

항목Application ToolbarALV Toolbar
UI 주체SAP 화면 (Dynpro)ALV Grid 컨트롤
버튼 위치화면 상단ALV 내부
정의 방식PF-STATUSALV 메서드로 추가
이벤트 처리 위치PAI MODULEALV 이벤트 핸들러
주 용도전체 화면 제어 (조회, 저장 등)ALV 동작 제어 (필터, 선택 등)

예시:

  • 전체 조회, 저장, 종료 등은 Application Toolbar
  • ALV 필터, 선택 처리, 엑셀 다운로드 등은 ALV Toolbar

✅ 결론

Application Toolbar와 ALV Toolbar는 UI의 주체가 다르고 역할도 다르기 때문에 이벤트를 분리해서 처리합니다.
이는 유지보수성과 기능 명확성을 위한 SAP의 설계 방식입니다.

profile
아밥 & 프론트엔드 개발자

0개의 댓글