ABAP Select data from SAP table MDAMP into internal table

Get Example source ABAP code based on a different SAP table
  

Below is a number of ABAP code snippets to demonstrate how to select data from SAP MDAMP table and store it within an internal table, including using the newer @DATA inline declaration methods. It also shows you various ways to process this data using ABAP work area, inline declaration or field symbols including executing all the relevant CONVERSION_EXIT routines specific to MDAMP. See here for more generic Select statement tips.

Sometimes data within SAP is stored within the database table in a different format to what it is displayed to the user. These input/output conversation FM routines are what translates the data between the two formats.

There is also a full declaration of the MDAMP table where each field has a char/string type for you to simply copy and paste. This allows you to use processing that is only available to these field types such as the CONCATENATE statement.

DATA: IT_MDAMP TYPE STANDARD TABLE OF MDAMP,
      WA_MDAMP TYPE MDAMP,
      GD_STR TYPE STRING.

DATA: lo_typedescr type REF TO cl_abap_typedescr.
DATA: lv_fieldname type fieldname.

FIELD-SYMBOLS: <FIELD> TYPE any.
FIELD-SYMBOLS: <MDAMP> TYPE MDAMP.

*Process all fields in table header/work area as string values
  PERFORM process_as_string_field_values CHANGING wa_MDAMP.

SELECT *
*restrict ABAP select to first 10 rows
 UP TO 10 ROWS      
  FROM MDAMP
  INTO TABLE IT_MDAMP.

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM MDAMP
*  INTO TABLE @DATA(IT_MDAMP2).
*--Further methods of using ABAP code to  select data from SAP database tables

*You can also declare the header/work area using the in-line DATA declaration method
READ TABLE IT_MDAMP INDEX 1 INTO DATA(WA_MDAMP2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_MDAMP ASSIGNING <MDAMP>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<MDAMP>-BERR1 = 1.
<MDAMP>-BERY1 = 1.
<MDAMP>-BERG1 = 1.
<MDAMP>-BERR2 = 1.
<MDAMP>-BERY2 = 1.
ENDLOOP.

LOOP AT IT_MDAMP INTO WA_MDAMP.
*Write horizonal line to screen report.
  WRITE:/ sy-uline.

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_MDAMP-BERG2, sy-vline,
WA_MDAMP-BERR3, sy-vline,
WA_MDAMP-BERY3, sy-vline,
WA_MDAMP-BERG3, sy-vline,
WA_MDAMP-SLKA1, sy-vline,
WA_MDAMP-SLKA2, sy-vline.
ENDLOOP. *Add any further fields from structure WA_MDAMP you want to display... WRITE:/ sy-uline. * Aternatively use generic code to Write field values (and NAME) to screen report DO. ASSIGN COMPONENT sy-index OF STRUCTURE wa_MDAMP TO <field>. IF sy-subrc <> 0. EXIT. ENDIF. WRITE:/ 'Field Value', <field>, sy-vline. gd_str = <field> . lo_typedescr ?= CL_ABAP_DATADESCR=>DESCRIBE_BY_DATA( <field> ). lv_fieldname = lo_typedescr->GET_RELATIVE_NAME( ). WRITE:/ 'Field Name', lv_fieldname. ENDDO. *Redo loop but convert all fields from internal to out value LOOP AT IT_MDAMP INTO WA_MDAMP. *Write horizonal line to screen report. WRITE:/ sy-uline. *Convert all fields to display/output versions using conversion routines PERFORM convert_all_field_values CHANGING wa_EKKO. ENDLOOP. *&---------------------------------------------------------------------* *& Form convert_all_field_values *&---------------------------------------------------------------------* FORM convert_all_field_values CHANGING p_EKKO LIKE wa_EKKO. DATA: ld_input(1000) TYPE c, ld_output(1000) TYPE C.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_MDAMP_STR,
BERR1 TYPE STRING,
BERY1 TYPE STRING,
BERG1 TYPE STRING,
BERR2 TYPE STRING,
BERY2 TYPE STRING,
BERG2 TYPE STRING,
BERR3 TYPE STRING,
BERY3 TYPE STRING,
BERG3 TYPE STRING,
SLKA1 TYPE STRING,
SLKA2 TYPE STRING,
SLKA3 TYPE STRING,
SLKA4 TYPE STRING,
SLKA5 TYPE STRING,
SLKA6 TYPE STRING,
SLKA7 TYPE STRING,
SLKA8 TYPE STRING,
AUSZ1 TYPE STRING,
AUSZ2 TYPE STRING,
AUSZ3 TYPE STRING,
AUSZ4 TYPE STRING,
AUSZ5 TYPE STRING,
AUSZ6 TYPE STRING,
AUSZ7 TYPE STRING,
AUSZ8 TYPE STRING,
ATXT1 TYPE STRING,
ATXT2 TYPE STRING,
ATXT3 TYPE STRING,
ATXT4 TYPE STRING,
ATXT5 TYPE STRING,
ATXT6 TYPE STRING,
ATXT7 TYPE STRING,
ATXT8 TYPE STRING,
REICR TYPE STRING,
REICY TYPE STRING,
REICG TYPE STRING,
AUSNR TYPE STRING,
AUSNY TYPE STRING,
AUSNG TYPE STRING,
SEA1R TYPE STRING,
SEA1Y TYPE STRING,
SEA1G TYPE STRING,
SEA2R TYPE STRING,
SEA2Y TYPE STRING,
SEA2G TYPE STRING,
SEA3R TYPE STRING,
SEA3Y TYPE STRING,
SEA3G TYPE STRING,
SEA4R TYPE STRING,
SEA4Y TYPE STRING,
SEA4G TYPE STRING,
SEA5R TYPE STRING,
SEA5Y TYPE STRING,
SEA5G TYPE STRING,
SEA6R TYPE STRING,
SEA6Y TYPE STRING,
SEA6G TYPE STRING,
SEA7R TYPE STRING,
SEA7Y TYPE STRING,
SEA7G TYPE STRING,
SEA8R TYPE STRING,
SEA8Y TYPE STRING,
SEA8G TYPE STRING,
MATGW TYPE STRING,
MODBAD TYPE STRING,END OF T_EKKO_STR. DATA: WA_MDAMP_STR type T_EKKO_STR. DATA: ld_text TYPE string. LOOP AT IT_EKKO INTO WA_EKKO. MOVE-CORRESPONDING wa_EKKO TO WA_EKKO_STR. CONCATENATE: sy-vline
WA_MDAMP_STR-BERR1 sy-vline
WA_MDAMP_STR-BERY1 sy-vline
WA_MDAMP_STR-BERG1 sy-vline
WA_MDAMP_STR-BERR2 sy-vline
WA_MDAMP_STR-BERY2 sy-vline
WA_MDAMP_STR-BERG2 sy-vline
WA_MDAMP_STR-BERR3 sy-vline
WA_MDAMP_STR-BERY3 sy-vline
WA_MDAMP_STR-BERG3 sy-vline
WA_MDAMP_STR-SLKA1 sy-vline
WA_MDAMP_STR-SLKA2 sy-vline
WA_MDAMP_STR-SLKA3 sy-vline
WA_MDAMP_STR-SLKA4 sy-vline
WA_MDAMP_STR-SLKA5 sy-vline
WA_MDAMP_STR-SLKA6 sy-vline
WA_MDAMP_STR-SLKA7 sy-vline
WA_MDAMP_STR-SLKA8 sy-vline
WA_MDAMP_STR-AUSZ1 sy-vline
WA_MDAMP_STR-AUSZ2 sy-vline
WA_MDAMP_STR-AUSZ3 sy-vline
WA_MDAMP_STR-AUSZ4 sy-vline
WA_MDAMP_STR-AUSZ5 sy-vline
WA_MDAMP_STR-AUSZ6 sy-vline
WA_MDAMP_STR-AUSZ7 sy-vline
WA_MDAMP_STR-AUSZ8 sy-vline
WA_MDAMP_STR-ATXT1 sy-vline
WA_MDAMP_STR-ATXT2 sy-vline
WA_MDAMP_STR-ATXT3 sy-vline
WA_MDAMP_STR-ATXT4 sy-vline
WA_MDAMP_STR-ATXT5 sy-vline
WA_MDAMP_STR-ATXT6 sy-vline
WA_MDAMP_STR-ATXT7 sy-vline
WA_MDAMP_STR-ATXT8 sy-vline
WA_MDAMP_STR-REICR sy-vline
WA_MDAMP_STR-REICY sy-vline
WA_MDAMP_STR-REICG sy-vline
WA_MDAMP_STR-AUSNR sy-vline
WA_MDAMP_STR-AUSNY sy-vline
WA_MDAMP_STR-AUSNG sy-vline
WA_MDAMP_STR-SEA1R sy-vline
WA_MDAMP_STR-SEA1Y sy-vline
WA_MDAMP_STR-SEA1G sy-vline
WA_MDAMP_STR-SEA2R sy-vline
WA_MDAMP_STR-SEA2Y sy-vline
WA_MDAMP_STR-SEA2G sy-vline
WA_MDAMP_STR-SEA3R sy-vline
WA_MDAMP_STR-SEA3Y sy-vline
WA_MDAMP_STR-SEA3G sy-vline
WA_MDAMP_STR-SEA4R sy-vline
WA_MDAMP_STR-SEA4Y sy-vline
WA_MDAMP_STR-SEA4G sy-vline
WA_MDAMP_STR-SEA5R sy-vline
WA_MDAMP_STR-SEA5Y sy-vline
WA_MDAMP_STR-SEA5G sy-vline
WA_MDAMP_STR-SEA6R sy-vline
WA_MDAMP_STR-SEA6Y sy-vline
WA_MDAMP_STR-SEA6G sy-vline
WA_MDAMP_STR-SEA7R sy-vline
WA_MDAMP_STR-SEA7Y sy-vline
WA_MDAMP_STR-SEA7G sy-vline
WA_MDAMP_STR-SEA8R sy-vline
WA_MDAMP_STR-SEA8Y sy-vline
WA_MDAMP_STR-SEA8G sy-vline
WA_MDAMP_STR-MATGW sy-vline
WA_MDAMP_STR-MODBAD sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.