CS Student’s SAP&Tech Journey✨
[SAP] ABAP GUI 구성 요소 활용 - 아이콘, Group Box, Drop Down, Push Button, 입력 검증 및 오류 처리 본문
[SAP] ABAP GUI 구성 요소 활용 - 아이콘, Group Box, Drop Down, Push Button, 입력 검증 및 오류 처리
인포마틱 2025. 3. 18. 16:11SAP 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
선택했던 값을 프로그램을 재실행할 때 다시 띄우도록 설정할 때 사용합니다.
- Set parameter
- Get parameter
Set , Get 기능을 사용하여 설정합니다.
✔️ SET, GET Parameter 설정
4. 입력값 체크 및 Dialog Message
⭐ SAP에서는 4가지 자동 입력 검증 기능이 존재합니다. 항상 4가지를 모두 자동으로 검정한 후, PAI가 실행됩니다.
- Mandatory fields check
- Field format check
- Fixed values
- 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가지 방법을 사용합니다.
- Function 타입을 E로 만든다.
- 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'로 설정하여 필수 필드 오류를 우회할 수도 있습니다.
'SAP > GUI' 카테고리의 다른 글
[SAP] ABAP GUI Status Bar와 Title Bar 설정하기 / OK_CODE 로직 (0) | 2025.03.14 |
---|---|
[SAP] ABAP 팝업 창과 커서 설정 - CALL SCREEN과 SET CURSOR 활용하기 (0) | 2025.03.13 |