ABAP HR Program to list maintained Infotypes in SAP

Following ABAP HR program is used to display a list of all the Infotype structures maintaine in the SAP. The program generates an ALV Grid which lists all the infotypes in the system.

list_of_infotype_structure

ABAP Code:

*&---------------------------------------------------------------------*
*& Report  ZINFOTYPE                                                   *
*&---------------------------------------------------------------------*
*&                                                                     *
*& This program lists all the infotypes maintained in SAP system       *
*&---------------------------------------------------------------------*
REPORT  zinfotype NO STANDARD PAGE HEADING line-size 255.
TYPE-POOLS : slis.
*Structure declaration for Infotypes for customer
TYPES : BEGIN OF ty_table,
        infty TYPE infty,
        pnnnn TYPE pnnnn_d,
        END OF ty_table.
*Structure for infotype text
TYPES : BEGIN OF ty_itext,
        infty TYPE infty,
        itext TYPE intxt,
        sprsl TYPE sprsl,
        END OF ty_itext.
*Structure for output display
TYPES : BEGIN OF ty_output,
        infty TYPE infty,
        itext TYPE intxt,
        pnnnn TYPE pnnnn_d,
       END OF ty_output.
*internal table and work area declarations
DATA : it_table TYPE STANDARD TABLE OF ty_table INITIAL SIZE 0,
       it_output TYPE STANDARD TABLE OF ty_output INITIAL SIZE 0,
       it_ittext TYPE STANDARD TABLE OF ty_itext INITIAL SIZE 0,
       wa_table TYPE ty_table,
       wa_output TYPE ty_output,
       wa_ittext TYPE ty_itext.
*Data declarations for ALV
DATA: c_ccont TYPE REF TO cl_gui_custom_container,   "Custom container
*object
      c_alvgd         TYPE REF TO cl_gui_alv_grid,   "ALV grid object
      it_fcat            TYPE lvc_t_fcat,            "Field catalogue
      it_layout          TYPE lvc_s_layo.
"Layout

INITIALIZATION.

START-OF-SELECTION.
*select the infotypes maintained
  SELECT infty
          pnnnn
          FROM t582a
          INTO TABLE it_table.
*Select the infotype texts
  IF it_table[] IS NOT INITIAL.
    SELECT itext
  infty
  sprsl
  FROM t582s
  INTO CORRESPONDING FIELDS OF TABLE it_ittext
  FOR ALL ENTRIES IN it_table
  WHERE infty = it_table-infty
  AND sprsl = 'E'.
  ENDIF.
*Apppending the data to the internal table of ALV output
  LOOP AT it_table INTO wa_table.
    wa_output-infty = wa_table-infty.
    wa_output-pnnnn = wa_table-pnnnn.
* For texts
    READ TABLE it_ittext INTO wa_ittext WITH KEY infty = wa_table-infty.
    wa_output-itext = wa_ittext-itext.    APPEND wa_output TO it_output.
    CLEAR wa_output.
  ENDLOOP.
* Calling the ALV screen with custom container
  CALL SCREEN 0600.
*On this statement double click it takes you to the screen painter SE51.
*Enter the attributes
*Create a Custom container and name it CC_CONT and OK code as OK_CODE.
*Save check and Activate the screen painter.
*Now a normal screen with number 600 is created which holds the ALV
*grid. PBO of the actual screen , Here we can give a title and
*customized menus.
*&---------------------------------------------------------------------*
*&      Module  STATUS_0600  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module STATUS_0600 output.
  SET PF-STATUS '0600'.
  SET TITLEBAR '0600'.
endmodule.                 " STATUS_0600OUTPUT
* calling the PBO module ALV_GRID.
*&---------------------------------------------------------------------*
*&      Module  ALV_GRID  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE alv_grid OUTPUT.
  CREATE OBJECT c_ccont
    EXPORTING
      container_name = 'CC_CONT'.
  CREATE OBJECT c_alvgd
    EXPORTING
      i_parent = c_ccont.
* Set field for ALV
  PERFORM alv_build_fieldcat.
* Set ALV attributes FOR LAYOUT
  PERFORM alv_report_layout.  CHECK NOT c_alvgd IS INITIAL.
* Call ALV GRID
  CALL METHOD c_alvgd->set_table_for_first_display
    EXPORTING
      is_layout                     = it_layout
    CHANGING
      it_outtab                     = it_output
      it_fieldcatalog               = it_fcat
    EXCEPTIONS
      invalid_parameter_combination = 1
      program_error                 = 2
      too_many_lines                = 3
      OTHERS                        = 4.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
ENDMODULE.                 " ALV_GRID  OUTPUT
*&---------------------------------------------------------------------*
*&      Form  alv_build_fieldcat
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_IT_FCAT  text
*----------------------------------------------------------------------*
FORM alv_build_fieldcat.
  DATA lv_fldcat TYPE lvc_s_fcat.  CLEAR
lv_fldcat.
  lv_fldcat-row_pos   = '1'.
  lv_fldcat-col_pos   = '1'.
  lv_fldcat-fieldname = 'INFTY'.
  lv_fldcat-tabname   = 'IT_OUTPUT'.
  lv_fldcat-outputlen = 8.
  lv_fldcat-scrtext_m = 'Infotype'.
  lv_fldcat-icon = 'X'.
  APPEND lv_fldcat TO it_fcat.  CLEAR lv_fldcat.
  lv_fldcat-row_pos   = '1'.
  lv_fldcat-col_pos   = '2'.
  lv_fldcat-fieldname = 'PNNNN'.
  lv_fldcat-tabname   = 'IT_OUTPUT'.
  lv_fldcat-outputlen = 15.
  lv_fldcat-scrtext_m = 'Structure'.
  lv_fldcat-icon = ''.
  APPEND lv_fldcat TO it_fcat.  CLEAR lv_fldcat.  lv_fldcat-row_pos
= '1'.
  lv_fldcat-col_pos   = '3'.
  lv_fldcat-fieldname = 'ITEXT'.
  lv_fldcat-tabname   = 'IT_OUTPUT'.
  lv_fldcat-outputlen = 60.
  lv_fldcat-scrtext_m = 'Description'.
  lv_fldcat-icon = ''.
  APPEND lv_fldcat TO it_fcat.  CLEAR lv_fldcat.
ENDFORM.                    " alv_build_fieldcat
*&---------------------------------------------------------------------*
*&      Form  alv_report_layout
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_IT_LAYOUT  text
*----------------------------------------------------------------------*
FORM alv_report_layout.
  it_layout-cwidth_opt = 'X'.
  it_layout-zebra = 'X'.
ENDFORM.                    " alv_report_layout
* PAI module of the screen created. In case we use an interactive ALV or
*for additional functionalities we can create OK codes
*and based on the user command we can do the coding.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0600  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module USER_COMMAND_0600 input.
endmodule.                 "USER_COMMAND_0600  INPUT
*&---------------------------------------------------------------------*
*&      Module  EXIT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE EXIT INPUT.
  LEAVE to SCREEN 0.
ENDMODULE.                 " EXIT  INPUT

Steps to be followed:

1. Assign PNP as Logical Database in Program Attributes.

2. Create screen (0600) and write following code in its flow logic.
PROCESS BEFORE OUTPUT.
MODULE STATUS_0600.
MODULE alv_grid.

PROCESS AFTER INPUT.
MODULE exit AT EXIT-COMMAND.
MODULE USER_COMMAND_0600.

3. Place a custom container on the screen with name CC_CONT and also assign OK_CODE name to OK type. (both in Element List – > General Attributes).

4. Create PBO elements (PF Status, Titlebar).

5. Activate and execute the program.

You might also be interested in these posts:

  1. ABAP Program with Editable ALV Grid Contents
  2. ABAP Program to List Programs without T-Codes
  3. List of SAP HR and Infotypes Tables
  4. ABAP Program for ALV Grid, the OOPS way
  5. ABAP Program to Display SE78 pictures on Screen

One Response to “ABAP HR Program to list maintained Infotypes in SAP”
Wordpress Themes Posted on July 26, 2010 at 5:46 AM

Nice brief and this fill someone in on helped me alot in my college assignement. Thank you as your information.

Post a Comment