SAP

Hotspot_click 핫해 핫해

selectall 2025. 12. 5. 10:59

 

Hotspot(핫스폿) 정의

ALV 또는 UI 요소에서 클릭 가능한 영역을 만들어주는 기능
→ 사용자가 특정 셀/필드를 클릭했을 때 ABAP 코드에서 이벤트를 처리할 수 있음


어디에서 사용하나?

ALV Grid

특정 필드를 Hotspot으로 지정하면 클릭 이벤트(HOTSPOT_CLICK)를 받을 수 있어.

예: 자재번호를 클릭하면 상세 화면으로 이동
예: 전표번호를 클릭하면 MIGO/FB03 호출


ALV Hotspot 설정 방법

방법 1: Field Catalog에서 HOTSPOT = ‘X’

ls_fcat-fieldname = 'MATNR'.
ls_fcat-hotspot  = 'X'.
APPEND ls_fcat TO lt_fcat.

클릭 이벤트 처리

SET HANDLER lcl_event_handler=>on_hotspot_click FOR gr_grid.

CLASS lcl_event_handler DEFINITION.
  PUBLIC SECTION.
    METHODS on_hotspot_click
      FOR EVENT hotspot_click OF cl_gui_alv_grid
      IMPORTING e_row_id e_column_id.
ENDCLASS.

CLASS lcl_event_handler IMPLEMENTATION.
  METHOD on_hotspot_click.
    READ TABLE gt_list INTO DATA(ls_row) INDEX e_row_id.
    CASE e_column_id-fieldname.
      WHEN 'MATNR'.
        " 자재 상세로 이동 처리
      WHEN 'EBELN'.
        " 구매오더 상세 처리
    ENDCASE.
  ENDMETHOD.
ENDCLASS.

Hotspot과 Button의 차이

기능 Hotspot Button

형태 링크처럼 보임 버튼 UI
사용처 특정 셀 클릭 처리 명확한 액션 버튼이 필요할 때
구현 Field catalog, event Toolbar 사용

✅상세구현

✔ 1. 필드 카탈로그 - 핫스팟 필드 지정
2. Class 선언
3. Class Implementation 생성

4. 특정필드 핫스팟 지정

5. 완료

조회 조건에 맞게 데이터가 나온다. 이때 주목-! 핫스팟 이벤트 걸기 전이라서 밑줄 친 필드가 없음.

 

1. 필드 카탈로그 - 핫스팟 필드 지정

핫스팟을 지정 해줄 필드를 필드카탈로그에서 CASE문/IF 문으로 해당 필드는 핫스팟을 적용 할 것을 지정함.

 

2. 이벤트 메소드를 지정하여 구현하기위해 Class 선언.

이벤트의 importing 되는 parameters는 해당 메소드 더블 클릭시 나온다.

 

 

3. 이벤트로 인해 어떤 action이 발생하는지 지정 필요 - class implementation 생성.

hotspot 의 parameter를 using 해주고 perform 문으로 이벤트로 발생하는 문 생성.

 

 

4. 특정필드에만 핫스팟을 주기위해 CASE문 활용.

- Hotspot 클릭 시 보여지는 데이터를 get_prod 통해 불러옴.

Call Screen 을 통해 핫스팟시 불러올 화면 생성.

 

- Call transaction 로도 이동 가능 

Call transaction 사용

 

5. 완료

HOTSPOT CLICK 후 CALL SCREEN

 

'SAP' 카테고리의 다른 글

자주 쓰는 FUNCTION 모음  (0) 2025.12.08
NEW SYNTAX  (0) 2025.12.05
Field Catalog / Layout / Sort  (0) 2025.12.05
FIELD, CHAIN 문  (0) 2025.12.03
통화 / 단위 Possible Entries (F4) 안 뜰 때  (0) 2025.12.03