SAP ABAP/Screen Program

ABAP Screen Program 개요, ABAP Program 타입

물꼬_ 2025. 1. 13. 19:46

Introduction to Screen Programming


📍 Programming Model 개요

  • 스크린 프로그래밍(Screen Programming)은 SAP에서 하나의 화면(Input Screen)을 통해 데이터 입력, 생성, 수정, 삭제, 조회 등을 처리할 수 있는 프로그램 모델이다.

➡️ Single-Screen Transaction이란?

  • 입력 화면데이터 화면이 하나의 창(Window)에 결합되어 있는 모델.
  • 사용자 입력에 따라 Create(생성), Change(수정), Display(조회)빠르게 전환 가능.
  • 저장 후에도 입력된 상태를 유지한다.

📍 Report 프로그램 vs Screen 프로그램 비교

Report 프로그램 Screen 프로그램

데이터를 조회하고 결과 리스트를 보여주는 프로그램 데이터 생성, 수정, 삭제를 처리하는 프로그램
결과 리스트만 표시하고, 데이터 생성/수정/삭제 기능은 없음 화면에 입력 필드를 제공하여 데이터 입력 및 관리 가능
데이터 입력은 프로그램 실행 시 외부 입력으로 처리 화면에서 바로 데이터 입력 및 처리 가능

➡️ 스크린 프로그램(Screen Program)은 SAP의 트랜잭션 프로그램에서 자주 사용되며, 입력 필드와 데이터 화면이 결합된 형태로 사용자 친화적인 인터페이스를 제공한다.


Screen Program의 주요 기능

1️⃣ Input Screen and Data Screen Combined

  • 입력 화면데이터 화면한 창에 결합되어 있어, 사용자가 하나의 창에서 입력 및 데이터 확인 가능.

2️⃣ Switch Between Create, Change, and Display

  • 사용자는 생성(Create), 수정(Change), 조회(Display) 간에 빠르게 전환할 수 있다.

3️⃣ Direct Access to Each Object

  • 프로그램은 개별 데이터 객체에 직접 접근하여 데이터를 읽고 수정할 수 있다.

4️⃣ System Retains Context After Saving

  • 데이터를 저장한 후에도 시스템이 이전 입력 상태를 유지하여, 사용자 입력이 사라지지 않고 유지된다.

📍 스크린 프로그램의 장점

  • 데이터 디스플레이 및 입력을 하나의 화면에서 처리 가능.
  • 데이터 생성, 수정, 삭제를 화면에서 바로 수행할 수 있다.
  • 다이얼로그(Dialogue) 형태로, 특정 데이터에 대한 확인 메시지 및 알림을 화면에 표시할 수 있다.
  • 트랜잭션(Transaction)을 처리하는 프로그램으로, SAP 시스템의 핵심 기능 중 하나이다.

📍 스크린 프로그램의 사용 사례

  • 고객 정보 관리(Customer Management)
  • 제품 주문(Order Management)
  • 재고 관리(Inventory Management)

스크린 프로그램은 하나의 화면입력 필드, 버튼, 메뉴 등을 조합하여 다양한 데이터 관리 기능을 제공한다.


💡 Tip:

  • Report 프로그램은 데이터 조회에 중점을 두고, Screen 프로그램은 데이터 관리(입력, 수정, 삭제)에 중점을 둔다.
  • SAP 시스템의 트랜잭션 프로그램 대부분은 스크린 프로그램을 기반으로 동작한다.

 

스크린 레이아웃의 예시이다

 

 

내가 쓰는 교재인 BC410 스크린 Exercise 레이아웃의 예시이다.

 

 

📘 ABAP Program Types


ABAP 프로그램 유형 개요

ABAP에서는 여러 유형의 프로그램 타입이 존재하며, 각 프로그램 타입은 특정 목적에 따라 사용된다.

프로그램 유형에 따라 스크린(Screen)을 포함할 수 있는지 여부가 결정되며, 입력 화면데이터 관리 기능을 제공할 수 있다.


📍 ABAP 프로그램 유형 및 설명

Program Type Type Code 설명 스크린 사용 가능 여부

Executable Program Type 1 Report Program으로, 데이터 조회에 사용. ✅ (스크린 있음)
Module Pool Program Type M Screen Program으로, 데이터 입력/관리에 사용. ✅ (스크린 있음)
Function Group Type F Function Module을 관리하는 그룹. ✅ (스크린 있음)
Interface Pool Type J 인터페이스 정의에 사용. ❌ (스크린 없음)
Class Pool Type K 클래스 정의 및 객체 지향 프로그래밍(OOP)에 사용. ❌ (스크린 없음)
Include Program Type I 코드 재사용을 위한 서브 프로그램. ❌ (스크린 없음)

스크린을 가질 수 있는 프로그램 타입

스크린(Screen)을 가질 수 있는 프로그램 타입은 다음과 같다.

1️⃣ Module Pool Program (Type M)

  • Screen Program으로, 사용자 입력을 받을 수 있는 입력 화면을 제공한다.
  • 트랜잭션 코드(Transaction Code)를 통해 실행된다.

2️⃣ Executable Program (Type 1)

  • 기본적으로 Report Program이지만, 다이얼로그(Screen)을 추가하면 스크린을 포함할 수 있다.
  • 주로 데이터 조회에 사용되지만, 스크린 확장을 통해 입력 기능을 추가할 수 있다.

3️⃣ Function Group (Type F)

  • Function Module을 관리하는 그룹이며, 스크린(Screen)을 포함할 수 있다.
  • Function Module 내에서 스크린을 사용하여 데이터 입력 및 관리 기능을 제공한다.

💡 Tip:

  • Executable Program, Module Pool Program, Function Group 모두 스크린(Screen)을 포함할 수 있다.
  • Function GroupFunction Module 내에서 스크린을 활용하여 다이얼로그 기능을 구현할 수 있다.
  • Include Program코드 재사용을 위한 프로그램으로, 별도의 실행 파일이 아니며 스크린을 포함할 수 없다.

 

 

📘 Program Organization in Screen Programming


스크린 프로그램 구조 이해

스크린 프로그램을 구성할 때 프로그램 이름모듈 구조를 잘 이해해야 한다.

1️⃣ 스크린 프로그램의 이름은 sapmz 또는 sapmy로 시작해야 한다.

  • SAP 표준 프로그램과의 혼동을 피하기 위해 사용자 정의 프로그램은 반드시 sapmz 또는 sapmy로 시작한다.

2️⃣ TOP Include 체크

  • 프로그램 생성 시 "With TOP INCL." 체크를 해야 한다.
  • TOP Include는 글로벌 데이터(Global Declarations)를 선언하기 위한 파일이다.

스크린 프로그램의 주요 모듈

스크린 프로그램은 다양한 모듈(Modules)로 구성되어 있으며, 각 모듈의 역할은 다음과 같다.

모듈 이름 설명

MZDEMO_TOP Global Declarations (글로벌 변수 선언)
MZDEMO_E01 Event 모듈 (이벤트 처리 루틴)
MZDEMO_F01 Form Routines (서브 루틴)
MZDEMO_I01 PAI Module (Process After Input - 입력 처리)
MZDEMO_O01 PBO Module (Process Before Output - 출력 처리)

📍 모듈 설명

1️⃣ Global Declarations (MZDEMO_TOP)

  • 프로그램의 전역 변수(Global Variables)전역 데이터를 선언하는 모듈.

2️⃣ Events (MZDEMO_E01)

  • 사용자의 이벤트(버튼 클릭, 입력 등)을 처리하는 이벤트 루틴을 정의.

3️⃣ Form Routines (MZDEMO_F01)

  • 반복적으로 사용되는 서브 루틴을 정의.
  • 프로그램 내에서 다양한 작업을 처리하기 위해 사용.

4️⃣ PAI Module (MZDEMO_I01)

  • Process After Input (PAI)는 사용자 입력 후 처리되는 로직을 정의.
  • 입력된 데이터가 유효한지 검증하거나 데이터베이스와 상호작용할 때 사용.

5️⃣ PBO Module (MZDEMO_O01)

  • Process Before Output (PBO)는 화면 출력 전에 실행되는 로직을 정의.
  • 화면에 표시할 데이터를 가져와서 출력하거나 UI 요소를 설정할 때 사용.

스크린 프로그램에서 사용되는 Include Program 이름 규칙

스크린 프로그램에서 사용되는 Include Program의 이름은 다음과 같은 규칙을 따른다.

  • 스크린 프로그램명에서 'SAP'를 제외한 이름으로 Include Program을 생성해야 한다.
  • 예를 들어, 스크린 프로그램명이 SAPMZSCREEN_F15라면 TOP Include 프로그램명은 MZSCREEN_F15TOP이 되어야 한다.

➡️ 예시:

스크린 프로그램 이름 Include Program 이름

SAPMZSCREEN_F15 MZSCREEN_F15TOP
SAPMYCUSTOM_PROG MYCUSTOM_PROGTOP
SAPMZDEMO_01 MZDEMO_01TOP

💡 Tip:

  • Include Program은 코드의 재사용성과 유지보수성을 높이기 위해 사용된다.
  • Include Program의 이름은 항상 스크린 프로그램명에서 'SAP'를 제외한 형태로 작성해야 한다.
  • PAI (Process After Input)와 PBO (Process Before Output)는 스크린 프로그램에서 가장 중요한 모듈이다.✅ Introduction to Screen Programming
    이 네 개의 Internal Tables를 가지고 exercise를 하게 될 것이다.