Introduction to MODULE POOL Programming by Sharath and Naresh

download Introduction to MODULE POOL Programming by Sharath and Naresh

of 13

Transcript of Introduction to MODULE POOL Programming by Sharath and Naresh

  • 7/27/2019 Introduction to MODULE POOL Programming by Sharath and Naresh

    1/13

    MODULE-POOL PROGRAMMING

    Dialog Programs:

    A dialog program allows you to work interactively with the system and to change the contents of

    the database tables. Each dialog program has a certain sequence of screens that are processed by

    the system one after the other.

    From the view of a user, a dialog step consists of receiving a screen for entering data, then after

    the users clicks a button or selects a menu entry, processing is started. From the view of the SAP

    system, the screen is prepared and sent. After this, the user receives it and fills it out. Then the

    system analyzes and processes the data contained on the screen after receiving it from the user.

    A dialog program must offer:

    o a user-friendly user interface

    o

    format and consistency checks for the data entered by the usero easy correction of input errors

    o access to data by storing it in the database.

    ABAP/4 offers a variety of tools and language elements to meet the requirements for creating and running

    dialog programs.

    Main Components of a Dialog Program

    You use the Screen Painter and the Menu Painter to create and design screen templates and screen

    programs.

    You define the processing logic in an ABAP/4 program (module pool).

    Data structures are defined in the ABAP/4 Dictionary. You can access these structures from theABAP/4 program and when defining screen fields.

    The dialog processor controls the flow of your dialog program.

    Structure of a Dialog Program

    A dialog program consists of the following basic components:

    Screens (dynpros)

    Each dialog in an SAP system is controlled by dynpros. A dynpro (DYnamic PROgram) consists of a

    screen and its flow logic and controls exactly one dialog step. The flow logic determines which processing

    takes place before displaying the screen (PBO-Process Before Output) and after receiving the entries the

    user made on the screen (PAI-Process After Input).

    The screen layout fixed in the Screen Painter determines the positions of input/output fields, text fields, and

    graphical elements such as radio buttons and checkboxes. In addition, the Menu Painter allows storing

    menus, icons, pushbuttons, and function keys in one or more GUI statuses. Dynpros and GUI statuses refer

    to the ABAP/4 program that controls the sequence of the dynpros and GUI statuses at runtime.

  • 7/27/2019 Introduction to MODULE POOL Programming by Sharath and Naresh

    2/13

    ABAP/4 module pool

    Each dynpro refers to exactly one ABAP/4 dialog program. Such a dialog program is also called a module

    pool, since it consists of interactive modules. The flow logic of a dynpro contains calls of modules from the

    corresponding module pool. Interactive modules called at the PBO event are used to prepare the screen

    template in accordance to the context, for example by setting field contents or by suppressing fields from

    the display that are not needed. Interactive modules called at the PAI event are used to check the user inputand to trigger appropriate dialog steps, such as the update task.

    All dynpros to be called from within one transaction refer to a common module pool. The dynpros of a

    module pool are numbered. By default, the system stores for each dynpro the dynpro to be displayed next.

    This dynpro sequence or chain can be linear as well as cyclic. From within a dynpro chain, you can even

    call another dynpro chain and, after processing it, return to the original chain.

    Screen Painter ABAP/4

    To create a screen, take the following steps:

    1. Define the basic features of a screen (screen attributes)2. Design the screen layout (in the full screen editor)

    3. Define the field attributes (field list)

    4. Write the screen flow logic

    The most important ABAP/4 program components are found in the following objects:

    Global data or Dictionary structures in the TOP include program (data declarations)

    PBO (Process Before Output) module

    PAI (Process After Input) module

    Subroutines (if required)

  • 7/27/2019 Introduction to MODULE POOL Programming by Sharath and Naresh

    3/13

    An SAP dynpro consists of several components:

    Flow logic: Calls of the ABAP/4 modules for a screen. Screen layout: Positions of the texts, fields, pushbuttons, and so on for a screen.

    Screen attributes: Number of the screen, number of the subsequent screen, and

    Field attributes: Definition of the attributes of the individual fields on a screen.

  • 7/27/2019 Introduction to MODULE POOL Programming by Sharath and Naresh

    4/13

    Sample Dialog Program:

    We can create a dialog program in 2 methods so called

    1. Offline

    2. Online

    Offlinemethod includes creating a program in SE51 (screen painter).

    Onlinemethod includes creating a program in SE80 (Object Navigator).

    Here I have created a small and basic program to display NAME and CITY of the customer entered.

  • 7/27/2019 Introduction to MODULE POOL Programming by Sharath and Naresh

    5/13

    As discussed above these are the PBO and PAI modules

  • 7/27/2019 Introduction to MODULE POOL Programming by Sharath and Naresh

    6/13

    Screen painter:

    Using screen painter we can create text, fields, checkboxes, radio buttons, buttons, tab strips etc..,

  • 7/27/2019 Introduction to MODULE POOL Programming by Sharath and Naresh

    7/13

    As shown below, Every element on the screen has their own attributes.

  • 7/27/2019 Introduction to MODULE POOL Programming by Sharath and Naresh

    8/13

    We can also insert fields from database and program directly as shown below

    Click on the button Dictionary/ Program fields

    Now click on Get from program to get the fields which are defined in the program

  • 7/27/2019 Introduction to MODULE POOL Programming by Sharath and Naresh

    9/13

    Now select the required fields and press ENTER.

    Once a field is used, It cannot be reused, You can see a lock symbol as shown below,

  • 7/27/2019 Introduction to MODULE POOL Programming by Sharath and Naresh

    10/13

    Now choose the place where you want to put the fields and drop the selected fields at you desired location.

    You will see some thing like this.

    Also we can also define sub-screen areas on the screen.

  • 7/27/2019 Introduction to MODULE POOL Programming by Sharath and Naresh

    11/13

    Source Code:

    *&---------------------------------------------------------------------*

    *& Module Pool Z_TEST_KT*&

    *&---------------------------------------------------------------------*

    *&

    *&

    *&---------------------------------------------------------------------*

    PROGRAM Z_TEST_KT.

    DATA cust like kna1-kunnr.

    DATA: NAME,CITY.

    DATA W_KNA1 TYPETABLEOF kna1 WITHHEADERLINE.

    *&---------------------------------------------------------------------**& Module STATUS_0100 OUTPUT

    *&---------------------------------------------------------------------** text

    *----------------------------------------------------------------------*

    module STATUS_0100 output.* SET PF-STATUS'xxxxxxxx'.

    * SET TITLEBAR 'xxx'.

    endmodule. "STATUS_0100 OUTPUT*&---------------------------------------------------------------------*

    *& Module USER_COMMAND_0100 INPUT

    *&---------------------------------------------------------------------*

    * text*----------------------------------------------------------------------*

    module USER_COMMAND_0100 input.

    CASE SY-UCOMM.

    WHEN'DISP'.

    SELECT NAME1 ORT01 FROM KNA1 INTO CORRESPONDING FIELDSOF W_KNA1 WHERE KUNNREQ CUST.

    ENDSELECT.

    LEAVETO LIST-PROCESSING.

    IF NAME = 'X'.

    WRITE W_KNA1-NAME1.

    ENDIF.

    IF CITY = 'X'. WRITE W_KNA1-ORT01.

    ENDIF.

    ENDCASE.

    endmodule. "USER_COMMAND_0100 INPUT

  • 7/27/2019 Introduction to MODULE POOL Programming by Sharath and Naresh

    12/13

    Out Put:

    Note: You should have a Transaction defined for the Module program to execute.

    This is the output you see after executing the program

    Enter the customer Number and select NAME or CITY or both and click on

    DISPLAY.

  • 7/27/2019 Introduction to MODULE POOL Programming by Sharath and Naresh

    13/13

    You will be able to see this screen