ABAP Select data from SAP table ASP00 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 ASP00 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 ASP00. 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 ASP00 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_ASP00 TYPE STANDARD TABLE OF ASP00,
      WA_ASP00 TYPE ASP00,
      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: <ASP00> TYPE ASP00.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM ASP00
*  INTO TABLE @DATA(IT_ASP002).
*--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_ASP00 INDEX 1 INTO DATA(WA_ASP002).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_ASP00 ASSIGNING <ASP00>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<ASP00>-MANDT = 1.
<ASP00>-FCODE = 1.
<ASP00>-WSNAM = 1.
<ASP00>-WSSEL = 1.
<ASP00>-MATNR = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_ASP00-WERKS, sy-vline,
WA_ASP00-WESEL, sy-vline,
WA_ASP00-CBEDA, sy-vline,
WA_ASP00-CBETI, sy-vline,
WA_ASP00-CENDA, sy-vline,
WA_ASP00-CENTI, sy-vline.
ENDLOOP. *Add any further fields from structure WA_ASP00 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_ASP00 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_ASP00 INTO WA_ASP00. *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 MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_ASP00-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ASP00-MATNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CAPRO, internal->external for field CROWN CALL FUNCTION 'CONVERSION_EXIT_CAPRO_OUTPUT' EXPORTING input = WA_ASP00-CROWN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ASP00-CROWN.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit DURAT, internal->external for field SPROC CALL FUNCTION 'CONVERSION_EXIT_DURAT_OUTPUT' EXPORTING input = WA_ASP00-SPROC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ASP00-SPROC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit DURAT, internal->external for field FTIME CALL FUNCTION 'CONVERSION_EXIT_DURAT_OUTPUT' EXPORTING input = WA_ASP00-FTIME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ASP00-FTIME.
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_ASP00_STR,
MANDT TYPE STRING,
FCODE TYPE STRING,
WSNAM TYPE STRING,
WSSEL TYPE STRING,
MATNR TYPE STRING,
WERKS TYPE STRING,
WESEL TYPE STRING,
CBEDA TYPE STRING,
CBETI TYPE STRING,
CENDA TYPE STRING,
CENTI TYPE STRING,
CBEGI TYPE STRING,
CDURA TYPE STRING,
COSEL TYPE STRING,
PLANP TYPE STRING,
PPDES TYPE STRING,
PPERI TYPE STRING,
PDURA TYPE STRING,
PAUTO TYPE STRING,
VISUP TYPE STRING,
CROWN TYPE STRING,
JCHAR TYPE STRING,
PLNUM TYPE STRING,
KDAUF TYPE STRING,
KDPOS TYPE STRING,
KDEIN TYPE STRING,
KUNNR TYPE STRING,
NAME1 TYPE STRING,
ORT01 TYPE STRING,
CO1UN TYPE STRING,
CO2UN TYPE STRING,
ABSZI TYPE STRING,
CHGTX TYPE STRING,
LGTTE TYPE STRING,
LGTCO TYPE STRING,
MPFTX TYPE STRING,
MVFTX TYPE STRING,
RPLV1 TYPE STRING,
RPLV2 TYPE STRING,
RPLV3 TYPE STRING,
RPLV4 TYPE STRING,
RINF1 TYPE STRING,
RINF2 TYPE STRING,
RINF3 TYPE STRING,
RJVW1 TYPE STRING,
RJVW2 TYPE STRING,
RTPP1 TYPE STRING,
RTPP2 TYPE STRING,
RTPP3 TYPE STRING,
RTPP4 TYPE STRING,
RBLV1 TYPE STRING,
RBLV2 TYPE STRING,
SPROC TYPE STRING,
FTIME TYPE STRING,
DDEVI TYPE STRING,
STODA TYPE STRING,
LVDAT TYPE STRING,
LVTIM TYPE STRING,
LVSTP TYPE STRING,
CHTXT TYPE STRING,
RPLV5 TYPE STRING,
RTPP5 TYPE STRING,
SPZOOM TYPE STRING,
PERIS TYPE STRING,
PERIT TYPE STRING,
PERIK TYPE STRING,
DURAS TYPE STRING,
DURAT TYPE STRING,
PPCAL TYPE STRING,
PAUTO_ON TYPE STRING,
PAUTO_OFF TYPE STRING,
PER_FIRM TYPE STRING,
PER_CALC TYPE STRING,
MPDAT TYPE STRING,
SPGRP TYPE STRING,
DISTR TYPE STRING,
CLOAD TYPE STRING,
ANAME TYPE STRING,
DESCR TYPE STRING,END OF T_EKKO_STR. DATA: WA_ASP00_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_ASP00_STR-MANDT sy-vline
WA_ASP00_STR-FCODE sy-vline
WA_ASP00_STR-WSNAM sy-vline
WA_ASP00_STR-WSSEL sy-vline
WA_ASP00_STR-MATNR sy-vline
WA_ASP00_STR-WERKS sy-vline
WA_ASP00_STR-WESEL sy-vline
WA_ASP00_STR-CBEDA sy-vline
WA_ASP00_STR-CBETI sy-vline
WA_ASP00_STR-CENDA sy-vline
WA_ASP00_STR-CENTI sy-vline
WA_ASP00_STR-CBEGI sy-vline
WA_ASP00_STR-CDURA sy-vline
WA_ASP00_STR-COSEL sy-vline
WA_ASP00_STR-PLANP sy-vline
WA_ASP00_STR-PPDES sy-vline
WA_ASP00_STR-PPERI sy-vline
WA_ASP00_STR-PDURA sy-vline
WA_ASP00_STR-PAUTO sy-vline
WA_ASP00_STR-VISUP sy-vline
WA_ASP00_STR-CROWN sy-vline
WA_ASP00_STR-JCHAR sy-vline
WA_ASP00_STR-PLNUM sy-vline
WA_ASP00_STR-KDAUF sy-vline
WA_ASP00_STR-KDPOS sy-vline
WA_ASP00_STR-KDEIN sy-vline
WA_ASP00_STR-KUNNR sy-vline
WA_ASP00_STR-NAME1 sy-vline
WA_ASP00_STR-ORT01 sy-vline
WA_ASP00_STR-CO1UN sy-vline
WA_ASP00_STR-CO2UN sy-vline
WA_ASP00_STR-ABSZI sy-vline
WA_ASP00_STR-CHGTX sy-vline
WA_ASP00_STR-LGTTE sy-vline
WA_ASP00_STR-LGTCO sy-vline
WA_ASP00_STR-MPFTX sy-vline
WA_ASP00_STR-MVFTX sy-vline
WA_ASP00_STR-RPLV1 sy-vline
WA_ASP00_STR-RPLV2 sy-vline
WA_ASP00_STR-RPLV3 sy-vline
WA_ASP00_STR-RPLV4 sy-vline
WA_ASP00_STR-RINF1 sy-vline
WA_ASP00_STR-RINF2 sy-vline
WA_ASP00_STR-RINF3 sy-vline
WA_ASP00_STR-RJVW1 sy-vline
WA_ASP00_STR-RJVW2 sy-vline
WA_ASP00_STR-RTPP1 sy-vline
WA_ASP00_STR-RTPP2 sy-vline
WA_ASP00_STR-RTPP3 sy-vline
WA_ASP00_STR-RTPP4 sy-vline
WA_ASP00_STR-RBLV1 sy-vline
WA_ASP00_STR-RBLV2 sy-vline
WA_ASP00_STR-SPROC sy-vline
WA_ASP00_STR-FTIME sy-vline
WA_ASP00_STR-DDEVI sy-vline
WA_ASP00_STR-STODA sy-vline
WA_ASP00_STR-LVDAT sy-vline
WA_ASP00_STR-LVTIM sy-vline
WA_ASP00_STR-LVSTP sy-vline
WA_ASP00_STR-CHTXT sy-vline
WA_ASP00_STR-RPLV5 sy-vline
WA_ASP00_STR-RTPP5 sy-vline
WA_ASP00_STR-SPZOOM sy-vline
WA_ASP00_STR-PERIS sy-vline
WA_ASP00_STR-PERIT sy-vline
WA_ASP00_STR-PERIK sy-vline
WA_ASP00_STR-DURAS sy-vline
WA_ASP00_STR-DURAT sy-vline
WA_ASP00_STR-PPCAL sy-vline
WA_ASP00_STR-PAUTO_ON sy-vline
WA_ASP00_STR-PAUTO_OFF sy-vline
WA_ASP00_STR-PER_FIRM sy-vline
WA_ASP00_STR-PER_CALC sy-vline
WA_ASP00_STR-MPDAT sy-vline
WA_ASP00_STR-SPGRP sy-vline
WA_ASP00_STR-DISTR sy-vline
WA_ASP00_STR-CLOAD sy-vline
WA_ASP00_STR-ANAME sy-vline
WA_ASP00_STR-DESCR sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.