CS Student’s SAP&Tech Journey✨

[SAP] ABAP GUI 구성 요소 활용 - 아이콘, Group Box, Drop Down, Push Button, 입력 검증 및 오류 처리 본문

SAP/GUI

[SAP] ABAP GUI 구성 요소 활용 - 아이콘, Group Box, Drop Down, Push Button, 입력 검증 및 오류 처리

인포마틱 2025. 3. 18. 16:11

SAP GUI에서 사용자 경험을 향상시키기 위해 아이콘(Status Icon) 활용, Group Box 구성, 입력 검증 및 오류 처리 방법을 정리해보겠습니다. 이 글에서는 GUI Status Bar, Title Bar, Function Key 및 버튼 이벤트 처리, 아이콘 활용, 입력 필드 검증, Dialog Message 처리 방법까지 다룹니다.


 

 

📌필독

이번 포스팅의 예제는 아래 포스팅들과 이어집니다. ⬇️

1️⃣ ABAP 화면 동적 제어 - MODIFY SCREEN 활용하기

2️⃣ ABAP 화면 전환 - Next Screen과 SET SCREEN 방식의 차이

3️⃣ ABAP 팝업 창과 커서 설정 - CALL SCREEN과 SET CURSOR 활용하기

4️⃣ ABAP GUI Status Bar와 Title Bar 설정하기 / OK_CODE 로직


 

 

1. SAP User Interface 개요

SAP GUI는 사용자의 인터페이스(UI)를 구성하는 다양한 요소들로 이루어져 있습니다. 주요 구성 요소는 다음과 같습니다.

 

✅ GUI Status Bar

GUI Status Bar는 화면 하단에 위치하며, 시스템 메시지와 상태 정보를 표시합니다. 사용자가 특정 작업을 수행할 때 피드백을 제공하는 역할을 합니다.

✅ Menu Bar

메뉴 바(Menu Bar)는 SAP 화면의 상단에 위치하며, 사용자가 수행할 수 있는 기능들을 메뉴 형태로 제공합니다. 기본적으로 "System"과 "Help" 메뉴가 포함되어 있으며, 추가적인 메뉴 항목을 정의할 수 있습니다.

✅ Application Toolbar

Application Toolbar는 화면 상단 또는 버튼 영역에 위치하며, 주요 기능을 단축 버튼으로 제공합니다. 사용자는 버튼을 클릭하여 빠르게 특정 기능을 실행할 수 있습니다.

✅ Function Keys

Function Keys는 특정 키 입력(F1~F12 등)에 따라 실행되는 기능을 정의할 수 있도록 합니다. 이를 활용하면 사용자 편의성을 높이고, 단축키를 이용한 빠른 작업 처리가 가능합니다.

 

 

2. 아이콘 설정 - Status Icon 활용

SAP GUI에서는 특정 정보를 직관적으로 표현하기 위해 Status Icon을 사용할 수 있습니다. 예를 들어, 국제선과 국내선을 구분하는 아이콘을 추가할 수 있습니다.

문법 (XXXXXTOP)

DATA: iconfield1 TYPE icons-text.

 

✅ 아이콘을 위한 변수 설정

 

XXXXXTOP

DATA GV_INT TYPE icons-text.

📌 GV_INT 변수는 아이콘 값을 저장하는 변수로 사용됩니다.

 

아이콘을 Status Icon으로 설정

✅ 모든 아이콘 관련 변수는 GV_INT로 통일

 

Screen 200

PROCESS BEFORE OUTPUT.
 MODULE STATUS_0200. 
 MODULE MODIFY_SCREEN.
 MODULE SET_ICON. "국제선/국내선 아이콘

PROCESS AFTER INPUT.
 MODULE USER_COMMAND_0200.

 

함수 ICON_CREATE 사용을 위해 Pattern 사용

✔️ Patten 선택

 

✔️ 아이콘 사용을 위한 함수 ICON_CREATE 입력

 

 

XXXXXO01(PBO)

MODULE set_icon OUTPUT.
  " 국제선인 경우 ICON_CHECKED 사용
  " 국내선인 경우 ICON_DUMMY 사용
  " 아이콘 T CODE : ICON
  IF SDYN_CONN-countryfr = SDYN_CONN-countryto.
    CALL FUNCTION 'ICON_CREATE'
      EXPORTING
        name                        = 'ICON_DUMMY'
     IMPORTING
       RESULT                      = GV_INT
     EXCEPTIONS

       ICON_NOT_FOUND              = 1
       OUTPUTFIELD_TOO_SHORT       = 2
       OTHERS                      = 3.

    ELSE.
      CALL FUNCTION 'ICON_CREATE'
      EXPORTING
        name                        = 'ICON_CHECKED'
     IMPORTING
       RESULT                      = GV_INT
     EXCEPTIONS
       ICON_NOT_FOUND              = 1
       OUTPUTFIELD_TOO_SHORT       = 2
       OTHERS                      = 3.
    ENDIF.
ENDMODULE.

✔️ 아이콘 로직 설정

 

 

3. 다양한 GUI 설정 활용하기

 

 

✅ Group Box

200번 화면에서 100번 화면에서 입력한 데이터를 표시하고, 검색 기능, 드롭다운 목록 등을 제공할 수 있도록 Group Box를 설정할 수 있습니다.

Screen 200

✔️ 100번 화면에서 입력한 필드 중 200번 화면에 표시하고 싶은 필드 선택

 

✔️ 200번 화면에서 100번 화면에서 입력한 데이터를 표시 확인

 

 

✅ Box 모양 설정

✔️ 좌측 Box 선택 후 필드 요소 묶어주기

 

✔️ Box로 묶인 것 확인

 

✅ Input Check & Search Help 설정하기

필드의 스트럭처는 SDYN_CONN 활용하였으니, SDYN_CONN 스트럭처를 통해 Input Check와 Search Help를 확인할 수 있습니다. 

📌 스트럭처를 통해 Input Check 및 Search Help 적용 가능합니다.

 

✅ Drop Down 설정하기

✔️ Layout - Dropdown - Listbox with key 선택 

 

 

✅ Push Button 설정하기

버튼을 눌렀을 때, 조회 모드/수정 모드 전환 기능을 하는 버튼을 설정합니다.

 

XXXXXI01 (PAI)

MODULE user_command_0200 INPUT.
  CASE OK_CODE.
    WHEN 'SAVE'.
      MESSAGE 'TO BE IMPLEMENTED ..' TYPE 'I'.
    WHEN 'BACK'.
      LEAVE TO SCREEN 100. "파괴하고 왔으니까 0은 안됨 100은 종료
    WHEN 'TOGG'.
      "조회 모드/수정모드 왔다갔다..
      CASE GV_MODE.
        WHEN 'D'.
          GV_MODE = 'U'.
        WHEN 'U'.
          GV_MODE = 'D'.
      ENDCASE.
   ENDCASE.
ENDMODULE.

 

✔️ DISPLAY / CREATE 버튼 작동 확인

 

✅ Screen Error

선택했던 값을 프로그램을 재실행할 때 다시 띄우도록 설정할 때 사용합니다.

  1. Set parameter
  2. Get parameter

Set , Get 기능을 사용하여 설정합니다.

✔️ SET, GET Parameter 설정

 

 

 

4. 입력값 체크 및 Dialog Message

 

⭐ SAP에서는 4가지 자동 입력 검증 기능이 존재합니다. 항상 4가지를 모두 자동으로 검정한 후, PAI가 실행됩니다. 

  1. Mandatory fields check
  2. Field format check
  3. Fixed values
  4. Foreign key check

 

특정 입력값 제한 예제 (항공사 코드 'AA' & 항공편 '0064' 선택 제한)

문법

FIELD <체크할 화면 요소> MODULE <체크 로직>.

 

Screen 100

PROCESS BEFORE OUTPUT.
  MODULE status_0100.
  MODULE set_cursor.


PROCESS AFTER INPUT.
  MODULE user_command_0100.
  FIELD SDYN_CONN-CARRID MODULE CHECK_CONNECTION. "입력값 체크 제한 원하는 필드

 

XXXXXI01 (PAI)

MODULE check_connection INPUT.
  IF SDYN_CONN-CARRID = 'AA' AND SDYN_CONN-CONNID = '0064'.
    "2개의 값 조합으로 조회/수정 모드로 200번 화면 못가게 함
    " => MESSAGE E 사용
    MESSAGE E003(ZTRAIN_07).
  ENDIF.
ENDMODULE.

 

ZTRAIN_07

 

주의 : AA / 064를 선택시 에러 처리를 해줘야 합니다.

PROCESS AFTER INPUT.
  MODULE EXIT AT EXIT-COMMAND.

  " Airline은 안열림, flight number 열림
*  FIELD SDYN_CONN-CARRID MODULE CHECK_CONNECTION.

  " Airline 열림, flight number 열림 -> 그룹핑 처리
  CHAIN.
    FIELD: SDYN_CONN-CARRID, SDYN_CONN-CONNID.
    MODULE CHECK_CONNECTION.
  ENDCHAIN.


MODULE USER_COMMAND_0100.

✅ Chain-Endchain을 사용하여 그룹핑 처리 가능

 

5. 화면 오류 방지 - Mandatory Fields 우회 방법

필수 입력 필드 오류 발생 시 Back 버튼을 누를 수 있도록 설정하며, 2가지 방법을 사용합니다.

  1. Function 타입을 E로 만든다.
  2. AT EXIT-COMMAND 로직 설정해준다.

 

✅ Function 타입 E 설정

 

 

✅ AT EXIT-COMMAND 로직 설정

Screen 100

PROCESS AFTER INPUT.
  MODULE user_command_0100.

 

XXXXXI01 (PAI)

MODULE exit INPUT.
  CASE OK_CODE.
    WHEN 'BACK' OR 'EXIT'.
      LEAVE PROGRAM.
  ENDCASE.
ENDMODULE.

Function Type을 'E'로 설정하여 필수 필드 오류를 우회할 수도 있습니다.