📌 ABAP Report Program Flow (표준 실행 흐름)

1. Program Start  
2. INITIALIZATION  
3. AT SELECTION-SCREEN  
4. START-OF-SELECTION  
5. Data Retrieval (e.g. SELECT)  
6. Processing Entries (LOOP / IF / grouping etc.)  
7. List Output (WRITE, ALV, etc.)

 

✅ 1. Start (프로그램 시작)

  • 프로그램이 실행되면 전역 변수들이 메모리에 로드됨

✅ 2. INITIALIZATION

  • Selection screen이 나타나기 에 실행됨
  • 여기에서 selection screen의 초기값을 설정할 수 있음
INITIALIZATION.
  p_date = sy-datum.

 

✅ 3. AT SELECTION-SCREEN

  • 사용자가 화면에서 값을 입력하고 실행했을 때,
  • 입력값을 검증하고 조건을 체크하는 곳
AT SELECTION-SCREEN.
  IF p_date < sy-datum.
    MESSAGE '오늘 이후 날짜를 입력하세요' TYPE 'E'.
  ENDIF.

 

✅ 4. START-OF-SELECTION

  • 여기서부터 메인 프로그램 로직이 시작됨
  • SELECT 문이나 LOOP, 데이터 처리 시작 위치
START-OF-SELECTION.
  SELECT * FROM zemployees INTO TABLE it_emp
    WHERE dept = p_dept.

 

✅ 5. READ AN ENTRY (데이터 1건씩 읽기)

  • SELECT 또는 LOOP AT를 통해 데이터 한 줄씩 처리
LOOP AT it_emp INTO wa_emp.
  WRITE: / wa_emp-name, wa_emp-salary.
ENDLOOP.

 

✅ 6. PROCESS AN ENTRY (데이터 처리)

  • 예를 들어 계산, 필터링, 그룹핑 등
  • 데이터를 한 줄씩 읽고 필요한 가공 로직 수행
  IF wa_emp-salary > 5000.
    wa_emp-bonus = wa_emp-salary * 0.1.
  ENDIF.

 

✅ 7. GROUP PROCESSING (필요한 경우)

  • 여러 건을 묶어서 집계 처리할 수도 있음
  • AT NEW, AT END OF 등의 그룹 제어문 사용 가능
LOOP AT it_emp INTO wa_emp.
  AT NEW dept.
    WRITE: / '부서:', wa_emp-dept.
  ENDAT.

  WRITE: / wa_emp-name.

  AT END OF dept.
    WRITE: / '---- 부서 종료 ----'.
  ENDAT.
ENDLOOP.

 

8. List Output (결과 출력)

  • WRITE, ALV, CL_GUI... 등을 이용한 출력
  • 기본 WRITE는 바로 화면에 출력

 

 

[Start]
   ↓
[INITIALIZATION] → selection screen에 초기값
   ↓
[SELECTION SCREEN 표시됨 → 사용자 입력]
   ↓
[AT SELECTION-SCREEN] → 사용자 입력 검증
   ↓
[START-OF-SELECTION] → 핵심 처리 시작
   ↓
[SELECT / LOOP] → 데이터 조회 및 처리
   ↓
[WRITE / ALV] → 결과 출력
   ↓
[End]

+ Recent posts