Executable Program(실행 가능 프로그램) 이란?
TYPE-1(Executable Program)은 흔히 "리포트 프로그램(Report)"이라고 부릅니다.
주 목적은 데이터 조회이며, 간단한 데이터 입력이나 삭제까지도 가능합니다.
프로그램 생성 시 자동으로 스크린(1000번 화면)이 함께 만들어지고, SELECTION-SCREEN 구문을 통해 화면 구성이 가능해집니다.
별도의 트랜잭션 코드(T-CODE) 없이도 Editor 화면에서 f8(실행)을 이용하여 프로그램 실행 가능합니다.
FLOW는 Evemt Block Processing으로 진행됩니다.(Event Block 순서대로 진행되는것)
다른 프로그램에서 Submit 구문을 사용해서 실행할 수도 있습니다
트랜잭션 코드를 만들 때는 Report Transaction 유형으로 등록합니다.
아래와같이 프로그램을 연결 해주면 됩니다.
Executable Program 기본 구조
Executable Program은 아래처럼 단계별로 흘러갑니다:
INITIALIZATION
↓
AT SELECTION-SCREEN OUTPUT
↓
AT SELECTION-SCREEN
↓
START-OF-SELECTION
↓
END-OF-SELECTION
각 단계가 어떤 역할을 하는지 자세히 살펴 보겠습니다.
1. INITIALIZATION (초기화)
프로그램이 실행될 때, 1000번 화면이 뜨기 전에 필드를 초기화하는 구간입니다.
- PF-STATUS, TITLEBAR 등을 설정할 수 있습니다.
주요 사용 예:
- SET PF-STATUS : 표준 메뉴 대신 커스텀 메뉴 설정
- SET TITLEBAR : 프로그램 제목 지정
2. AT SELECTION-SCREEN OUTPUT (입력 화면 조정)
SELECTION-SCREEN이 사용자에게 보여지기 직전에 작동하는 이벤트입니다.
쉽게 말하면: "입력 화면이 열리기 직전에 화면 모양이나 필드를 조정할 때" 사용하는 구간입니다.
주요 용도:
- 입력 필드를 숨기거나 비활성화할 때
- 특정 입력 값에 따라 다른 필드를 보여주거나 감출 때
- 라디오버튼 선택에 따라 입력 화면 레이아웃을 다르게 보여줄 때
정리하면, AT SELECTION-SCREEN OUTPUT은
"화면에 보여질 입력폼을 제어하는 블록" 입니다.
3. AT SELECTION-SCREEN (입력값 검증)
사용자가 입력한 값을 검증하는 단계입니다.
입력 전/후로 에러 체크, 권한 체크, 값 범위 체크 등을 수행하며 OUTPUT 구문을 사용해 화면 레이아웃 제어도 가능합니다.
- 예) 특정 라디오 버튼 선택 시, 다른 입력 필드 활성화
4. START-OF-SELECTION (데이터 조회)
F8(실행)을 눌렀을 때 발생하는 이벤트입니다. 사용자가 입력한 조건을 기반으로 DB에서 데이터를 조회합니다.
주요 SQL문이 이 구간에 위치합니다.
5. END-OF-SELECTION (조회 결과 처리)
START-OF-SELECTION에서 가져온 데이터를 화면에 출력하는 영역입니다. 별도 처리 없이 넘어가기도 하고,
조회 결과가 없을 경우 에러 메시지를 띄우는 코드를 작성하기도 합니다.
정리
INITIALIZATION | 입력 초기값 설정 | 프로그램 실행 직후 |
AT SELECTION-SCREEN OUTPUT | 입력 화면 조정 | 입력폼 그리기 전에 작동 |
AT SELECTION-SCREEN | 입력값 체크 및 검증 | 사용자가 값 입력 후, 버튼 누를 때 작동 |
START-OF-SELECTION | 메인 로직 시작 (DB 조회 등) | F8 누를 때 시작 |
END-OF-SELECTION | 결과 처리 및 출력 | 메인 로직 끝난 뒤 |
결론
Executable Program은 단순한 데이터 조회 및 처리를 목적으로 사용되며, 리포트 작성, 배치 작업, 테스트 프로그램 등 실무에서 폭넓게 활용됩니다.
'SAP > ABAP' 카테고리의 다른 글
[SAP_ABAP] Subroutine이란? (1) | 2025.04.28 |
---|---|
[SAP_ABAP] INCLUDE문 (0) | 2025.04.27 |
[SAP_ABAP] 구매처 목록을 ALV로 보여주는 사용자 프로그램 만들기 _ 1 (0) | 2025.04.24 |
[SAP_ABAP] 인터널테이블(Internal Table) (0) | 2025.03.08 |
[SAP_ABAP] Table 생성 (0) | 2025.01.13 |