ABAP Select data from SAP table /SAPAPO/RRP_PEG 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 /SAPAPO/RRP_PEG 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 /SAPAPO/RRP_PEG. 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 /SAPAPO/RRP_PEG 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_/SAPAPO/RRP_PEG TYPE STANDARD TABLE OF /SAPAPO/RRP_PEG,
      WA_/SAPAPO/RRP_PEG TYPE /SAPAPO/RRP_PEG,
      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: </SAPAPO/RRP_PEG> TYPE /SAPAPO/RRP_PEG.

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

SELECT *
*restrict ABAP select to first 10 rows
 UP TO 10 ROWS      
  FROM /SAPAPO/RRP_PEG
  INTO TABLE IT_/SAPAPO/RRP_PEG.

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM /SAPAPO/RRP_PEG
*  INTO TABLE @DATA(IT_/SAPAPO/RRP_PEG2).
*--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_/SAPAPO/RRP_PEG INDEX 1 INTO DATA(WA_/SAPAPO/RRP_PEG2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_/SAPAPO/RRP_PEG ASSIGNING </SAPAPO/RRP_PEG>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
</SAPAPO/RRP_PEG>-SIMID = 1.
</SAPAPO/RRP_PEG>-LOCID = 1.
</SAPAPO/RRP_PEG>-PEG_TYPE = 1.
</SAPAPO/RRP_PEG>-MEINS = 1.
</SAPAPO/RRP_PEG>-SP_QUANTITY = 1.
ENDLOOP.

LOOP AT IT_/SAPAPO/RRP_PEG INTO WA_/SAPAPO/RRP_PEG.
*Write horizonal line to screen report.
  WRITE:/ sy-uline.

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_/SAPAPO/RRP_PEG-FP_QUANTITY, sy-vline,
WA_/SAPAPO/RRP_PEG-AP_QUANTITY, sy-vline,
WA_/SAPAPO/RRP_PEG-PGOUT_ORDERID, sy-vline,
WA_/SAPAPO/RRP_PEG-PGOUT_POSITION_NO, sy-vline,
WA_/SAPAPO/RRP_PEG-PGOUT_LINE_NO, sy-vline,
WA_/SAPAPO/RRP_PEG-PGOUT_IONODE_TYPE, sy-vline.
ENDLOOP. *Add any further fields from structure WA_/SAPAPO/RRP_PEG 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_/SAPAPO/RRP_PEG 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_/SAPAPO/RRP_PEG INTO WA_/SAPAPO/RRP_PEG. *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 VRSIO, internal->external for field SIMID CALL FUNCTION 'CONVERSION_EXIT_VRSIO_OUTPUT' EXPORTING input = WA_/SAPAPO/RRP_PEG-SIMID IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/SAPAPO/RRP_PEG-SIMID.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MEINS CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_/SAPAPO/RRP_PEG-MEINS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/SAPAPO/RRP_PEG-MEINS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field PGOUT_MEINS CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_/SAPAPO/RRP_PEG-PGOUT_MEINS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/SAPAPO/RRP_PEG-PGOUT_MEINS.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit CUNIT, internal->external for field PGIN_MEINS CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_/SAPAPO/RRP_PEG-PGIN_MEINS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/SAPAPO/RRP_PEG-PGIN_MEINS.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit CUNIT, internal->external for field PGEND_MEINS CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_/SAPAPO/RRP_PEG-PGEND_MEINS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/SAPAPO/RRP_PEG-PGEND_MEINS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit MATN1, internal->external for field PGEND_MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_/SAPAPO/RRP_PEG-PGEND_MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/SAPAPO/RRP_PEG-PGEND_MATNR.
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_/SAPAPO/RRP_PEG_STR,
SIMID TYPE STRING,
LOCID TYPE STRING,
PEG_TYPE TYPE STRING,
MEINS TYPE STRING,
SP_QUANTITY TYPE STRING,
FP_QUANTITY TYPE STRING,
AP_QUANTITY TYPE STRING,
PGOUT_ORDERID TYPE STRING,
PGOUT_POSITION_NO TYPE STRING,
PGOUT_LINE_NO TYPE STRING,
PGOUT_IONODE_TYPE TYPE STRING,
PGOUT_LOCID TYPE STRING,
PGOUT_ACTID TYPE STRING,
PGOUT_PEGID TYPE STRING,
PGOUT_SUBLOC TYPE STRING,
PGOUT_VERSION TYPE STRING,
PGOUT_CATEGORY TYPE STRING,
PGOUT_CATEGORY_TYPE TYPE STRING,
PGOUT_IO_TIME TYPE STRING,
PGOUT_EXTRA TYPE STRING,
PGOUT_CATNAM TYPE STRING,
PGOUT_RQDAT TYPE STRING,
PGOUT_RQTIM TYPE STRING,
PGOUT_MEINS TYPE STRING,
PGOUT_QUANTITY TYPE STRING,
PGOUT_SUR_DEF TYPE STRING,
PGOUT_MATNR TYPE STRING,
PGOUT_MATID TYPE STRING,
PGOUT_MAKTX TYPE STRING,
PGOUT_MANOT TYPE STRING,
PGOUT_CHARA TYPE STRING,
PGIN_ORDERID TYPE STRING,
PGIN_POSITION_NO TYPE STRING,
PGIN_LINE_NO TYPE STRING,
PGIN_IONODE_TYPE TYPE STRING,
PGIN_LOCID TYPE STRING,
PGIN_ACTID TYPE STRING,
PGIN_PEGID TYPE STRING,
PGIN_SUBLOC TYPE STRING,
PGIN_VERSION TYPE STRING,
PGIN_CATEGORY TYPE STRING,
PGIN_CATEGORY_TYPE TYPE STRING,
PGIN_IO_TIME TYPE STRING,
PGIN_EXTRA TYPE STRING,
PGIN_CATNAM TYPE STRING,
PGIN_RQDAT TYPE STRING,
PGIN_RQTIM TYPE STRING,
PGIN_MEINS TYPE STRING,
PGIN_QUANTITY TYPE STRING,
PGIN_SUR_DEF TYPE STRING,
PGIN_MATNR TYPE STRING,
PGIN_MATID TYPE STRING,
PGIN_MAKTX TYPE STRING,
PGIN_MANOT TYPE STRING,
PGIN_CHARA TYPE STRING,
PGEND_ORDERID TYPE STRING,
PGEND_POSITION_NO TYPE STRING,
PGEND_LINE_NO TYPE STRING,
PGEND_LOCID TYPE STRING,
PGEND_ACTID TYPE STRING,
PGEND_PEGID TYPE STRING,
PGEND_SUBLOC TYPE STRING,
PGEND_VERSION TYPE STRING,
PGEND_CATEGORY TYPE STRING,
PGEND_CATEGORY_TYPE TYPE STRING,
PGEND_IO_TIME TYPE STRING,
PGEND_EXTRA TYPE STRING,
PGEND_CATNAM TYPE STRING,
PGEND_RQDAT TYPE STRING,
PGEND_RQTIM TYPE STRING,
PGEND_MEINS TYPE STRING,
PGEND_QUANTITY TYPE STRING,
PGEND_MATNR TYPE STRING,
PGEND_MATID TYPE STRING,
PGEND_MAKTX TYPE STRING,
PGEND_MANOT TYPE STRING,
PGEND_CHARA TYPE STRING,
PEG_RC TYPE STRING,END OF T_EKKO_STR. DATA: WA_/SAPAPO/RRP_PEG_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_/SAPAPO/RRP_PEG_STR-SIMID sy-vline
WA_/SAPAPO/RRP_PEG_STR-LOCID sy-vline
WA_/SAPAPO/RRP_PEG_STR-PEG_TYPE sy-vline
WA_/SAPAPO/RRP_PEG_STR-MEINS sy-vline
WA_/SAPAPO/RRP_PEG_STR-SP_QUANTITY sy-vline
WA_/SAPAPO/RRP_PEG_STR-FP_QUANTITY sy-vline
WA_/SAPAPO/RRP_PEG_STR-AP_QUANTITY sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_ORDERID sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_POSITION_NO sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_LINE_NO sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_IONODE_TYPE sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_LOCID sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_ACTID sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_PEGID sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_SUBLOC sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_VERSION sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_CATEGORY sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_CATEGORY_TYPE sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_IO_TIME sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_EXTRA sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_CATNAM sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_RQDAT sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_RQTIM sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_MEINS sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_QUANTITY sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_SUR_DEF sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_MATNR sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_MATID sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_MAKTX sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_MANOT sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGOUT_CHARA sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_ORDERID sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_POSITION_NO sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_LINE_NO sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_IONODE_TYPE sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_LOCID sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_ACTID sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_PEGID sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_SUBLOC sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_VERSION sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_CATEGORY sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_CATEGORY_TYPE sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_IO_TIME sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_EXTRA sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_CATNAM sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_RQDAT sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_RQTIM sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_MEINS sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_QUANTITY sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_SUR_DEF sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_MATNR sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_MATID sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_MAKTX sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_MANOT sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGIN_CHARA sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_ORDERID sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_POSITION_NO sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_LINE_NO sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_LOCID sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_ACTID sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_PEGID sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_SUBLOC sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_VERSION sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_CATEGORY sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_CATEGORY_TYPE sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_IO_TIME sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_EXTRA sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_CATNAM sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_RQDAT sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_RQTIM sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_MEINS sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_QUANTITY sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_MATNR sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_MATID sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_MAKTX sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_MANOT sy-vline
WA_/SAPAPO/RRP_PEG_STR-PGEND_CHARA sy-vline
WA_/SAPAPO/RRP_PEG_STR-PEG_RC sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.