ABAP Select data from SAP table RF02D 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 RF02D 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 RF02D. 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 RF02D 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_RF02D TYPE STANDARD TABLE OF RF02D,
      WA_RF02D TYPE RF02D,
      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: <RF02D> TYPE RF02D.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RF02D
*  INTO TABLE @DATA(IT_RF02D2).
*--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_RF02D INDEX 1 INTO DATA(WA_RF02D2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RF02D ASSIGNING <RF02D>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RF02D>-KUNNR = 1.
<RF02D>-BUKRS = 1.
<RF02D>-VKORG = 1.
<RF02D>-VKOKU = 1.
<RF02D>-VTWEG = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RF02D-VTWKU, sy-vline,
WA_RF02D-SPART, sy-vline,
WA_RF02D-SPAKU, sy-vline,
WA_RF02D-REF_KUNNR, sy-vline,
WA_RF02D-REF_BUKRS, sy-vline,
WA_RF02D-REF_VKORG, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RF02D 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_RF02D 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_RF02D INTO WA_RF02D. *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 KUNNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RF02D-KUNNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RF02D-KUNNR.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field KTONR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RF02D-KTONR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RF02D-KTONR.
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_RF02D_STR,
KUNNR TYPE STRING,
BUKRS TYPE STRING,
VKORG TYPE STRING,
VKOKU TYPE STRING,
VTWEG TYPE STRING,
VTWKU TYPE STRING,
SPART TYPE STRING,
SPAKU TYPE STRING,
REF_KUNNR TYPE STRING,
REF_BUKRS TYPE STRING,
REF_VKORG TYPE STRING,
REF_VTWEG TYPE STRING,
REF_SPART TYPE STRING,
KTOKD TYPE STRING,
KTOKD_NEW TYPE STRING,
XASEL TYPE STRING,
AZSCH TYPE STRING,
AZTXT TYPE STRING,
XESEL TYPE STRING,
EZSCH TYPE STRING,
EZTXT TYPE STRING,
IDTXT TYPE STRING,
SELKZ TYPE STRING,
DELKZ TYPE STRING,
DDTEX TYPE STRING,
DOVAL TYPE STRING,
SEITE TYPE STRING,
FAUSS TYPE STRING,
GRUPP TYPE STRING,
GGRUP TYPE STRING,
VTXTH TYPE STRING,
VTXTK TYPE STRING,
VTXTM TYPE STRING,
VTXTL TYPE STRING,
VONNR TYPE STRING,
BISNR TYPE STRING,
STAND TYPE STRING,
KTONR TYPE STRING,
PARNR TYPE STRING,
TEXT1 TYPE STRING,
BRAKZ TYPE STRING,
BRAT1 TYPE STRING,
BRAT2 TYPE STRING,
BRAT3 TYPE STRING,
BRAT4 TYPE STRING,
BRAT5 TYPE STRING,
D0110 TYPE STRING,
D0120 TYPE STRING,
D0125 TYPE STRING,
D0130 TYPE STRING,
D0210 TYPE STRING,
D0215 TYPE STRING,
D0220 TYPE STRING,
D0230 TYPE STRING,
D0310 TYPE STRING,
D0315 TYPE STRING,
D0320 TYPE STRING,
D0324 TYPE STRING,
D0360 TYPE STRING,
D0326 TYPE STRING,
D0330 TYPE STRING,
D0340 TYPE STRING,
D0370 TYPE STRING,
D0600 TYPE STRING,
D0610 TYPE STRING,
T0110 TYPE STRING,
T0120 TYPE STRING,
T0125 TYPE STRING,
T0130 TYPE STRING,
T0210 TYPE STRING,
T0215 TYPE STRING,
T0220 TYPE STRING,
T0230 TYPE STRING,
T0310 TYPE STRING,
T0315 TYPE STRING,
T0320 TYPE STRING,
T0324 TYPE STRING,
T0360 TYPE STRING,
T0326 TYPE STRING,
T0330 TYPE STRING,
T0340 TYPE STRING,
T0350 TYPE STRING,
T0370 TYPE STRING,
CONFSA_T TYPE STRING,
CONFSB_T TYPE STRING,
DESCRIP TYPE STRING,
XNCON TYPE STRING,
XDECL TYPE STRING,
X08_CHECK TYPE STRING,
ZINDT TYPE STRING,
ZINRT TYPE STRING,
ZINRT_TXT TYPE STRING,
DATLZ TYPE STRING,
KULTG TYPE STRING,
MADAT TYPE STRING,
GMVDT TYPE STRING,
MAHNS TYPE STRING,
VERDT TYPE STRING,
WEBTR TYPE STRING,
SBJDF TYPE STRING,
SBJDT TYPE STRING,
EXDF TYPE STRING,
EXDT TYPE STRING,
AGTDF TYPE STRING,
AGTDT TYPE STRING,
VRSZL TYPE STRING,
VRSPR TYPE STRING,
CFOPC_TXT TYPE STRING,
DTAMS_TXT TYPE STRING,
D0900 TYPE STRING,
T0900 TYPE STRING,
D0910 TYPE STRING,
T0910 TYPE STRING,END OF T_EKKO_STR. DATA: WA_RF02D_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_RF02D_STR-KUNNR sy-vline
WA_RF02D_STR-BUKRS sy-vline
WA_RF02D_STR-VKORG sy-vline
WA_RF02D_STR-VKOKU sy-vline
WA_RF02D_STR-VTWEG sy-vline
WA_RF02D_STR-VTWKU sy-vline
WA_RF02D_STR-SPART sy-vline
WA_RF02D_STR-SPAKU sy-vline
WA_RF02D_STR-REF_KUNNR sy-vline
WA_RF02D_STR-REF_BUKRS sy-vline
WA_RF02D_STR-REF_VKORG sy-vline
WA_RF02D_STR-REF_VTWEG sy-vline
WA_RF02D_STR-REF_SPART sy-vline
WA_RF02D_STR-KTOKD sy-vline
WA_RF02D_STR-KTOKD_NEW sy-vline
WA_RF02D_STR-XASEL sy-vline
WA_RF02D_STR-AZSCH sy-vline
WA_RF02D_STR-AZTXT sy-vline
WA_RF02D_STR-XESEL sy-vline
WA_RF02D_STR-EZSCH sy-vline
WA_RF02D_STR-EZTXT sy-vline
WA_RF02D_STR-IDTXT sy-vline
WA_RF02D_STR-SELKZ sy-vline
WA_RF02D_STR-DELKZ sy-vline
WA_RF02D_STR-DDTEX sy-vline
WA_RF02D_STR-DOVAL sy-vline
WA_RF02D_STR-SEITE sy-vline
WA_RF02D_STR-FAUSS sy-vline
WA_RF02D_STR-GRUPP sy-vline
WA_RF02D_STR-GGRUP sy-vline
WA_RF02D_STR-VTXTH sy-vline
WA_RF02D_STR-VTXTK sy-vline
WA_RF02D_STR-VTXTM sy-vline
WA_RF02D_STR-VTXTL sy-vline
WA_RF02D_STR-VONNR sy-vline
WA_RF02D_STR-BISNR sy-vline
WA_RF02D_STR-STAND sy-vline
WA_RF02D_STR-KTONR sy-vline
WA_RF02D_STR-PARNR sy-vline
WA_RF02D_STR-TEXT1 sy-vline
WA_RF02D_STR-BRAKZ sy-vline
WA_RF02D_STR-BRAT1 sy-vline
WA_RF02D_STR-BRAT2 sy-vline
WA_RF02D_STR-BRAT3 sy-vline
WA_RF02D_STR-BRAT4 sy-vline
WA_RF02D_STR-BRAT5 sy-vline
WA_RF02D_STR-D0110 sy-vline
WA_RF02D_STR-D0120 sy-vline
WA_RF02D_STR-D0125 sy-vline
WA_RF02D_STR-D0130 sy-vline
WA_RF02D_STR-D0210 sy-vline
WA_RF02D_STR-D0215 sy-vline
WA_RF02D_STR-D0220 sy-vline
WA_RF02D_STR-D0230 sy-vline
WA_RF02D_STR-D0310 sy-vline
WA_RF02D_STR-D0315 sy-vline
WA_RF02D_STR-D0320 sy-vline
WA_RF02D_STR-D0324 sy-vline
WA_RF02D_STR-D0360 sy-vline
WA_RF02D_STR-D0326 sy-vline
WA_RF02D_STR-D0330 sy-vline
WA_RF02D_STR-D0340 sy-vline
WA_RF02D_STR-D0370 sy-vline
WA_RF02D_STR-D0600 sy-vline
WA_RF02D_STR-D0610 sy-vline
WA_RF02D_STR-T0110 sy-vline
WA_RF02D_STR-T0120 sy-vline
WA_RF02D_STR-T0125 sy-vline
WA_RF02D_STR-T0130 sy-vline
WA_RF02D_STR-T0210 sy-vline
WA_RF02D_STR-T0215 sy-vline
WA_RF02D_STR-T0220 sy-vline
WA_RF02D_STR-T0230 sy-vline
WA_RF02D_STR-T0310 sy-vline
WA_RF02D_STR-T0315 sy-vline
WA_RF02D_STR-T0320 sy-vline
WA_RF02D_STR-T0324 sy-vline
WA_RF02D_STR-T0360 sy-vline
WA_RF02D_STR-T0326 sy-vline
WA_RF02D_STR-T0330 sy-vline
WA_RF02D_STR-T0340 sy-vline
WA_RF02D_STR-T0350 sy-vline
WA_RF02D_STR-T0370 sy-vline
WA_RF02D_STR-CONFSA_T sy-vline
WA_RF02D_STR-CONFSB_T sy-vline
WA_RF02D_STR-DESCRIP sy-vline
WA_RF02D_STR-XNCON sy-vline
WA_RF02D_STR-XDECL sy-vline
WA_RF02D_STR-X08_CHECK sy-vline
WA_RF02D_STR-ZINDT sy-vline
WA_RF02D_STR-ZINRT sy-vline
WA_RF02D_STR-ZINRT_TXT sy-vline
WA_RF02D_STR-DATLZ sy-vline
WA_RF02D_STR-KULTG sy-vline
WA_RF02D_STR-MADAT sy-vline
WA_RF02D_STR-GMVDT sy-vline
WA_RF02D_STR-MAHNS sy-vline
WA_RF02D_STR-VERDT sy-vline
WA_RF02D_STR-WEBTR sy-vline
WA_RF02D_STR-SBJDF sy-vline
WA_RF02D_STR-SBJDT sy-vline
WA_RF02D_STR-EXDF sy-vline
WA_RF02D_STR-EXDT sy-vline
WA_RF02D_STR-AGTDF sy-vline
WA_RF02D_STR-AGTDT sy-vline
WA_RF02D_STR-VRSZL sy-vline
WA_RF02D_STR-VRSPR sy-vline
WA_RF02D_STR-CFOPC_TXT sy-vline
WA_RF02D_STR-DTAMS_TXT sy-vline
WA_RF02D_STR-D0900 sy-vline
WA_RF02D_STR-T0900 sy-vline
WA_RF02D_STR-D0910 sy-vline
WA_RF02D_STR-T0910 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.