ABAP Select data from SAP table EDM_INFOORD 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 EDM_INFOORD 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 EDM_INFOORD. 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 EDM_INFOORD 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_EDM_INFOORD TYPE STANDARD TABLE OF EDM_INFOORD,
      WA_EDM_INFOORD TYPE EDM_INFOORD,
      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: <EDM_INFOORD> TYPE EDM_INFOORD.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM EDM_INFOORD
*  INTO TABLE @DATA(IT_EDM_INFOORD2).
*--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_EDM_INFOORD INDEX 1 INTO DATA(WA_EDM_INFOORD2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_EDM_INFOORD ASSIGNING <EDM_INFOORD>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<EDM_INFOORD>-DOCNUM = 1.
<EDM_INFOORD>-P01_POSEX = 1.
<EDM_INFOORD>-P01_MENGE = 1.
<EDM_INFOORD>-P01_MENEE = 1.
<EDM_INFOORD>-P01_PMENE = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_EDM_INFOORD-P01_VPREI, sy-vline,
WA_EDM_INFOORD-P01_PEINH, sy-vline,
WA_EDM_INFOORD-P01_NETWR, sy-vline,
WA_EDM_INFOORD-P01_CURCY, sy-vline,
WA_EDM_INFOORD-P01_UEPOS, sy-vline,
WA_EDM_INFOORD-P01_ABGRU, sy-vline.
ENDLOOP. *Add any further fields from structure WA_EDM_INFOORD 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_EDM_INFOORD 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_EDM_INFOORD INTO WA_EDM_INFOORD. *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 PA1_PARTN_WE CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_EDM_INFOORD-PA1_PARTN_WE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_EDM_INFOORD-PA1_PARTN_WE.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit EAN11, internal->external for field P19_IDTNR_003 CALL FUNCTION 'CONVERSION_EXIT_EAN11_OUTPUT' EXPORTING input = WA_EDM_INFOORD-P19_IDTNR_003 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_EDM_INFOORD-P19_IDTNR_003.
WRITE:/ 'New Value:', ld_input.

*Conversion exit MATN1, internal->external for field P19_IDTNR_017 CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_EDM_INFOORD-P19_IDTNR_017 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_EDM_INFOORD-P19_IDTNR_017.
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_EDM_INFOORD_STR,
DOCNUM TYPE STRING,
P01_POSEX TYPE STRING,
P01_MENGE TYPE STRING,
P01_MENEE TYPE STRING,
P01_PMENE TYPE STRING,
P01_VPREI TYPE STRING,
P01_PEINH TYPE STRING,
P01_NETWR TYPE STRING,
P01_CURCY TYPE STRING,
P01_UEPOS TYPE STRING,
P01_ABGRU TYPE STRING,
P01_ANTLF TYPE STRING,
P01_PSTYV TYPE STRING,
P01_EMPST TYPE STRING,
P01_ABTNR TYPE STRING,
P01_ABRVW TYPE STRING,
P01_LPRIO TYPE STRING,
P01_ROUTE TYPE STRING,
P01_LGORT TYPE STRING,
P01_VSTEL TYPE STRING,
P01_DELCO TYPE STRING,
P01_VALTG TYPE STRING,
P01_WERKS TYPE STRING,
P01_PREIS TYPE STRING,
P01_GEWEI TYPE STRING,
P01_BRGEW TYPE STRING,
P01_NTGEW TYPE STRING,
P02_BELNR_044 TYPE STRING,
P02_BELNR_052 TYPE STRING,
P02_ZEILE TYPE STRING,
P02_DATUM TYPE STRING,
P02_BSARK TYPE STRING,
P02_IHREZ TYPE STRING,
P03_IDDAT_002 TYPE STRING,
PA1_PARTN_WE TYPE STRING,
PA1_ABLAD TYPE STRING,
P17_LKOND_001 TYPE STRING,
P17_LKOND_002 TYPE STRING,
P19_IDTNR_001 TYPE STRING,
P19_KTEXT_001 TYPE STRING,
P19_IDTNR_002 TYPE STRING,
P19_KTEXT_002 TYPE STRING,
P19_IDTNR_003 TYPE STRING,
P19_KTEXT_003 TYPE STRING,
P19_IDTNR_010 TYPE STRING,
P19_IDTNR_014 TYPE STRING,
P19_IDTNR_017 TYPE STRING,END OF T_EKKO_STR. DATA: WA_EDM_INFOORD_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_EDM_INFOORD_STR-DOCNUM sy-vline
WA_EDM_INFOORD_STR-P01_POSEX sy-vline
WA_EDM_INFOORD_STR-P01_MENGE sy-vline
WA_EDM_INFOORD_STR-P01_MENEE sy-vline
WA_EDM_INFOORD_STR-P01_PMENE sy-vline
WA_EDM_INFOORD_STR-P01_VPREI sy-vline
WA_EDM_INFOORD_STR-P01_PEINH sy-vline
WA_EDM_INFOORD_STR-P01_NETWR sy-vline
WA_EDM_INFOORD_STR-P01_CURCY sy-vline
WA_EDM_INFOORD_STR-P01_UEPOS sy-vline
WA_EDM_INFOORD_STR-P01_ABGRU sy-vline
WA_EDM_INFOORD_STR-P01_ANTLF sy-vline
WA_EDM_INFOORD_STR-P01_PSTYV sy-vline
WA_EDM_INFOORD_STR-P01_EMPST sy-vline
WA_EDM_INFOORD_STR-P01_ABTNR sy-vline
WA_EDM_INFOORD_STR-P01_ABRVW sy-vline
WA_EDM_INFOORD_STR-P01_LPRIO sy-vline
WA_EDM_INFOORD_STR-P01_ROUTE sy-vline
WA_EDM_INFOORD_STR-P01_LGORT sy-vline
WA_EDM_INFOORD_STR-P01_VSTEL sy-vline
WA_EDM_INFOORD_STR-P01_DELCO sy-vline
WA_EDM_INFOORD_STR-P01_VALTG sy-vline
WA_EDM_INFOORD_STR-P01_WERKS sy-vline
WA_EDM_INFOORD_STR-P01_PREIS sy-vline
WA_EDM_INFOORD_STR-P01_GEWEI sy-vline
WA_EDM_INFOORD_STR-P01_BRGEW sy-vline
WA_EDM_INFOORD_STR-P01_NTGEW sy-vline
WA_EDM_INFOORD_STR-P02_BELNR_044 sy-vline
WA_EDM_INFOORD_STR-P02_BELNR_052 sy-vline
WA_EDM_INFOORD_STR-P02_ZEILE sy-vline
WA_EDM_INFOORD_STR-P02_DATUM sy-vline
WA_EDM_INFOORD_STR-P02_BSARK sy-vline
WA_EDM_INFOORD_STR-P02_IHREZ sy-vline
WA_EDM_INFOORD_STR-P03_IDDAT_002 sy-vline
WA_EDM_INFOORD_STR-PA1_PARTN_WE sy-vline
WA_EDM_INFOORD_STR-PA1_ABLAD sy-vline
WA_EDM_INFOORD_STR-P17_LKOND_001 sy-vline
WA_EDM_INFOORD_STR-P17_LKOND_002 sy-vline
WA_EDM_INFOORD_STR-P19_IDTNR_001 sy-vline
WA_EDM_INFOORD_STR-P19_KTEXT_001 sy-vline
WA_EDM_INFOORD_STR-P19_IDTNR_002 sy-vline
WA_EDM_INFOORD_STR-P19_KTEXT_002 sy-vline
WA_EDM_INFOORD_STR-P19_IDTNR_003 sy-vline
WA_EDM_INFOORD_STR-P19_KTEXT_003 sy-vline
WA_EDM_INFOORD_STR-P19_IDTNR_010 sy-vline
WA_EDM_INFOORD_STR-P19_IDTNR_014 sy-vline
WA_EDM_INFOORD_STR-P19_IDTNR_017 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.