본문 바로가기

Ⅰ. ERP/1. ABAP

[ABAP] MODULEPOOL 설명

728x90
*&---------------------------------------------------------------------*
*& Report ZMODULEPOOL_B
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zmodulepool_b.

*SAP-ABAP에는 두 종류의 프로그램이 있음
*1. REPORT PROGRAM
*2. DIALOG PROGRAM.
*user input이 필요하면 dialog programming 사용한거임

*DIALOG program type  : ' M'
* - 실행못함. T-code를 만들어야함.
* - REPORT program은 DB에서 just read하지만,
*   Dialog Program은 R/3 스크린이 작동하면서 DB와 데이터를 교환함
*   (실무에서는 딱히 구분안함)

*  PBO ---> SCREEN 1---> PAI  PBO ---> SCREEN 2---> PAI
*  MODULE->         ---> MODULE   --->         ---> MODULE
* (pOH : F1 눌렀을 때 발생하는 이벤트  블록, POV : F4 눌렀을 때 발생하는 이벤트  블록)

* Report program과 다르게 화면을 직접 지정하여 생성할 수 있음
* 화면에서 다음 화면 필드를 빈칸으로 두면 뒤로 back. 화면 번호를 넣으면 액션이 생겼을때 이동함.
* 스크린 속성 --------------------------------------------------------------------
* screen number : 프로그램 내부에서 스크린으 구별하는 4자리 숫자
* screen type : nomal - 스크린이 전체 GUI 창 점유 , Subscreen 영역 안에서 사용하는 스크린
*              Modal Dialog Box - 팝업창의 형태
* next screen : 호출한 스크린의 pai실행된 후 다음 실행 스크린 번호 지정
* Cursor position : 스크린 Display 될 때 커서의 위치 지정 ( 기본 값은 첫 번째 필드 )
* Screen group  : 스크린이 실행되고 있는동안 SY-DYNGR 에 저장.
*                 여러 개의 스크린을 화면 그룹 하나로 지정하여 속성 변경시 유용하게 사용.
* Hold data : 사용자 프로파일에 저장된 데이터를 기본값으로 설정하기 위해 사용.
*--------------------------------------------------------------------
DATA : num1 TYPE iNT8,
       num2 TYPE iNT8,
       res TYPE iNT8,
       ok_code TYPE syucomm.

INCLUDE zmodulepool_bpao.
INCLUDE zmodulepool_bpai.
INCLUDE zmodulepool_bf01.
*&---------------------------------------------------------------------*
*& Include          ZMODULEPOOL_BPAO
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_9000 OUTPUT.
 SET PF-STATUS '9000'.
 SET TITLEBAR '9000'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module STATUS_8000 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_8000 OUTPUT.
 SET PF-STATUS '8000'.
* SET TITLEBAR '8000'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Include          ZMODULEPOOL_BPAI
*&---------------------------------------------------------------------*
MODULE user_command_9000 INPUT.
 CASE OK_CODE.
   WHEN 'BACK' or 'UP'.
     leave to screen 0.
   WHEN 'EXIT'.
     leave PROGRAM.
   WHEN 'SHOW'.
     res = num1 + num2.
  ENDCASE.
ENDMODULE.

*----------------------------------------------------------------------*
MODULE user_command_8000 INPUT.
CASE OK_CODE.
   WHEN 'BACK' or 'UP'.
     leave to screen 0.
   WHEN 'EXIT'.
     leave PROGRAM.
   WHEN 'SHOW'.
     res = num1 + num2.
  ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Include          ZMODULEPOOL_BF01
*&---------------------------------------------------------------------*

DATA:num1TYPEi,
num2TYPEi,
resTYPEi.
728x90