ABAP Select data from SAP table PEG_MDPS 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 PEG_MDPS 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 PEG_MDPS. 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 PEG_MDPS 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_PEG_MDPS TYPE STANDARD TABLE OF PEG_MDPS,
      WA_PEG_MDPS TYPE PEG_MDPS,
      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: <PEG_MDPS> TYPE PEG_MDPS.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PEG_MDPS
*  INTO TABLE @DATA(IT_PEG_MDPS2).
*--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_PEG_MDPS INDEX 1 INTO DATA(WA_PEG_MDPS2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PEG_MDPS ASSIGNING <PEG_MDPS>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PEG_MDPS>-PLAAB = 1.
<PEG_MDPS>-PLANR = 1.
<PEG_MDPS>-DAT00 = 1.
<PEG_MDPS>-SORT1 = 1.
<PEG_MDPS>-SORT2 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PEG_MDPS-DELKZ, sy-vline,
WA_PEG_MDPS-VRFKZ, sy-vline,
WA_PEG_MDPS-PLUMI, sy-vline,
WA_PEG_MDPS-MNG01, sy-vline,
WA_PEG_MDPS-MNG02, sy-vline,
WA_PEG_MDPS-MNG03, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PEG_MDPS 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_PEG_MDPS 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_PEG_MDPS INTO WA_PEG_MDPS. *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.

*Conversion exit MATN1, internal->external for field NFMAT CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_PEG_MDPS-NFMAT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PEG_MDPS-NFMAT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit MATN1, internal->external for field BAUGR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_PEG_MDPS-BAUGR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PEG_MDPS-BAUGR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ABPSP, internal->external for field PSPEL CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_PEG_MDPS-PSPEL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PEG_MDPS-PSPEL.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field AUFNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PEG_MDPS-AUFNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PEG_MDPS-AUFNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field EBELN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PEG_MDPS-EBELN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PEG_MDPS-EBELN.
WRITE:/ 'New Value:', ld_input.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_PEG_MDPS_STR,
PLAAB TYPE STRING,
PLANR TYPE STRING,
DAT00 TYPE STRING,
SORT1 TYPE STRING,
SORT2 TYPE STRING,
DELKZ TYPE STRING,
VRFKZ TYPE STRING,
PLUMI TYPE STRING,
MNG01 TYPE STRING,
MNG02 TYPE STRING,
MNG03 TYPE STRING,
DAT01 TYPE STRING,
DAT02 TYPE STRING,
WEBAZ TYPE STRING,
RDMNG TYPE STRING,
FIX01 TYPE STRING,
FIX02 TYPE STRING,
BAART TYPE STRING,
BESKZ TYPE STRING,
SOBES TYPE STRING,
ESOBS TYPE STRING,
WRK01 TYPE STRING,
WRK02 TYPE STRING,
CHARG TYPE STRING,
DELNR TYPE STRING,
DEL12 TYPE STRING,
DELPS TYPE STRING,
DELET TYPE STRING,
VPZUO TYPE STRING,
ZUVKZ TYPE STRING,
VERVP TYPE STRING,
VERSB TYPE STRING,
RSNUM TYPE STRING,
NFPKZ TYPE STRING,
KZAUS TYPE STRING,
NFEAG TYPE STRING,
NFGRP TYPE STRING,
NAFKZ TYPE STRING,
NFMNG TYPE STRING,
NFMAT TYPE STRING,
DELVR TYPE STRING,
AUFVR TYPE STRING,
POSVR TYPE STRING,
EINVR TYPE STRING,
BAUGR TYPE STRING,
KNTTP TYPE STRING,
KZVBR TYPE STRING,
SOBKZ TYPE STRING,
PSPEL TYPE STRING,
AUFNR TYPE STRING,
EBELN TYPE STRING,
EBELP TYPE STRING,
BEDAT TYPE STRING,
ETMEN TYPE STRING,
GLMNG TYPE STRING,
AUFTM TYPE STRING,
ARSNR TYPE STRING,
ARSPS TYPE STRING,
PRNKZ TYPE STRING,
RSART TYPE STRING,
MDFST TYPE STRING,
PBDNR TYPE STRING,
WAMNG TYPE STRING,
DBSKZ TYPE STRING,
EKGRP TYPE STRING,END OF T_EKKO_STR. DATA: WA_PEG_MDPS_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_PEG_MDPS_STR-PLAAB sy-vline
WA_PEG_MDPS_STR-PLANR sy-vline
WA_PEG_MDPS_STR-DAT00 sy-vline
WA_PEG_MDPS_STR-SORT1 sy-vline
WA_PEG_MDPS_STR-SORT2 sy-vline
WA_PEG_MDPS_STR-DELKZ sy-vline
WA_PEG_MDPS_STR-VRFKZ sy-vline
WA_PEG_MDPS_STR-PLUMI sy-vline
WA_PEG_MDPS_STR-MNG01 sy-vline
WA_PEG_MDPS_STR-MNG02 sy-vline
WA_PEG_MDPS_STR-MNG03 sy-vline
WA_PEG_MDPS_STR-DAT01 sy-vline
WA_PEG_MDPS_STR-DAT02 sy-vline
WA_PEG_MDPS_STR-WEBAZ sy-vline
WA_PEG_MDPS_STR-RDMNG sy-vline
WA_PEG_MDPS_STR-FIX01 sy-vline
WA_PEG_MDPS_STR-FIX02 sy-vline
WA_PEG_MDPS_STR-BAART sy-vline
WA_PEG_MDPS_STR-BESKZ sy-vline
WA_PEG_MDPS_STR-SOBES sy-vline
WA_PEG_MDPS_STR-ESOBS sy-vline
WA_PEG_MDPS_STR-WRK01 sy-vline
WA_PEG_MDPS_STR-WRK02 sy-vline
WA_PEG_MDPS_STR-CHARG sy-vline
WA_PEG_MDPS_STR-DELNR sy-vline
WA_PEG_MDPS_STR-DEL12 sy-vline
WA_PEG_MDPS_STR-DELPS sy-vline
WA_PEG_MDPS_STR-DELET sy-vline
WA_PEG_MDPS_STR-VPZUO sy-vline
WA_PEG_MDPS_STR-ZUVKZ sy-vline
WA_PEG_MDPS_STR-VERVP sy-vline
WA_PEG_MDPS_STR-VERSB sy-vline
WA_PEG_MDPS_STR-RSNUM sy-vline
WA_PEG_MDPS_STR-NFPKZ sy-vline
WA_PEG_MDPS_STR-KZAUS sy-vline
WA_PEG_MDPS_STR-NFEAG sy-vline
WA_PEG_MDPS_STR-NFGRP sy-vline
WA_PEG_MDPS_STR-NAFKZ sy-vline
WA_PEG_MDPS_STR-NFMNG sy-vline
WA_PEG_MDPS_STR-NFMAT sy-vline
WA_PEG_MDPS_STR-DELVR sy-vline
WA_PEG_MDPS_STR-AUFVR sy-vline
WA_PEG_MDPS_STR-POSVR sy-vline
WA_PEG_MDPS_STR-EINVR sy-vline
WA_PEG_MDPS_STR-BAUGR sy-vline
WA_PEG_MDPS_STR-KNTTP sy-vline
WA_PEG_MDPS_STR-KZVBR sy-vline
WA_PEG_MDPS_STR-SOBKZ sy-vline
WA_PEG_MDPS_STR-PSPEL sy-vline
WA_PEG_MDPS_STR-AUFNR sy-vline
WA_PEG_MDPS_STR-EBELN sy-vline
WA_PEG_MDPS_STR-EBELP sy-vline
WA_PEG_MDPS_STR-BEDAT sy-vline
WA_PEG_MDPS_STR-ETMEN sy-vline
WA_PEG_MDPS_STR-GLMNG sy-vline
WA_PEG_MDPS_STR-AUFTM sy-vline
WA_PEG_MDPS_STR-ARSNR sy-vline
WA_PEG_MDPS_STR-ARSPS sy-vline
WA_PEG_MDPS_STR-PRNKZ sy-vline
WA_PEG_MDPS_STR-RSART sy-vline
WA_PEG_MDPS_STR-MDFST sy-vline
WA_PEG_MDPS_STR-PBDNR sy-vline
WA_PEG_MDPS_STR-WAMNG sy-vline
WA_PEG_MDPS_STR-DBSKZ sy-vline
WA_PEG_MDPS_STR-EKGRP sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.