ABAP Select data from SAP table ELOTD 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 ELOTD 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 ELOTD. 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 ELOTD 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_ELOTD TYPE STANDARD TABLE OF ELOTD,
      WA_ELOTD TYPE ELOTD,
      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: <ELOTD> TYPE ELOTD.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM ELOTD
*  INTO TABLE @DATA(IT_ELOTD2).
*--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_ELOTD INDEX 1 INTO DATA(WA_ELOTD2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_ELOTD ASSIGNING <ELOTD>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<ELOTD>-E_ZZEILE1 = 1.
<ELOTD>-ZSPALTE11 = 1.
<ELOTD>-ZSPALTE12 = 1.
<ELOTD>-ZSPALTE13 = 1.
<ELOTD>-ZSPALTE14 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_ELOTD-ZSPALTE15, sy-vline,
WA_ELOTD-ZSPALTE16, sy-vline,
WA_ELOTD-E_ZZEILE2, sy-vline,
WA_ELOTD-ZSPALTE21, sy-vline,
WA_ELOTD-ZSPALTE22, sy-vline,
WA_ELOTD-ZSPALTE23, sy-vline.
ENDLOOP. *Add any further fields from structure WA_ELOTD 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_ELOTD 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_ELOTD INTO WA_ELOTD. *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 ALPHA, internal->external for field LOS CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_ELOTD-LOS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ELOTD-LOS.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field LOT_TOGETHER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_ELOTD-LOT_TOGETHER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ELOTD-LOT_TOGETHER.
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_ELOTD_STR,
E_ZZEILE1 TYPE STRING,
ZSPALTE11 TYPE STRING,
ZSPALTE12 TYPE STRING,
ZSPALTE13 TYPE STRING,
ZSPALTE14 TYPE STRING,
ZSPALTE15 TYPE STRING,
ZSPALTE16 TYPE STRING,
E_ZZEILE2 TYPE STRING,
ZSPALTE21 TYPE STRING,
ZSPALTE22 TYPE STRING,
ZSPALTE23 TYPE STRING,
ZSPALTE24 TYPE STRING,
ZSPALTE25 TYPE STRING,
ZSPALTE26 TYPE STRING,
TEXT30 TYPE STRING,
LOSOKTXT TYPE STRING,
MANDT TYPE STRING,
LOS TYPE STRING,
LOSEXT TYPE STRING,
LOSERST TYPE STRING,
LOSOK TYPE STRING,
LOSFAELL TYPE STRING,
SPARTE TYPE STRING,
BGLKZ TYPE STRING,
STARTZ1 TYPE STRING,
LOSLAG TYPE STRING,
LOSANZG TYPE STRING,
LOSDAT TYPE STRING,
STARTD1 TYPE STRING,
LOSAMT TYPE STRING,
STARTZ2 TYPE STRING,
STARTD2 TYPE STRING,
LAGERINC1 TYPE STRING,
LAGERINC2 TYPE STRING,
LOSZUMD TYPE STRING,
LOSAUFD TYPE STRING,
LOSAUFJ TYPE STRING,
VERFAHREN TYPE STRING,
EMESSWERK TYPE STRING,
LOSAUFN TYPE STRING,
ERDAT TYPE STRING,
ERNAM TYPE STRING,
AEDAT TYPE STRING,
AENAM TYPE STRING,
BEGRU TYPE STRING,
LOEVM TYPE STRING,
KZ_LOT_CNT_PROZ TYPE STRING,
PRUEFANZ_PERC_P1 TYPE STRING,
PRUEFANZ_PERC_R1 TYPE STRING,
PRUEFANZ_PERC_P2 TYPE STRING,
PRUEFANZ_PERC_R2 TYPE STRING,
DEST_LOT TYPE STRING,
LOT_MERGE_COMPL TYPE STRING,
SAMPLE_TYPE TYPE STRING,
STARTD3 TYPE STRING,
STARTD4 TYPE STRING,
STARTD5 TYPE STRING,
SEED1 TYPE STRING,
SEED2 TYPE STRING,
SEED3 TYPE STRING,
SEED4 TYPE STRING,
SEED5 TYPE STRING,
LOT_TOGETHER TYPE STRING,END OF T_EKKO_STR. DATA: WA_ELOTD_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_ELOTD_STR-E_ZZEILE1 sy-vline
WA_ELOTD_STR-ZSPALTE11 sy-vline
WA_ELOTD_STR-ZSPALTE12 sy-vline
WA_ELOTD_STR-ZSPALTE13 sy-vline
WA_ELOTD_STR-ZSPALTE14 sy-vline
WA_ELOTD_STR-ZSPALTE15 sy-vline
WA_ELOTD_STR-ZSPALTE16 sy-vline
WA_ELOTD_STR-E_ZZEILE2 sy-vline
WA_ELOTD_STR-ZSPALTE21 sy-vline
WA_ELOTD_STR-ZSPALTE22 sy-vline
WA_ELOTD_STR-ZSPALTE23 sy-vline
WA_ELOTD_STR-ZSPALTE24 sy-vline
WA_ELOTD_STR-ZSPALTE25 sy-vline
WA_ELOTD_STR-ZSPALTE26 sy-vline
WA_ELOTD_STR-TEXT30 sy-vline
WA_ELOTD_STR-LOSOKTXT sy-vline
WA_ELOTD_STR-MANDT sy-vline
WA_ELOTD_STR-LOS sy-vline
WA_ELOTD_STR-LOSEXT sy-vline
WA_ELOTD_STR-LOSERST sy-vline
WA_ELOTD_STR-LOSOK sy-vline
WA_ELOTD_STR-LOSFAELL sy-vline
WA_ELOTD_STR-SPARTE sy-vline
WA_ELOTD_STR-BGLKZ sy-vline
WA_ELOTD_STR-STARTZ1 sy-vline
WA_ELOTD_STR-LOSLAG sy-vline
WA_ELOTD_STR-LOSANZG sy-vline
WA_ELOTD_STR-LOSDAT sy-vline
WA_ELOTD_STR-STARTD1 sy-vline
WA_ELOTD_STR-LOSAMT sy-vline
WA_ELOTD_STR-STARTZ2 sy-vline
WA_ELOTD_STR-STARTD2 sy-vline
WA_ELOTD_STR-LAGERINC1 sy-vline
WA_ELOTD_STR-LAGERINC2 sy-vline
WA_ELOTD_STR-LOSZUMD sy-vline
WA_ELOTD_STR-LOSAUFD sy-vline
WA_ELOTD_STR-LOSAUFJ sy-vline
WA_ELOTD_STR-VERFAHREN sy-vline
WA_ELOTD_STR-EMESSWERK sy-vline
WA_ELOTD_STR-LOSAUFN sy-vline
WA_ELOTD_STR-ERDAT sy-vline
WA_ELOTD_STR-ERNAM sy-vline
WA_ELOTD_STR-AEDAT sy-vline
WA_ELOTD_STR-AENAM sy-vline
WA_ELOTD_STR-BEGRU sy-vline
WA_ELOTD_STR-LOEVM sy-vline
WA_ELOTD_STR-KZ_LOT_CNT_PROZ sy-vline
WA_ELOTD_STR-PRUEFANZ_PERC_P1 sy-vline
WA_ELOTD_STR-PRUEFANZ_PERC_R1 sy-vline
WA_ELOTD_STR-PRUEFANZ_PERC_P2 sy-vline
WA_ELOTD_STR-PRUEFANZ_PERC_R2 sy-vline
WA_ELOTD_STR-DEST_LOT sy-vline
WA_ELOTD_STR-LOT_MERGE_COMPL sy-vline
WA_ELOTD_STR-SAMPLE_TYPE sy-vline
WA_ELOTD_STR-STARTD3 sy-vline
WA_ELOTD_STR-STARTD4 sy-vline
WA_ELOTD_STR-STARTD5 sy-vline
WA_ELOTD_STR-SEED1 sy-vline
WA_ELOTD_STR-SEED2 sy-vline
WA_ELOTD_STR-SEED3 sy-vline
WA_ELOTD_STR-SEED4 sy-vline
WA_ELOTD_STR-SEED5 sy-vline
WA_ELOTD_STR-LOT_TOGETHER sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.