Structured ABAP programming by a COBOL programmer

This is an example of an ABAP program structured like a COBOL program.

This is an example of an ABAP program structured like a COBOL program. The program lists the record description of a Table/structure.
*******
* Start of REPORT ZMJB_001_print_table_structure                       *
*----------------------------------------------------------------------*
* PROPERTY INFORMATION:   MARIO J. BRYSON                              *
*                          (mario_bryson@farmersinsurance.com)         *
* PROGRAM NAME:           ZMJB_001_PRINT_TABLE_STRUCTURE               *
* BRIEF NARRATIVE:        The object of this program is to print a     *
*                         record description of a given table/structure*
* FUNCTIONALITY AREA:     ABAP UTILITY                                 *
* RELEASE:                4.6                                          *
* SAP REFERENCE PROGRAM:  N/A                                          *
*                                                                      *
*******************   MODIFICATION HISTORY   ***************************
* DATE:     DPSR #    AUTHOR    DESCRIPTION:                           *
*---------  ------    ------    ---------------------------------------*
* 04/10/99  mjb002    MJB       Completed and moved to production      *
*                               Transport DW2K902XXX                   *
*                               Transaction code = zmjb001             *
* 04/09/99  mjb001    MJB       Started                                *
* ---------------------------------------------------------------------*
* INPUT/OUTPUT:                                                        *
* ------------                                                         *
* INPUT:                                                               *
*       TABLES:  1.  DD03P  (STRUCTURE)                                *
* OUTPUT:                                                              *
*       REPORT:  1.  RECORD DESCRIPTION REPORT                         *
************************************************************************

Report zmjb_001_print_table_structure     "Report name
       line-size 132
       line-count 65(3)
       message-id z01.

*----------------------------------------------------------------------*
*    TABLES                                                            *
*----------------------------------------------------------------------*

*Tables:  dd03p.                          "structure

*----------------------------------------------------------------------*
*    CONSTANTS                                                         *
*----------------------------------------------------------------------*

constants:
*--------
 c_a(1)          type c value 'A'.        "State for DDIF

*----------------------------------------------------------------------*
*    VARIABLES                                                         *
*----------------------------------------------------------------------*

data:
*---
 v_dd03p_itab like dd03p occurs 0 with header line.    "structure

data:
*---
 v_start         like dd03p-position,     "Starting location
 v_end           like dd03p-position,     "Ending location
 v_record_count  type p decimals 0.       "line_count

*----------------------------------------------------------------------*
*    SELECTION-SCREEN                                                  *
*----------------------------------------------------------------------*

selection-screen begin of block table_record with
      frame title text-001.

parameters:                               "parameters
*---------
      p_tabnam like dcobjdef-name.        "table name

selection-screen end of block table_record.

************************************************************************
* START OF M A I N   L O G I C                                         *
************************************************************************

initialization.
*-------------
  perform a_ini_010_initialization.       "Initialization routine

at selection-screen.
*------------------
  perform b_ass_010_at_selection_screen.  "Screen

start-of-selection.
*-----------------
  perform c_sos_010_retrieve_dd03p.       "Retrieve structure

end-of-selection.
*---------------
  perform d_eos_010_report_dd03p.         "Print structure

top-of-page.
*----------
  perform z_top_010_top_of_page.          "Top-of-page

*----------------------------------------------------------------------*
*   END OF M A I N   L O G I C                                         *
*----------------------------------------------------------------------*

************************************************************************
* Form  a_ini_010_initialization                                       *
************************************************************************

form a_ini_010_initialization.
*----------------------------
 v_start = 1.                             "Initialize to 1

endform.                                  "a_ini_010_initialization.

************************************************************************
* Form  b_ass_010_at_selection_screen                                  *
************************************************************************

form b_ass_010_at_selection_screen.
*---------------------------------
  if p_tabnam is initial.                 "If blank enter a value for
     message e556 with text-002.          "table name or structure
  endif.

endform.                                  "b_ass_010_at_selection_screen

************************************************************************
* Form  c_sos_010_retrieve_dd03p                                       *
*  This subroutine will retrieve the table structure and returned it in*
*  the internal table v_dd03p_itab.                                    *
************************************************************************

form c_sos_010_retrieve_dd03p.
*----------------------------
  call function 'DDIF_TABL_GET'
       exporting
            name          = p_tabnam
            state         = c_a           "Value is A
            langu         = sy-langu
       tables
            dd03p_tab     = v_dd03p_itab
       exceptions
            illegal_input = 1
            others        = 2.

  if sy-subrc <> 0.
     write: text-003.                 "table name or structure not found
  endif.

endform.                              "c_sos_010_retrieve_dd03p

************************************************************************
* Form  d_eos_010_report_dd03p                                         *
************************************************************************

form d_eos_010_report_dd03p.
*--------------------------
 describe table v_dd03p_itab lines v_record_count.  "Record count

 if v_record_count = 0.                             "no input
    v_dd03p_itab-ddtext = text-003.                 "table name or
    write v_dd03p_itab-ddtext under text-h01.       "structure not found
    exit.                                           "None to print
 endif.

 loop at v_dd03p_itab.                              "start of printing
   v_end   = v_start + v_dd03p_itab-leng - 1.       "add start,length
                                                    "and subtract 1
   write: / v_dd03p_itab-fieldname under text-h01,  "field name
            v_dd03p_itab-position  under text-h02,  "seq
            v_dd03p_itab-keyflag   under text-h03,  "key
            v_dd03p_itab-inttype   under text-h04,  "type
            v_dd03p_itab-datatype  under text-h05,  "data
            v_dd03p_itab-leng      under text-h06,  "length
            v_dd03p_itab-decimals  under text-h07,  "dec
            v_start                under text-h10,  "start
            v_end                  under text-h11,  "end
            v_dd03p_itab-ddtext    under text-h08.  "text

   v_start = v_end + 1.                             "add 1 to start loc

 endloop.                                           "end of printing

endform.                                  "d_eos_010_report_dd03p.

************************************************************************
* Form  z_top_010_top_of_page                                          *
************************************************************************

form z_top_010_top_of_page.               "top-of-page
*-------------------------

* 1st row of title
*-----------------
  write:  /001 'RECORD DESCRIPTION OF TABLE',
           029 p_tabnam intensified color 6.

  write:  /001 text-h01,                  "field name
           012 text-h02,                  "seq
           018 text-h03,                  "key
           022 text-h04,                  "type
           027 text-h05,                  "data
           033 text-h06,                  "length
           040 text-h07,                  "dec
           047 text-h10,                  "start
           053 text-h11,                  "end
           059 text-h08.                  "text

* 2nd row of title
*-----------------
  write:  / text-h09 under text-h05,      "Type
            text-h12 under text-h10.      "location
  uline.

endform.                                  "z_top_010_top_of_page.

************************************************************************
* end of REPORT ZMJB_001_print_table_structure                         *
************************************************************************

*no.   text
*---   ---------------------------------
*001   table record description
*002   table name or structure
*003   table name or structure not found
*h01   field name
*h02   seq
*h03   key
*h04   type
*h05   data
*h06   length
*h07   dec
*h08   text
*h09   type
*h10   start
*h11   end
*h12   location

*p_tabname = Table/Structure Name
		
		
This was first published in December 2001

Dig deeper on SAP ABAP

Pro+

Features

Enjoy the benefits of Pro+ membership, learn more and join.

0 comments

Oldest 

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

-ADS BY GOOGLE

SearchManufacturingERP

SearchOracle

SearchDataManagement

SearchAWS

SearchBusinessAnalytics

SearchCRM

SearchContentManagement

SearchFinancialApplications

Close