Sample Module Codes
Sample Module Codes
Module-pool programming is defined as set of screen sequence flow. Here we enter, add
data, change data, view the data. Here we will design the screens and their coding called
as flow logic. Flow logic defines coding and triggering of each screen.
In the flow logic, you will define when to trigger the screen. Triggering of screens is done
through events. They are PBO, PAI, POH, and POV.
PBO- Process Before Output
PAI- Process After Input
POH- Process On Help-Request
POV- Process On Value-Request
Module-pool programming r online programming r dialog programming r screen
programming r same.
We can screen programming through SE51, SE38, SE80, and SE41.
If we call through SE80, u have to check the top include program check box.
If we call through SE51, you will design screen and flow logic in ABAP editor
If we call through SE38, you will call the statement CALL SCREEN 100.
Go to SE80, Right click on PACKAGE name, click on CREATE and click on
PROGRAM.
Same as above as we retrieved from data dictionary, define the fields on click middle
icon. Select the fields.
Module Pool
PROGRAM SAPMZSAMPLEMODULE.
TABLES: SDYN_CONN.
DATA: WA_SPFLI TYPE SPFLI.
SAPMZSAMPLEMODULE
.
Then double-click on MODULE STATUS_0200 OUTPUT. Define coding.
*&---------------------------------------------------------------------*
*&
Module STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE STATUS_0200 OUTPUT.
SET PF-STATUS 'ZSTATUS200'.
SET TITLEBAR 'ZTITLE200'.
ENDMODULE.
Output:-
OPERATIONS CODING:
Go to SE80, Right click on package name create program.
Then activate all includes programs, even though it shows any error, just activate
them.
Then right click on program name, create screens
Define attributes of screen. Click on layout.
SAPMYOPERATIONS
ENDCASE.
ENDMODULE.
CHECK_KNA1 INPUT
SAPMYPOOL3
Double click on MODULE STATUS_0000 in PBO for screen 100 & 200.
Create GUI status for each screen.
*&---------------------------------------------------------------------*
*&
Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'ZSTATUS-100'.
SET TITLEBAR 'CUSTOMER DETAILS'.
ENDMODULE.
*&---------------------------------------------------------------------*
*&
Module STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE STATUS_0200 OUTPUT.
SET PF-STATUS 'ZSTATUS-200'.
SET TITLEBAR 'CUSTOMER DATA'.
ENDMODULE.
WHEN 'DISPLAY'.
LEAVE PROGRAM.
WHEN 'EXIT'.
LEAVE TO SCREEN 100.
ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0200 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 100.
WHEN 'DISPLAY'.
LEAVE PROGRAM.
WHEN 'EXIT'.
*SET SCREEN 0.
leave program.
ENDCASE.
ENDMODULE.
Module Pool
*&
*&---------------------------------------------------------------------*
PROGRAM SAPMYUSINGCHECKBOX.
TABLES: EKKO.
DATA: ITAB LIKE EKKO.
DATA: WA LIKE EKKO.
DATA: CUSTOMER, COMPANY, PURCHASE.
*&---------------------------------------------------------------------*
*&
Module CHECK_INPUT INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE CHECK_INPUT INPUT.
SELECT SINGLE * FROM EKKO INTO CORRESPONDING FIELDS OF ITAB WHERE EBELN = EKKOEBELN.
ENDMODULE.
*&---------------------------------------------------------------------*
*&
Module TRANS_FROM_100 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE TRANS_FROM_100 INPUT.
MOVE-CORRESPONDING ITAB TO WA.
ENDMODULE.
" TRANS_FROM_100 INPUT
*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0200 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
SET SCREEN 100.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'STOP'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE.
" USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
*& Include
MYUSINGCHECKBOXO01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Module TRANS_TO_200 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE TRANS_TO_200 OUTPUT.
MOVE-CORRESPONDING WA TO EKKO.
ENDMODULE.
*&---------------------------------------------------------------------*
*&
Module CHECK_OUTPUT OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE CHECK_OUTPUT OUTPUT.
LOOP AT SCREEN.
IF CUSTOMER IS INITIAL AND SCREEN-GROUP1 = 'COM'.
SCREEN-ACTIVE = 0.
MODIFY SCREEN.
ENDIF.
IF COMPANY IS INITIAL AND SCREEN-GROUP1 = 'CUS'.
SCREEN-ACTIVE = 0.
MODIFY SCREEN.
ENDIF.
IF PURCHASE IS INITIAL AND SCREEN-GROUP1 = 'PUR'.
SCREEN-ACTIVE = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDMODULE.
" CHECK_OUTPUT OUTPUT
*&---------------------------------------------------------------------*
*&
Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'ZSAMPLEMENU'.
* SET TITLEBAR 'xxx'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Include MYUSINGRADIOBUTTONTOP
SAPMYUSINGRADIOBUTTON
*&
*&---------------------------------------------------------------------*
PROGRAM SAPMYUSINGRADIOBUTTON.
TABLES: EKKO.
DATA: ITAB LIKE EKKO.
DATA: WA LIKE ITAB.
*DATA: BEGIN OF OPTIONS,
DATA: CUSTOMER TYPE C,
PURCHASE TYPE C,
EXIT TYPE C.
*
END OF OPTIONS.
DATA: OK_CODE LIKE SY-UCOMM.
Module Pool
*
PROCESS AFTER INPUT.
* MODULE USER_COMMAND_0100.
CHAIN.
FIELD: EKKO-BUKRS MODULE CHECK_INPUT.
ENDCHAIN.
MODULE TRANS_FROM_100.
MODULE CHECK_CODING.
ENDMODULE.
Click on continue.
Click on continue.
SAPMZDEMOTABSTRIP
WHEN C_MYTABSTRIP-TAB4.
G_MYTABSTRIP-PRESSED_TAB = C_MYTABSTRIP-TAB4.
WHEN OTHERS.
*&SPWIZARD:
DO NOTHING
ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*&
Module GET_BANK OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE GET_BANK OUTPUT.
SELECT SINGLE * FROM KNB1 WHERE KUNNR = KNA1-KUNNR.
ENDMODULE.
Then design other screen for output. Select table control wizard. Drag and paste it.
Click on continue
Then give name of table control.
Then click on continue. Provide from where u have to fetch data either from data dictionary r
internal table
SAPMYTABLECONTROL
PROGRAM SAPMYTABLECONTROL.
***&SPWIZARD: DATA DECLARATION FOR TABLECONTROL 'MYTABLECONTROL'
*&SPWIZARD: DEFINITION OF DDIC-TABLE
TABLES: EKKO, ZPURCHASESTRU.
*&SPWIZARD: TYPE FOR THE DATA OF TABLECONTROL 'MYTABLECONTROL'
TYPES: BEGIN OF T_MYTABLECONTROL,
EBELN LIKE EKKO-EBELN,
BUKRS LIKE EKKO-BUKRS,
BSTYP LIKE EKKO-BSTYP,
BSART LIKE EKKO-BSART,
LIFNR LIKE EKKO-LIFNR,
SPRAS LIKE EKKO-SPRAS,
ZTERM LIKE EKKO-ZTERM,
EKORG LIKE EKKO-EKORG,
EKGRP LIKE EKKO-EKGRP,
FIELD EKKO-BSTYP.
FIELD EKKO-BSART.
FIELD EKKO-LIFNR.
FIELD EKKO-SPRAS.
FIELD EKKO-ZTERM.
FIELD EKKO-EKORG.
FIELD EKKO-EKGRP.
FIELD EKKO-WAERS.
FIELD EKKO-TELF1.
FIELD EKKO-KUNNR.
ENDCHAIN.
ENDLOOP.
*&SPWIZARD: MODULE MYTABLECONTROL_CHANGE_TC_ATTR.
*&SPWIZARD: MODULE MYTABLECONTROL_CHANGE_COL_ATTR.
MODULE USER_COMMAND_0200.
*&---------------------------------------------------------------------*
*&
Module STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE STATUS_0200 OUTPUT.
*&---------------------------------------------------------------------*
*&
Module TRANS_TO_200 OUTPUT
*&---------------------------------------------------------------------*
*
text
**----------------------------------------------------------------------*
MODULE TRANS_TO_200 OUTPUT.
MOVE-CORRESPONDING ITAB TO G_MYTABLECONTROL_WA.
ENDMODULE.
*&---------------------------------------------------------------------*
*&
Module GET_EKKO OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE GET_EKKO OUTPUT.
SELECT SINGLE * FROM EKKO
WHERE EBELN = EKKO-EBELN.
ENDMODULE.
*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Module CHECK_EKKO INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE CHECK_EKKO INPUT.
SELECT SINGLE * FROM EKKO INTO ITAB WHERE EBELN = EKKO-EBELN.
*SELECT SINGLE * FROM EKKO INTO G_MYTABLECONTROL_WA WHERE EBELN = EKKO-EBELN.
ENDMODULE.
*&---------------------------------------------------------------------*
*&
Module TRANS_FROM_100 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*MODULE TRANS_FROM_100 INPUT.
*
*MOVE-CORRESPONDING ITAB TO G_MYTABLECONTROL_WA.
*
*ENDMODULE.
" TRANS_FROM_100 INPUT
Then create t-codes for executing applications.