ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 10. Module Pool Program
    SAP/개념정리 2025. 7. 17. 18:15

     

     

     

    ABAP 프로그램은 Type 1(Report Program), Type M(Module Pool Program), Type F(Function Groups) 등으로 구현될 수 있다.

     

    * 차이점

    Report Program

    - 프로그램이 자동으로 생성해주는 1000번 스크린(Selection Screen)을 사용한다.

    - 데이터베이스 테이블에서 조회한 데이터를 화면에 뿌려주는 데 주목적이 있다.

     

    Module Pool Program

    - 개발자가 직접 생성한 일반 스크린을 사용한다.

    - 데이터를 조회/수정/삭제/생성하는 등의 데이터 관리를 위한 것에 주목적이 있다.

     

    => 실제로는 크게 구분하지 않고 사용한다고 함.


    Screen

    스크린의 구성요소

    1. 스크린 속성

    - 스크린 번호, 타입, 이름, 내역, 창 크기 다음 화면을 정의하고 SAP 시스템에 스크린 오브젝트를 연결하게 된다.

     

    2. 스크린 요소

    - 사용자가 데이터를 조회하고 입력하는 GUI 화면을 디자인하는데 사용된다.

    - 텍스트 필드, Input/Output 필드, 체크박스, 라디오 버든 등과 같은 스크린 구성요소를 정의한다.

     

    3. 스크린 필드

    - 메인 스크린 필드의 데이터 타입과 길이 등을 정의하는 부분이다.

    - 스크린이 메모리로 로딩되어 활성화 되었을 때 스크린 페인터에서 정의한 필드명을 그대로 사용한다.

     

    4. Flow logic

    - 사용자의 액션에 반응하게 되는 스크린의 PAI와 PBO와 관련되어 절차적으로 수행해야할 부분을 정의한다.

    - Flow logic에서 사용하는 문법은 ABAP과 유사하지만 다른언어이다. 스크린 Language라고 부르기도 한다.

    - 아래와 같이 4가지 이벤트 블록을 가지며, 키워드로 이미 정의되어 있다.

       PROCESS BEFORE OUTPUT, PROCESS AFTER INPUT은 필수 사항이다.

    PROCESS BEFORE OUTPUT (PBO) 스크린의 PAI 이벤트가 실행되고 현재 스크린이 조회되기 전에 자동으로 실행된다. PBO 이벤트가 실행되고 나서 스크린이 조회된다.
    화면이 처음 실행되면, PBO만 수행이 된다. 화면에서 사용자가 이벤트를 발생시키면 PAI가 수행되고 PBO가 실행된다.
    PBO는 일반적으로 화면의 초깃값을 지정하는 데 자주 사용된다.
    PROCESS AFTER INPUT (PAI) 사용자가 버튼을 클릭하는 것과 같은 액션을 수행하였을 때 발생하는 이벤트 블록이다. PAI 이벤트가 실행된 후 다음 스크린의 PBO 이벤트를 호출한다.
    PROCESS ON HELP-REQUEST (POH) 사용자가 F1키를 눌렀을 때 발생하는 이벤트 블록이다.
    PROCESS ON VALUE-REQUEST (POV) 사용자가 F4키를 눌렀을 때 발생하는 이벤트 블록이다.

     

    * 스크린은 1000번에서 1010번 사이는 표준 SELECTION SCREEN과 ABAP Dictionary Maintenance 스크린으로 예약되어 있다.

     

     

    PBO(Process Before Output)

    - 스크린이 화면에 보여지기 전에 실행되는 이벤트.

     

    PAI(Process After Input)

    - 스크린 상에서 User 액션이 발생한 후 실행되는 이벤트.

     


    스크린 생성

    1. 생성할 프로젝트에서 100번 스크린을 생성한다.

     

     

    2. Layout 버튼을 누르면 아래와 같이 스크린 페이터가 나오며 스크린을 구성할 수 있다.


     

    GUI STATUS

    - Menu Bar, Standard Toolbar, Application Tool bar를 포함하고 있다.

    - Menu Painter를 사용하여 생성하며 스크린에 ABAP 프로그램 내에서 SET PF-STATUS 구문을 이용해 동적으로 할당할 수 있다.

     

    GUI STATUS 생성

    1. GUI STATUS를 생성한다.

     

    2. GUI STATUS를 생성하면 아래와 같이 메뉴를 추가할 수 있는 화면이 나온다.

     

    3. Applicatioin Toolbar는 아래와 같이 생성한다.

    Applicatioin Toolbar는 해당 화면에서 사용하는 사용자 정의 버튼이다.

     

     

    4. Standard Toolbar는 SAP 표준 버튼들이 고정되어 있는 영역이다.

     

    5. Menu Bar는 가장 상단에 있는 메뉴이며, SAP GUI 프로그램에서 화면에 필요한 메뉴를 계층적으로 보여준다.

     

    6. 각 메뉴를 정의했으면 Flow logic으로 돌아가서 MODULE STATUS_0100 주석을 해제하고 더블클릭을 해서 PBO 모듈을 생성한다.

     

     

     

     

    7. 생성된 모듈에 SET PF-STATUS '100_STATUS'. 를 입력하여, 생성한 GUI STATUS를 스크린에 연결한다.

     

     

    8. 모듈을 생성하면 프로그램 코드에 INCLUDE 부분이 자동으로 생성된다.

     

     


    프로그램 실행 시키기

    Report 프로그램의 경우 START-OF-SELECTION 구문을 작성하면 실행되겠지만, Module Pool 프로그램은 트랜잭션이 필요하다.

     

    1. SE93에서 트랜잭션을 생성한다.

     

    2. 프로그램을 실행시키면 실행이 된다.

     

    + 위 상태에서 뒤로가기 버튼이 실행되지 않는다.

    아래의 과정을 거치면 버튼이 실행되게 된다.


    PAI 모듈 구현

    1. 스크린의 Flow logic에 MODULE USER_COMMAND_0100. 구문 주석을 해제하고 더블클릭해서 PAI 모듈을 생성해준다.

     

    2. 생성된 모듈에 아래와 같이 코드를 작성한다.

     

     

    3. 프로그램에서 CALL SCREEN 100. 구문으로 생성한 스크린을 불러온다

    (START-OF-SELECTION 구문은 삭제. 테스트 한다고 작성한 코드였는데 안지우고 캡처함.)

     

     

     

     

    'SAP > 개념정리' 카테고리의 다른 글

    11. ALV  (0) 2025.08.06
    8. Search Help  (0) 2025.06.30
    7. Lock Object  (0) 2025.06.27
    5. ABAP 인터널 테이블  (0) 2025.06.22
    4. ABAP 서브루틴, 함수  (0) 2025.06.19
Designed by Tistory.