ABAP Select data from SAP table AM60X 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 AM60X 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 AM60X. 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 AM60X 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_AM60X TYPE STANDARD TABLE OF AM60X,
      WA_AM60X TYPE AM60X,
      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: <AM60X> TYPE AM60X.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM AM60X
*  INTO TABLE @DATA(IT_AM60X2).
*--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_AM60X INDEX 1 INTO DATA(WA_AM60X2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_AM60X ASSIGNING <AM60X>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<AM60X>-MAFID = 1.
<AM60X>-MANDT = 1.
<AM60X>-XCODE = 1.
<AM60X>-H_DATUM = 1.
<AM60X>-H_ENTLI = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_AM60X-ENTLI, sy-vline,
WA_AM60X-ENTLU, sy-vline,
WA_AM60X-GKDAY, sy-vline,
WA_AM60X-SGDAY, sy-vline,
WA_AM60X-FKDAY, sy-vline,
WA_AM60X-SFDAY, sy-vline.
ENDLOOP. *Add any further fields from structure WA_AM60X 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_AM60X 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_AM60X INTO WA_AM60X. *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_AM60X-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_AM60X-MATNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit MATN1, internal->external for field PRGRP CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_AM60X-PRGRP IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_AM60X-PRGRP.
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_AM60X_STR,
MAFID TYPE STRING,
MANDT TYPE STRING,
XCODE TYPE STRING,
H_DATUM TYPE STRING,
H_ENTLI TYPE STRING,
ENTLI TYPE STRING,
ENTLU TYPE STRING,
GKDAY TYPE STRING,
SGDAY TYPE STRING,
FKDAY TYPE STRING,
SFDAY TYPE STRING,
FKDIF TYPE STRING,
FWEEK TYPE STRING,
SWEEK TYPE STRING,
MNG01 TYPE STRING,
MNG02 TYPE STRING,
MNG03 TYPE STRING,
WUMNG TYPE STRING,
ANDEC TYPE STRING,
REF01 TYPE STRING,
REF02 TYPE STRING,
ALINE TYPE STRING,
VLINE TYPE STRING,
BLINE TYPE STRING,
MLINE TYPE STRING,
DNAME TYPE STRING,
FNAME TYPE STRING,
ANZLM TYPE STRING,
FLG01 TYPE STRING,
FLG02 TYPE STRING,
FLG03 TYPE STRING,
FLG04 TYPE STRING,
MATNR TYPE STRING,
WERKS TYPE STRING,
PBDNR TYPE STRING,
PBNNR TYPE STRING,
MDKEY TYPE STRING,
MDMAT TYPE STRING,
MNMAT TYPE STRING,
TXZ01 TYPE STRING,
MDWRK TYPE STRING,
ANFMASKE TYPE STRING,
ENDMASKE TYPE STRING,
KMASKE TYPE STRING,
AUSWAHL TYPE STRING,
AUSWAHL0 TYPE STRING,
AUSWAHL1 TYPE STRING,
AUSWAHL2 TYPE STRING,
AUSWAHL3 TYPE STRING,
AUSWAHL4 TYPE STRING,
AUSWAHL5 TYPE STRING,
TITLE TYPE STRING,
TITCUA TYPE STRING,
ZEILE_LEER TYPE STRING,
FABKL TYPE STRING,
DATUM TYPE STRING,
PERIO TYPE STRING,
H_PERV TYPE STRING,
H_PERB TYPE STRING,
PERET TYPE STRING,
DATUVE TYPE STRING,
DATUBE TYPE STRING,
H_ENTLU TYPE STRING,
FLP01 TYPE STRING,
FLP02 TYPE STRING,
FLP03 TYPE STRING,
FLP04 TYPE STRING,
FLP05 TYPE STRING,
DATUVI TYPE STRING,
DATUBI TYPE STRING,
WERT TYPE STRING,
WERTG TYPE STRING,
WERTA TYPE STRING,
PREIS TYPE STRING,
PBET_SEKZ TYPE STRING,
PLGMG TYPE STRING,
MEINS TYPE STRING,
PLNMG TYPE STRING,
AENAM TYPE STRING,
LAEDA TYPE STRING,
VERSB TYPE STRING,
VERVS TYPE STRING,
VRHKZ TYPE STRING,
HIZKZ TYPE STRING,
BEDPP TYPE STRING,
SELET TYPE STRING,
KEINE TYPE STRING,
GESMT TYPE STRING,
REFPG TYPE STRING,
TXTF1 TYPE STRING,
TXTF2 TYPE STRING,
PRGRP TYPE STRING,
APROG TYPE STRING,
DTAEN TYPE STRING,
PERIOB TYPE STRING,
BEDAR TYPE STRING,
PBCOP TYPE STRING,
URCOP TYPE STRING,
PGCOP TYPE STRING,
PGUEB TYPE STRING,
MAUEB TYPE STRING,
PBINF TYPE STRING,
PBSIM TYPE STRING,
USTR1 TYPE STRING,
USTR2 TYPE STRING,
USTR3 TYPE STRING,
USTR4 TYPE STRING,
PGMD5 TYPE STRING,
BEDAE TYPE STRING,
BEDAW TYPE STRING,
BEDAL TYPE STRING,
VERAW TYPE STRING,
VERAK TYPE STRING,
VERAI TYPE STRING,
ETLOE TYPE STRING,
CAUSE TYPE STRING,
DISPO TYPE STRING,
HISKZ TYPE STRING,
FLG05 TYPE STRING,
DATVI TYPE STRING,
DATBI TYPE STRING,
VERMT TYPE STRING,
MATAW TYPE STRING,
PBDAW TYPE STRING,
PGRAW TYPE STRING,
POSAW TYPE STRING,
DISAW TYPE STRING,
PEINH TYPE STRING,
NAME0 TYPE STRING,
NAME1 TYPE STRING,
NAME2 TYPE STRING,
NAME3 TYPE STRING,
NAME4 TYPE STRING,
NAME5 TYPE STRING,
NAME6 TYPE STRING,
NAME7 TYPE STRING,
NAME8 TYPE STRING,
NAME9 TYPE STRING,
BERID TYPE STRING,
PBDNR_EXT TYPE STRING,
PBDAW_EXT TYPE STRING,
SGT_RCAT TYPE STRING,END OF T_EKKO_STR. DATA: WA_AM60X_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_AM60X_STR-MAFID sy-vline
WA_AM60X_STR-MANDT sy-vline
WA_AM60X_STR-XCODE sy-vline
WA_AM60X_STR-H_DATUM sy-vline
WA_AM60X_STR-H_ENTLI sy-vline
WA_AM60X_STR-ENTLI sy-vline
WA_AM60X_STR-ENTLU sy-vline
WA_AM60X_STR-GKDAY sy-vline
WA_AM60X_STR-SGDAY sy-vline
WA_AM60X_STR-FKDAY sy-vline
WA_AM60X_STR-SFDAY sy-vline
WA_AM60X_STR-FKDIF sy-vline
WA_AM60X_STR-FWEEK sy-vline
WA_AM60X_STR-SWEEK sy-vline
WA_AM60X_STR-MNG01 sy-vline
WA_AM60X_STR-MNG02 sy-vline
WA_AM60X_STR-MNG03 sy-vline
WA_AM60X_STR-WUMNG sy-vline
WA_AM60X_STR-ANDEC sy-vline
WA_AM60X_STR-REF01 sy-vline
WA_AM60X_STR-REF02 sy-vline
WA_AM60X_STR-ALINE sy-vline
WA_AM60X_STR-VLINE sy-vline
WA_AM60X_STR-BLINE sy-vline
WA_AM60X_STR-MLINE sy-vline
WA_AM60X_STR-DNAME sy-vline
WA_AM60X_STR-FNAME sy-vline
WA_AM60X_STR-ANZLM sy-vline
WA_AM60X_STR-FLG01 sy-vline
WA_AM60X_STR-FLG02 sy-vline
WA_AM60X_STR-FLG03 sy-vline
WA_AM60X_STR-FLG04 sy-vline
WA_AM60X_STR-MATNR sy-vline
WA_AM60X_STR-WERKS sy-vline
WA_AM60X_STR-PBDNR sy-vline
WA_AM60X_STR-PBNNR sy-vline
WA_AM60X_STR-MDKEY sy-vline
WA_AM60X_STR-MDMAT sy-vline
WA_AM60X_STR-MNMAT sy-vline
WA_AM60X_STR-TXZ01 sy-vline
WA_AM60X_STR-MDWRK sy-vline
WA_AM60X_STR-ANFMASKE sy-vline
WA_AM60X_STR-ENDMASKE sy-vline
WA_AM60X_STR-KMASKE sy-vline
WA_AM60X_STR-AUSWAHL sy-vline
WA_AM60X_STR-AUSWAHL0 sy-vline
WA_AM60X_STR-AUSWAHL1 sy-vline
WA_AM60X_STR-AUSWAHL2 sy-vline
WA_AM60X_STR-AUSWAHL3 sy-vline
WA_AM60X_STR-AUSWAHL4 sy-vline
WA_AM60X_STR-AUSWAHL5 sy-vline
WA_AM60X_STR-TITLE sy-vline
WA_AM60X_STR-TITCUA sy-vline
WA_AM60X_STR-ZEILE_LEER sy-vline
WA_AM60X_STR-FABKL sy-vline
WA_AM60X_STR-DATUM sy-vline
WA_AM60X_STR-PERIO sy-vline
WA_AM60X_STR-H_PERV sy-vline
WA_AM60X_STR-H_PERB sy-vline
WA_AM60X_STR-PERET sy-vline
WA_AM60X_STR-DATUVE sy-vline
WA_AM60X_STR-DATUBE sy-vline
WA_AM60X_STR-H_ENTLU sy-vline
WA_AM60X_STR-FLP01 sy-vline
WA_AM60X_STR-FLP02 sy-vline
WA_AM60X_STR-FLP03 sy-vline
WA_AM60X_STR-FLP04 sy-vline
WA_AM60X_STR-FLP05 sy-vline
WA_AM60X_STR-DATUVI sy-vline
WA_AM60X_STR-DATUBI sy-vline
WA_AM60X_STR-WERT sy-vline
WA_AM60X_STR-WERTG sy-vline
WA_AM60X_STR-WERTA sy-vline
WA_AM60X_STR-PREIS sy-vline
WA_AM60X_STR-PBET_SEKZ sy-vline
WA_AM60X_STR-PLGMG sy-vline
WA_AM60X_STR-MEINS sy-vline
WA_AM60X_STR-PLNMG sy-vline
WA_AM60X_STR-AENAM sy-vline
WA_AM60X_STR-LAEDA sy-vline
WA_AM60X_STR-VERSB sy-vline
WA_AM60X_STR-VERVS sy-vline
WA_AM60X_STR-VRHKZ sy-vline
WA_AM60X_STR-HIZKZ sy-vline
WA_AM60X_STR-BEDPP sy-vline
WA_AM60X_STR-SELET sy-vline
WA_AM60X_STR-KEINE sy-vline
WA_AM60X_STR-GESMT sy-vline
WA_AM60X_STR-REFPG sy-vline
WA_AM60X_STR-TXTF1 sy-vline
WA_AM60X_STR-TXTF2 sy-vline
WA_AM60X_STR-PRGRP sy-vline
WA_AM60X_STR-APROG sy-vline
WA_AM60X_STR-DTAEN sy-vline
WA_AM60X_STR-PERIOB sy-vline
WA_AM60X_STR-BEDAR sy-vline
WA_AM60X_STR-PBCOP sy-vline
WA_AM60X_STR-URCOP sy-vline
WA_AM60X_STR-PGCOP sy-vline
WA_AM60X_STR-PGUEB sy-vline
WA_AM60X_STR-MAUEB sy-vline
WA_AM60X_STR-PBINF sy-vline
WA_AM60X_STR-PBSIM sy-vline
WA_AM60X_STR-USTR1 sy-vline
WA_AM60X_STR-USTR2 sy-vline
WA_AM60X_STR-USTR3 sy-vline
WA_AM60X_STR-USTR4 sy-vline
WA_AM60X_STR-PGMD5 sy-vline
WA_AM60X_STR-BEDAE sy-vline
WA_AM60X_STR-BEDAW sy-vline
WA_AM60X_STR-BEDAL sy-vline
WA_AM60X_STR-VERAW sy-vline
WA_AM60X_STR-VERAK sy-vline
WA_AM60X_STR-VERAI sy-vline
WA_AM60X_STR-ETLOE sy-vline
WA_AM60X_STR-CAUSE sy-vline
WA_AM60X_STR-DISPO sy-vline
WA_AM60X_STR-HISKZ sy-vline
WA_AM60X_STR-FLG05 sy-vline
WA_AM60X_STR-DATVI sy-vline
WA_AM60X_STR-DATBI sy-vline
WA_AM60X_STR-VERMT sy-vline
WA_AM60X_STR-MATAW sy-vline
WA_AM60X_STR-PBDAW sy-vline
WA_AM60X_STR-PGRAW sy-vline
WA_AM60X_STR-POSAW sy-vline
WA_AM60X_STR-DISAW sy-vline
WA_AM60X_STR-PEINH sy-vline
WA_AM60X_STR-NAME0 sy-vline
WA_AM60X_STR-NAME1 sy-vline
WA_AM60X_STR-NAME2 sy-vline
WA_AM60X_STR-NAME3 sy-vline
WA_AM60X_STR-NAME4 sy-vline
WA_AM60X_STR-NAME5 sy-vline
WA_AM60X_STR-NAME6 sy-vline
WA_AM60X_STR-NAME7 sy-vline
WA_AM60X_STR-NAME8 sy-vline
WA_AM60X_STR-NAME9 sy-vline
WA_AM60X_STR-BERID sy-vline
WA_AM60X_STR-PBDNR_EXT sy-vline
WA_AM60X_STR-PBDAW_EXT sy-vline
WA_AM60X_STR-SGT_RCAT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.