Skip to Content
avatar image
Former Member

What is module pool

Hi,

What is module pool?

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

4 Answers

  • avatar image
    Former Member
    Aug 22, 2007 at 04:51 AM

    It is another type of programming. One is report programming using SE38

    Module pool is using transaction SE80. It has screens & you can drag & drop buttons, check box etc & code accordingly.

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Aug 22, 2007 at 04:53 AM

    Hi,

    Check these links.

    http://wiki.ittoolbox.com/index.php/FAQ:What_is_module_pool_program_in_abap%3F

    http://help.sap.com/saphelp_46c/helpdata/en/35/26b1aaafab52b9e10000009b38f974/content.htm

    http://sap.mis.cmich.edu/sap-abap/abap09/sld011.htm

    http://sap.mis.cmich.edu/sap-abap/abap09/index.htm

    http://www.geocities.com/ZSAPcHAT

    http://www.allsaplinks.com/files/using_table_in_screen.pdf

    http://help.sap.com/saphelp_webas630/helpdata/en/9f/db9cdc35c111d1829f0000e829fbfe/content.htm

    http://www.sapdevelopment.co.uk/dialog/dialoghome.htm

    http://www.sap-img.com/

    http://help.sap.com/saphelp_46c/helpdata/en/08/bef2dadb5311d1ad10080009b0fb56/content.htm

    http://www.sapgenie.com/links/abap.htm

    http://help.sap.com/saphelp_nw04/helpdata/en/c9/5472fc787f11d194c90000e8353423/frameset.htm

    You can also check the transaction ABAPDOCU which gives you lot of sample programs.

    Also you can see the below examples...

    Go to se38 and give demodynpro and press F4.

    YOu will get a list of demo module pool programs.

    One more T-Code is ABAPDOCU.

    YOu can find more examples there.

    See the prgrams:

    DEMO_DYNPRO_TABLE_CONTROL_1 Table Control with LOOP Statement

    DEMO_DYNPRO_TABLE_CONTROL_2 Table Control with LOOP AT ITAB

    http://www.geocities.com/ZSAPcHAT

    http://www.allsaplinks.com/files/using_table_in_screen.pdf

    REPORT ZBHMOD1 .

    DATA:OKCODE1 LIKE SY-UCOMM,

    OKCODE2 LIKE SY-UCOMM.

    DATA:N1(10) TYPE N,N2(10) TYPE N,RES(12) TYPE N.

    MODULE USER_COMMAND_1000 INPUT.

    CASE OKCODE1.

    WHEN 'NEXT'.

    RES = N1 + N2.

    SET SCREEN 1001.

    WHEN 'CLEA'.

    CLEAR:N1,N2.

    WHEN 'BACK'.

    SET SCREEN '0'.

    ENDCASE.

    ENDMODULE. " USER_COMMAND_1000 INPUT

    MODULE STATUS_1000 OUTPUT.

    • SET PF-STATUS 'xxxxxxxx'.

    SET TITLEBAR 'TIT1'.

    ENDMODULE. " STATUS_1000 OUTPUT

    MODULE USER_COMMAND_1001 INPUT.

    CASE OKCODE2.

    WHEN 'BACK'.

    SET SCREEN 1000.

    ENDCASE.

    ENDMODULE. " USER_COMMAND_1001 INPUT

    MODULE STATUS_1001 OUTPUT.

    • SET PF-STATUS 'xxxxxxxx'.

    SET TITLEBAR 'TIT2'.

    ENDMODULE. " STATUS_1001 OUTPUT

    FLOW LOGIC:

    PROCESS BEFORE OUTPUT.

    MODULE STATUS_1000.

    *

    PROCESS AFTER INPUT.

    MODULE USER_COMMAND_1000.

    PROCESS BEFORE OUTPUT.

    MODULE STATUS_1001.

    *

    PROCESS AFTER INPUT.

    MODULE USER_COMMAND_1001.

    **************************************************************************

    ************************************************************************

    2)

    REPORT ZBHMOD2.

    DATA: OKCODE1 TYPE SY-UCOMM,

    OKCODE2 TYPE SY-UCOMM,

    ENAME(10) TYPE C,

    DNAME(10) TYPE C.

    MODULE STATUS_1000 OUTPUT.

    • SET PF-STATUS 'xxxxxxxx'.

    SET TITLEBAR 'TIT1'.

    ENDMODULE. " STATUS_1000 OUTPUT

    MODULE STATUS_1001 OUTPUT.

    • SET PF-STATUS 'xxxxxxxx'.

    SET TITLEBAR 'TIT2'.

    ENDMODULE. " STATUS_1001 OUTPUT

    MODULE USER_COMMAND_1000 INPUT.

    CASE OKCODE1.

    WHEN 'BACK'.

    SET SCREEN '0'.

    WHEN 'NEXT'.

    DNAME = ENAME.

    SET SCREEN '1001'.

    ENDCASE.

    ENDMODULE. " USER_COMMAND_1000 INPUT

    MODULE USER_COMMAND_1001 INPUT.

    CASE OKCODE2.

    WHEN 'BACK'.

    SET SCREEN '1000'.

    ENDCASE.

    ENDMODULE. " USER_COMMAND_1001 INPUT

    FORM ON_CTMENU_FORM USING ZDEMO1 TYPE REF TO CL_CTMENU.

    CALL METHOD ZDEMO1->LOAD_GUI_STATUS

    EXPORTING

    PROGRAM = 'ZDEMO1'

    STATUS = 'ZDEMO1'

    MENU = ZDEMO1.

    ENDFORM. " ON_CTMENU_FORM

    FLOW LOGIC:

    PROCESS BEFORE OUTPUT.

    MODULE STATUS_1000.

    *

    PROCESS AFTER INPUT.

    MODULE USER_COMMAND_1000.

    PROCESS BEFORE OUTPUT.

    MODULE STATUS_1001.

    *

    PROCESS AFTER INPUT.

    MODULE USER_COMMAND_1001.

    *************************************************************

    Every Screen has a pbo and a pai.

    Screen elements are the textbox, buttons, radio buttons and check boxes .....

    If we want to pass data from a abap program to a screen element, we have to create a variable with the name we have given in the screen.So whatever the value is present in that variable is reflected on to the screen element.

    Here is an example :

    Using subscreens and some of the screen elements

    REPORT demo_dynpro_subscreens.

    DATA: ok_code TYPE sy-ucomm,

    save_ok TYPE sy-ucomm.

    DATA: number1(4) TYPE n VALUE '0110',

    number2(4) TYPE n VALUE '0130',

    field(10) TYPE c, field1(10) TYPE c, field2(10) TYPE c.

    CALL SCREEN 100.

    MODULE status_100 OUTPUT.

    SET PF-STATUS 'SCREEN_100'.

    ENDMODULE.

    MODULE fill_0110 OUTPUT.

    field = 'Eingabe 1'(001).

    ENDMODULE.

    MODULE fill_0120 OUTPUT.

    field = field1.

    ENDMODULE.

    MODULE fill_0130 OUTPUT.

    field = 'Eingabe 2'(002).

    ENDMODULE.

    MODULE fill_0140 OUTPUT.

    field = field2.

    ENDMODULE.

    MODULE cancel INPUT.

    LEAVE PROGRAM.

    ENDMODULE.

    MODULE save_ok INPUT.

    save_ok = ok_code.

    CLEAR ok_code.

    ENDMODULE.

    MODULE user_command_0110 INPUT.

    IF save_ok = 'OK1'.

    number1 = '0120'.

    field1 = field.

    CLEAR field.

    ENDIF.

    ENDMODULE.

    MODULE user_command_0130 INPUT.

    IF save_ok = 'OK2'.

    number2 = '0140'.

    field2 = field.

    CLEAR field.

    ENDIF.

    ENDMODULE.

    MODULE user_command_100 INPUT.

    CASE save_ok.

    WHEN 'SUB1'.

    number1 = '0110'.

    WHEN 'SUB2'.

    number1 = '0120'.

    CLEAR field1.

    WHEN 'SUB3'.

    number2 = '0130'.

    WHEN 'SUB4'.

    number2 = '0140'.

    CLEAR field2.

    ENDCASE.

    ENDMODULE.

    • flow logic for screen 100

    PROCESS BEFORE OUTPUT.

    MODULE STATUS_100.

    CALL SUBSCREEN: AREA1 INCLUDING SY-REPID NUMBER1,

    AREA2 INCLUDING SY-REPID NUMBER2.

    PROCESS AFTER INPUT.

    MODULE CANCEL AT EXIT-COMMAND.

    MODULE SAVE_OK.

    CALL SUBSCREEN: AREA1,

    AREA2.

    MODULE USER_COMMAND_100.

    • flow logic for screen 110

    PROCESS BEFORE OUTPUT.

    MODULE FILL_0110.

    PROCESS AFTER INPUT.

    MODULE USER_COMMAND_0110.

    • flow logic for screen 120

    PROCESS BEFORE OUTPUT.

    MODULE FILL_0120.

    PROCESS AFTER INPUT.

    • flow logic for screen 130

    PROCESS BEFORE OUTPUT.

    MODULE FILL_0130.

    PROCESS AFTER INPUT.

    MODULE USER_COMMAND_0130.

    • flow logic for screen 140

    PROCESS BEFORE OUTPUT.

    MODULE FILL_0140.

    PROCESS AFTER INPUT.

    Regards,

    Priyanka.

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Aug 22, 2007 at 07:38 AM

    Module pool programs are also called dialog programs.

    The module Pool are reports prepared for different screens and to manage the sequeence of events of these screens, in the transaction SE80 you can see all the dynpros that you have for this kind of report, add new ones, add all types of element to the report.

    Process Before Output is the part of the dynpro code that is precessed before the user can do anithing with the data in the screen

    Process After Input is the part of the dynpro code that is preocessed after the interaction with the user.

    module pool programs are excuited using Transaction codes

    ABAP program with the program type 'M'.

    In the Object Browser, the module pool code belongs to one of the following categories:

    <b>Global fields</b>: data declarations that can be used by all modules in the module pool

    <b>PBO modules</b>: modules that are called before displaying the screen

    <b>PAI modu</b>les: modules that are called in response to the user input

    <b>Subroutines</b>: subroutines that can be called from any position within the module pool

    <b>Hope this is helpful.</b>

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Aug 22, 2007 at 07:47 AM

    Hi,

    Module pool is the use of screens along with Report programming. THe only difference is that u write report programming code related to the command buttons or text boxes. Basically there are two important parts in it:

    <b>PBO</b>: thsi is executed efore the screen is dipslayed on the output device. So any logic u want before the display of the screen can be writtenhere.

    <b>PAI</b>: This is executed after you have made inputs inthe text box or when u click a button onthe screen.

    The corresponding logic of PBO & PAI is mainteined in a report program. Each Screen must be associated with a report program.

    Add comment
    10|10000 characters needed characters exceeded