ABAP Select data from SAP table RELA_DI 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 RELA_DI 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 RELA_DI. 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 RELA_DI 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_RELA_DI TYPE STANDARD TABLE OF RELA_DI,
      WA_RELA_DI TYPE RELA_DI,
      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: <RELA_DI> TYPE RELA_DI.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RELA_DI
*  INTO TABLE @DATA(IT_RELA_DI2).
*--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_RELA_DI INDEX 1 INTO DATA(WA_RELA_DI2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RELA_DI ASSIGNING <RELA_DI>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RELA_DI>-AKTYP = 1.
<RELA_DI>-RLTP1 = 1.
<RELA_DI>-RLTP2 = 1.
<RELA_DI>-RLTP3 = 1.
<RELA_DI>-RLTP4 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RELA_DI-RLTP5, sy-vline,
WA_RELA_DI-RLTP6, sy-vline,
WA_RELA_DI-RLTP7, sy-vline,
WA_RELA_DI-RLTP8, sy-vline,
WA_RELA_DI-RLTP9, sy-vline,
WA_RELA_DI-LAND1, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RELA_DI 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_RELA_DI 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_RELA_DI INTO WA_RELA_DI. *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 FLUR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RELA_DI-FLUR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RELA_DI-FLUR.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit SWENR, internal->external for field SWENR_ANLA CALL FUNCTION 'CONVERSION_EXIT_SWENR_OUTPUT' EXPORTING input = WA_RELA_DI-SWENR_ANLA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RELA_DI-SWENR_ANLA.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit SWENR, internal->external for field SWENR_FLAE CALL FUNCTION 'CONVERSION_EXIT_SWENR_OUTPUT' EXPORTING input = WA_RELA_DI-SWENR_FLAE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RELA_DI-SWENR_FLAE.
WRITE:/ 'New Value:', ld_input.

*Conversion exit SWENR, internal->external for field SWENR CALL FUNCTION 'CONVERSION_EXIT_SWENR_OUTPUT' EXPORTING input = WA_RELA_DI-SWENR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RELA_DI-SWENR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit SGENR, internal->external for field SGENR CALL FUNCTION 'CONVERSION_EXIT_SGENR_OUTPUT' EXPORTING input = WA_RELA_DI-SGENR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RELA_DI-SGENR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit SMENR, internal->external for field SMENR CALL FUNCTION 'CONVERSION_EXIT_SMENR_OUTPUT' EXPORTING input = WA_RELA_DI-SMENR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RELA_DI-SMENR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit SGRNR, internal->external for field SGRNR CALL FUNCTION 'CONVERSION_EXIT_SGRNR_OUTPUT' EXPORTING input = WA_RELA_DI-SGRNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RELA_DI-SGRNR.
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_RELA_DI_STR,
AKTYP TYPE STRING,
RLTP1 TYPE STRING,
RLTP2 TYPE STRING,
RLTP3 TYPE STRING,
RLTP4 TYPE STRING,
RLTP5 TYPE STRING,
RLTP6 TYPE STRING,
RLTP7 TYPE STRING,
RLTP8 TYPE STRING,
RLTP9 TYPE STRING,
LAND1 TYPE STRING,
BUNDESLAND TYPE STRING,
GEMARKUNG TYPE STRING,
FLUR TYPE STRING,
FLURSTUECK TYPE STRING,
KREIS TYPE STRING,
GEMEINDE TYPE STRING,
PARTNR_KATAMT TYPE STRING,
GUELTIG_VON_F TYPE STRING,
GUELTIG_BIS TYPE STRING,
GSBER TYPE STRING,
BERGRUPPE TYPE STRING,
BEMERKUNG_KAT TYPE STRING,
INTRENO_KATFL TYPE STRING,
DGULTAB_KATFL TYPE STRING,
FLAECHE_KATFL TYPE STRING,
FEINS_KATFL TYPE STRING,
CHIND_KART TYPE STRING,
INTRENO_KART TYPE STRING,
LFDNR_KART TYPE STRING,
GUELTIG_VON_KART TYPE STRING,
GUELTIG_BIS_KART TYPE STRING,
KARTENART TYPE STRING,
KARTENNUMMER TYPE STRING,
CHIND_EIGENT TYPE STRING,
PARTNR TYPE STRING,
BRUCHT_ZAEHL TYPE STRING,
BRUCHT_NENNER TYPE STRING,
GESAMT_ZAEHL TYPE STRING,
GESAMT_NENNER TYPE STRING,
GUELTIG_VON_EIGENT TYPE STRING,
GUELTIG_BIS_EIGENT TYPE STRING,
GUELTIG_VON_OE TYPE STRING,
CHIND_ADRESS TYPE STRING,
INTRENO_ADRESSEN TYPE STRING,
LFDNR_ADRESSEN TYPE STRING,
OBJNR_ADRESSEN TYPE STRING,
GUELTIG_VON_ADRESSEN TYPE STRING,
GUELTIG_BIS_ADRESSEN TYPE STRING,
REF_EIGENT_ADRESSEN TYPE STRING,
CHIND_ANLAGEN TYPE STRING,
INTRENO_ANLA TYPE STRING,
PARTID_ANLA TYPE STRING,
KENNZEICHEN_ANLA TYPE STRING,
BUKRS_ANLA TYPE STRING,
SWENR_ANLA TYPE STRING,
ANLN1 TYPE STRING,
ANLN2 TYPE STRING,
GUELTIG_VON_ANLA TYPE STRING,
GUELTIG_BIS_ANLA TYPE STRING,
FLAECHE_ANLA TYPE STRING,
EINHEIT_ANLA TYPE STRING,
KANSW_HR TYPE STRING,
KANSW_SB TYPE STRING,
KANSW_KO TYPE STRING,
KANSW_S1 TYPE STRING,
KANSW_S2 TYPE STRING,
WAERS TYPE STRING,
CHIND_EINHW TYPE STRING,
EINHWNR TYPE STRING,
DGULTAB TYPE STRING,
DGULTBIS TYPE STRING,
FLAECHE TYPE STRING,
EINHEIT TYPE STRING,
CHIND_NUTZ TYPE STRING,
INTRENO_NUTZ TYPE STRING,
PARTID_NUTZ TYPE STRING,
KENNZEICHEN_NUTZ TYPE STRING,
LFDNR_NUTZ TYPE STRING,
NUTZUNGSART TYPE STRING,
UNTERNUTZUNGSART TYPE STRING,
FLAECHE_NUTZ TYPE STRING,
EINHEIT_NUTZ TYPE STRING,
BODENKLASSE TYPE STRING,
ZUSTANDSSTUFE TYPE STRING,
BODENART TYPE STRING,
EMZ TYPE STRING,
BETRIEBSNOTW TYPE STRING,
GUELTIG_VON_NUTZ TYPE STRING,
GUELTIG_BIS_NUTZ TYPE STRING,
VNACHWEISNR TYPE STRING,
CHIND_FLAE TYPE STRING,
INTRENO TYPE STRING,
PARTID_FLAE TYPE STRING,
FART TYPE STRING,
LFDNR_FLAE TYPE STRING,
BUKRS_FLAE TYPE STRING,
SWENR_FLAE TYPE STRING,
VERTRAG TYPE STRING,
VERTRAG_ART TYPE STRING,
VERTRAG_VOM TYPE STRING,
WIRT_UEBERGANG TYPE STRING,
VERTRAGSPARTNER TYPE STRING,
BEARBEITER TYPE STRING,
BEMERKUNG TYPE STRING,
FLAECHE_FLAE TYPE STRING,
EINHEIT_FLAE TYPE STRING,
STICHTAG TYPE STRING,
FLAECHE_ART TYPE STRING,
GUELTIG_VON_FLAE TYPE STRING,
GUELTIG_BIS_FLAE TYPE STRING,
CHIND_OBJEKTE TYPE STRING,
GUELTIG_VON_OBJ TYPE STRING,
BUKRS TYPE STRING,
SWENR TYPE STRING,
SGENR TYPE STRING,
SMENR TYPE STRING,
SGRNR TYPE STRING,
FLAECHE_OBJ TYPE STRING,
EINHEIT_OBJ TYPE STRING,
GUELTIG_BIS_OBJ TYPE STRING,END OF T_EKKO_STR. DATA: WA_RELA_DI_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_RELA_DI_STR-AKTYP sy-vline
WA_RELA_DI_STR-RLTP1 sy-vline
WA_RELA_DI_STR-RLTP2 sy-vline
WA_RELA_DI_STR-RLTP3 sy-vline
WA_RELA_DI_STR-RLTP4 sy-vline
WA_RELA_DI_STR-RLTP5 sy-vline
WA_RELA_DI_STR-RLTP6 sy-vline
WA_RELA_DI_STR-RLTP7 sy-vline
WA_RELA_DI_STR-RLTP8 sy-vline
WA_RELA_DI_STR-RLTP9 sy-vline
WA_RELA_DI_STR-LAND1 sy-vline
WA_RELA_DI_STR-BUNDESLAND sy-vline
WA_RELA_DI_STR-GEMARKUNG sy-vline
WA_RELA_DI_STR-FLUR sy-vline
WA_RELA_DI_STR-FLURSTUECK sy-vline
WA_RELA_DI_STR-KREIS sy-vline
WA_RELA_DI_STR-GEMEINDE sy-vline
WA_RELA_DI_STR-PARTNR_KATAMT sy-vline
WA_RELA_DI_STR-GUELTIG_VON_F sy-vline
WA_RELA_DI_STR-GUELTIG_BIS sy-vline
WA_RELA_DI_STR-GSBER sy-vline
WA_RELA_DI_STR-BERGRUPPE sy-vline
WA_RELA_DI_STR-BEMERKUNG_KAT sy-vline
WA_RELA_DI_STR-INTRENO_KATFL sy-vline
WA_RELA_DI_STR-DGULTAB_KATFL sy-vline
WA_RELA_DI_STR-FLAECHE_KATFL sy-vline
WA_RELA_DI_STR-FEINS_KATFL sy-vline
WA_RELA_DI_STR-CHIND_KART sy-vline
WA_RELA_DI_STR-INTRENO_KART sy-vline
WA_RELA_DI_STR-LFDNR_KART sy-vline
WA_RELA_DI_STR-GUELTIG_VON_KART sy-vline
WA_RELA_DI_STR-GUELTIG_BIS_KART sy-vline
WA_RELA_DI_STR-KARTENART sy-vline
WA_RELA_DI_STR-KARTENNUMMER sy-vline
WA_RELA_DI_STR-CHIND_EIGENT sy-vline
WA_RELA_DI_STR-PARTNR sy-vline
WA_RELA_DI_STR-BRUCHT_ZAEHL sy-vline
WA_RELA_DI_STR-BRUCHT_NENNER sy-vline
WA_RELA_DI_STR-GESAMT_ZAEHL sy-vline
WA_RELA_DI_STR-GESAMT_NENNER sy-vline
WA_RELA_DI_STR-GUELTIG_VON_EIGENT sy-vline
WA_RELA_DI_STR-GUELTIG_BIS_EIGENT sy-vline
WA_RELA_DI_STR-GUELTIG_VON_OE sy-vline
WA_RELA_DI_STR-CHIND_ADRESS sy-vline
WA_RELA_DI_STR-INTRENO_ADRESSEN sy-vline
WA_RELA_DI_STR-LFDNR_ADRESSEN sy-vline
WA_RELA_DI_STR-OBJNR_ADRESSEN sy-vline
WA_RELA_DI_STR-GUELTIG_VON_ADRESSEN sy-vline
WA_RELA_DI_STR-GUELTIG_BIS_ADRESSEN sy-vline
WA_RELA_DI_STR-REF_EIGENT_ADRESSEN sy-vline
WA_RELA_DI_STR-CHIND_ANLAGEN sy-vline
WA_RELA_DI_STR-INTRENO_ANLA sy-vline
WA_RELA_DI_STR-PARTID_ANLA sy-vline
WA_RELA_DI_STR-KENNZEICHEN_ANLA sy-vline
WA_RELA_DI_STR-BUKRS_ANLA sy-vline
WA_RELA_DI_STR-SWENR_ANLA sy-vline
WA_RELA_DI_STR-ANLN1 sy-vline
WA_RELA_DI_STR-ANLN2 sy-vline
WA_RELA_DI_STR-GUELTIG_VON_ANLA sy-vline
WA_RELA_DI_STR-GUELTIG_BIS_ANLA sy-vline
WA_RELA_DI_STR-FLAECHE_ANLA sy-vline
WA_RELA_DI_STR-EINHEIT_ANLA sy-vline
WA_RELA_DI_STR-KANSW_HR sy-vline
WA_RELA_DI_STR-KANSW_SB sy-vline
WA_RELA_DI_STR-KANSW_KO sy-vline
WA_RELA_DI_STR-KANSW_S1 sy-vline
WA_RELA_DI_STR-KANSW_S2 sy-vline
WA_RELA_DI_STR-WAERS sy-vline
WA_RELA_DI_STR-CHIND_EINHW sy-vline
WA_RELA_DI_STR-EINHWNR sy-vline
WA_RELA_DI_STR-DGULTAB sy-vline
WA_RELA_DI_STR-DGULTBIS sy-vline
WA_RELA_DI_STR-FLAECHE sy-vline
WA_RELA_DI_STR-EINHEIT sy-vline
WA_RELA_DI_STR-CHIND_NUTZ sy-vline
WA_RELA_DI_STR-INTRENO_NUTZ sy-vline
WA_RELA_DI_STR-PARTID_NUTZ sy-vline
WA_RELA_DI_STR-KENNZEICHEN_NUTZ sy-vline
WA_RELA_DI_STR-LFDNR_NUTZ sy-vline
WA_RELA_DI_STR-NUTZUNGSART sy-vline
WA_RELA_DI_STR-UNTERNUTZUNGSART sy-vline
WA_RELA_DI_STR-FLAECHE_NUTZ sy-vline
WA_RELA_DI_STR-EINHEIT_NUTZ sy-vline
WA_RELA_DI_STR-BODENKLASSE sy-vline
WA_RELA_DI_STR-ZUSTANDSSTUFE sy-vline
WA_RELA_DI_STR-BODENART sy-vline
WA_RELA_DI_STR-EMZ sy-vline
WA_RELA_DI_STR-BETRIEBSNOTW sy-vline
WA_RELA_DI_STR-GUELTIG_VON_NUTZ sy-vline
WA_RELA_DI_STR-GUELTIG_BIS_NUTZ sy-vline
WA_RELA_DI_STR-VNACHWEISNR sy-vline
WA_RELA_DI_STR-CHIND_FLAE sy-vline
WA_RELA_DI_STR-INTRENO sy-vline
WA_RELA_DI_STR-PARTID_FLAE sy-vline
WA_RELA_DI_STR-FART sy-vline
WA_RELA_DI_STR-LFDNR_FLAE sy-vline
WA_RELA_DI_STR-BUKRS_FLAE sy-vline
WA_RELA_DI_STR-SWENR_FLAE sy-vline
WA_RELA_DI_STR-VERTRAG sy-vline
WA_RELA_DI_STR-VERTRAG_ART sy-vline
WA_RELA_DI_STR-VERTRAG_VOM sy-vline
WA_RELA_DI_STR-WIRT_UEBERGANG sy-vline
WA_RELA_DI_STR-VERTRAGSPARTNER sy-vline
WA_RELA_DI_STR-BEARBEITER sy-vline
WA_RELA_DI_STR-BEMERKUNG sy-vline
WA_RELA_DI_STR-FLAECHE_FLAE sy-vline
WA_RELA_DI_STR-EINHEIT_FLAE sy-vline
WA_RELA_DI_STR-STICHTAG sy-vline
WA_RELA_DI_STR-FLAECHE_ART sy-vline
WA_RELA_DI_STR-GUELTIG_VON_FLAE sy-vline
WA_RELA_DI_STR-GUELTIG_BIS_FLAE sy-vline
WA_RELA_DI_STR-CHIND_OBJEKTE sy-vline
WA_RELA_DI_STR-GUELTIG_VON_OBJ sy-vline
WA_RELA_DI_STR-BUKRS sy-vline
WA_RELA_DI_STR-SWENR sy-vline
WA_RELA_DI_STR-SGENR sy-vline
WA_RELA_DI_STR-SMENR sy-vline
WA_RELA_DI_STR-SGRNR sy-vline
WA_RELA_DI_STR-FLAECHE_OBJ sy-vline
WA_RELA_DI_STR-EINHEIT_OBJ sy-vline
WA_RELA_DI_STR-GUELTIG_BIS_OBJ sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.