✅ Selection Screen과 이벤트 처리 흐름
SAP에서는 프로그램을 실행하면 일정한 흐름(이벤트 순서)으로 코드가 실행된다.
🧭 이벤트 흐름 요약 (간단 다이어그램)
- 프로그램 시작
- INITIALIZATION
→ Selection Screen 필드의 초기값 지정 - SELECTION-SCREEN
→ 선택화면 정의 & 사용자에게 표시됨 - 사용자가 값 입력 후 실행 (F8) 클릭
- AT SELECTION-SCREEN
→ 사용자가 입력한 값 검증 - START-OF-SELECTION
→ 실제 데이터 처리 로직 실행 - END-OF-SELECTION (선택)
→ 리스트 출력 전 마무리 작업 - 리스트 출력 (결과 출력)
🎯 주요 이벤트 정리
이벤트 | 역할 |
INITIALIZATION | 화면에 기본으로 표시될 초기값 지정 |
AT SELECTION-SCREEN | 사용자가 입력한 값 검증 → 오류가 있으면 메시지 띄우고 다시 입력받음 |
START-OF-SELECTION | 본격적인 데이터 처리 로직 시작 |
END-OF-SELECTION | 출력 전에 마무리 작업 |
AT LINE-SELECTION | 리스트 출력 후, 라인 더블 클릭 시 실행 |
🧑💻 코드 흐름 예시
REPORT z_example.
PARAMETERS: p_name TYPE string.
INITIALIZATION.
p_name = '홍길동'.
AT SELECTION-SCREEN.
IF p_name IS INITIAL.
MESSAGE '이름을 입력해주세요.' TYPE 'E'.
ENDIF.
START-OF-SELECTION.
WRITE: / '입력한 이름:', p_name.
실행 흐름:
- INITIALIZATION → p_name에 '홍길동' 자동 입력됨
- Selection Screen 표시됨
- 사용자가 값을 입력하고 실행
- AT SELECTION-SCREEN → 값 검증
- START-OF-SELECTION → 값 출력
🔄 Descriptions.
- SAP 시스템이 프로그램을 실행할 때 자동으로 특정 이벤트 블록을 호출
- 각 블록에 맞게 코드를 작성하면 자동 실행 흐름에 맞춰 실행
- Selection Screen은 PARAMETERS나 SELECT-OPTIONS로 선언하고,
사용자 입력 검사는 AT SELECTION-SCREEN에서 수행함 - 잘못된 값이 입력되면, 에러 메시지 후 다시 입력화면이 보여짐
📝 정리
개념 | 설명 |
Selection Screen | 사용자에게 입력 받는 UI 화면 |
이벤트 블록 | 프로그램 흐름을 단계별로 나누는 구조 |
주요 블록 | INITIALIZATION, AT SELECTION-SCREEN, START-OF-SELECTION 등 |
리스트 출력 후 인터랙션 | AT LINE-SELECTION 등으로 후속 동작 처리 가능 |
이렇게만 정리해도 약간 헷갈린다.
✅ 1. Selection Screen이란?
📌 "사용자로부터 입력을 받는 화면"을 의미함
ABAP 프로그램을 만들다 보면, 사용자가 직접 검색 조건, 날짜, 이름, 코드 같은 데이터를 입력할 때, 사용하는 게 바로 **Selection Screen (선택 화면)**!
✅ 2. 그럼 이벤트(Event)는 뭘까?
**이벤트(Event)**는 ABAP 프로그램 실행 시, 특정한 시점에서 자동으로 호출되는 코드 블록.
SAP 시스템은 프로그램을 실행하면서, 정해진 순서대로 특정 이벤트 블록들을 자동으로 실행해줌!
'SAP' 카테고리의 다른 글
SAP ABAP Programming for Beginners - 53 At Selection screen (0) | 2025.04.13 |
---|---|
SAP ABAP Programming for Beginners - 52 Selection Screen (0) | 2025.04.12 |
SAP ABAP Programming for Beginners - 50 ABAP Report Program Flow (0) | 2025.04.12 |
SAP ABAP Programming for Beginners - 49 Exit (0) | 2025.04.12 |
SAPSAP ABAP Programming for Beginners - 48 Check (0) | 2025.04.12 |