ABAP Select data from SAP table TE271 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 TE271 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 TE271. 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 TE271 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_TE271 TYPE STANDARD TABLE OF TE271,
      WA_TE271 TYPE TE271,
      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: <TE271> TYPE TE271.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM TE271
*  INTO TABLE @DATA(IT_TE2712).
*--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_TE271 INDEX 1 INTO DATA(WA_TE2712).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_TE271 ASSIGNING <TE271>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<TE271>-MANDT = 1.
<TE271>-LOS = 1.
<TE271>-LOSEXT = 1.
<TE271>-LOSERST = 1.
<TE271>-LOSOK = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_TE271-LOSFAELL, sy-vline,
WA_TE271-SPARTE, sy-vline,
WA_TE271-BGLKZ, sy-vline,
WA_TE271-STARTZ1, sy-vline,
WA_TE271-LOSLAG, sy-vline,
WA_TE271-LOSANZG, sy-vline.
ENDLOOP. *Add any further fields from structure WA_TE271 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_TE271 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_TE271 INTO WA_TE271. *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_TE271-LOS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TE271-LOS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field DEST_LOT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_TE271-DEST_LOT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_TE271-DEST_LOT.
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_TE271_STR,
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,END OF T_EKKO_STR. DATA: WA_TE271_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_TE271_STR-MANDT sy-vline
WA_TE271_STR-LOS sy-vline
WA_TE271_STR-LOSEXT sy-vline
WA_TE271_STR-LOSERST sy-vline
WA_TE271_STR-LOSOK sy-vline
WA_TE271_STR-LOSFAELL sy-vline
WA_TE271_STR-SPARTE sy-vline
WA_TE271_STR-BGLKZ sy-vline
WA_TE271_STR-STARTZ1 sy-vline
WA_TE271_STR-LOSLAG sy-vline
WA_TE271_STR-LOSANZG sy-vline
WA_TE271_STR-LOSDAT sy-vline
WA_TE271_STR-STARTD1 sy-vline
WA_TE271_STR-LOSAMT sy-vline
WA_TE271_STR-STARTZ2 sy-vline
WA_TE271_STR-STARTD2 sy-vline
WA_TE271_STR-LAGERINC1 sy-vline
WA_TE271_STR-LAGERINC2 sy-vline
WA_TE271_STR-LOSZUMD sy-vline
WA_TE271_STR-LOSAUFD sy-vline
WA_TE271_STR-LOSAUFJ sy-vline
WA_TE271_STR-VERFAHREN sy-vline
WA_TE271_STR-EMESSWERK sy-vline
WA_TE271_STR-LOSAUFN sy-vline
WA_TE271_STR-ERDAT sy-vline
WA_TE271_STR-ERNAM sy-vline
WA_TE271_STR-AEDAT sy-vline
WA_TE271_STR-AENAM sy-vline
WA_TE271_STR-BEGRU sy-vline
WA_TE271_STR-LOEVM sy-vline
WA_TE271_STR-KZ_LOT_CNT_PROZ sy-vline
WA_TE271_STR-PRUEFANZ_PERC_P1 sy-vline
WA_TE271_STR-PRUEFANZ_PERC_R1 sy-vline
WA_TE271_STR-PRUEFANZ_PERC_P2 sy-vline
WA_TE271_STR-PRUEFANZ_PERC_R2 sy-vline
WA_TE271_STR-DEST_LOT sy-vline
WA_TE271_STR-LOT_MERGE_COMPL sy-vline
WA_TE271_STR-SAMPLE_TYPE sy-vline
WA_TE271_STR-STARTD3 sy-vline
WA_TE271_STR-STARTD4 sy-vline
WA_TE271_STR-STARTD5 sy-vline
WA_TE271_STR-SEED1 sy-vline
WA_TE271_STR-SEED2 sy-vline
WA_TE271_STR-SEED3 sy-vline
WA_TE271_STR-SEED4 sy-vline
WA_TE271_STR-SEED5 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.