ABAP Select data from SAP table RFKZ0 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 RFKZ0 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 RFKZ0. 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 RFKZ0 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_RFKZ0 TYPE STANDARD TABLE OF RFKZ0,
      WA_RFKZ0 TYPE RFKZ0,
      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: <RFKZ0> TYPE RFKZ0.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RFKZ0
*  INTO TABLE @DATA(IT_RFKZ02).
*--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_RFKZ0 INDEX 1 INTO DATA(WA_RFKZ02).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RFKZ0 ASSIGNING <RFKZ0>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RFKZ0>-KEYZ1 = 1.
<RFKZ0>-KEYZ2 = 1.
<RFKZ0>-AZEI1 = 1.
<RFKZ0>-AZEI2 = 1.
<RFKZ0>-AZEI3 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RFKZ0-AZEI4, sy-vline,
WA_RFKZ0-ADRZ1, sy-vline,
WA_RFKZ0-ADRZ2, sy-vline,
WA_RFKZ0-ADRZ3, sy-vline,
WA_RFKZ0-ADRZ4, sy-vline,
WA_RFKZ0-ERRTX, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RFKZ0 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_RFKZ0 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_RFKZ0 INTO WA_RFKZ0. *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 KLAEB CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RFKZ0-KLAEB IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RFKZ0-KLAEB.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

*Conversion exit ALPHA, internal->external for field KLAEN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RFKZ0-KLAEN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RFKZ0-KLAEN.
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_RFKZ0_STR,
KEYZ1 TYPE STRING,
KEYZ2 TYPE STRING,
AZEI1 TYPE STRING,
AZEI2 TYPE STRING,
AZEI3 TYPE STRING,
AZEI4 TYPE STRING,
ADRZ1 TYPE STRING,
ADRZ2 TYPE STRING,
ADRZ3 TYPE STRING,
ADRZ4 TYPE STRING,
ERRTX TYPE STRING,
XMARK TYPE STRING,
XEXFG TYPE STRING,
XEXBG TYPE STRING,
STRDT TYPE STRING,
STRZT TYPE STRING,
XSTRF TYPE STRING,
BHOST TYPE STRING,
JNAME TYPE STRING,
XRZAL TYPE STRING,
FIKEY TYPE STRING,
XSCHS TYPE STRING,
XPDCS TYPE STRING,
XCRDS TYPE STRING,
XZAUS TYPE STRING,
XRTPS TYPE STRING,
TITLE TYPE STRING,
SELT1 TYPE STRING,
SELW1 TYPE STRING,
SELT2 TYPE STRING,
SELW2 TYPE STRING,
SELT3 TYPE STRING,
SELW3 TYPE STRING,
TBETR TYPE STRING,
VGRND TYPE STRING,
UNAME TYPE STRING,
DATUM TYPE STRING,
KEYZ1_KLAER TYPE STRING,
POSZA_KLAER TYPE STRING,
KLAEB TYPE STRING,
KEYWD TYPE STRING,
GPART TYPE STRING,
GPART_DET TYPE STRING,
VKONT TYPE STRING,
VTREF TYPE STRING,
SLZUS TYPE STRING,
BANKA TYPE STRING,
BANKA2 TYPE STRING,
DICON TYPE STRING,
TELEF TYPE STRING,
BNKVB TYPE STRING,
BICON TYPE STRING,
RICON TYPE STRING,
FAETX TYPE STRING,
FAEBT TYPE STRING,
BNKVB_KL TYPE STRING,
TXTRZ TYPE STRING,
KLBTW TYPE STRING,
KLBTH TYPE STRING,
TEXT_BETRAG TYPE STRING,
RESTB TYPE STRING,
TEXT_BV TYPE STRING,
TEXT_FR TYPE STRING,
HZUON TYPE STRING,
KEYW2 TYPE STRING,
ANZVA TYPE STRING,
ACTPO TYPE STRING,
INAPO TYPE STRING,
ACTAM TYPE STRING,
INAAM TYPE STRING,
STATU TYPE STRING,
FUNTX TYPE STRING,
MENTX TYPE STRING,
ABWBD TYPE STRING,
KLAEN TYPE STRING,
KLACN TYPE STRING,
KLACO TYPE STRING,
XMLPR TYPE STRING,
MLSTA TYPE STRING,
MLCFR TYPE STRING,END OF T_EKKO_STR. DATA: WA_RFKZ0_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_RFKZ0_STR-KEYZ1 sy-vline
WA_RFKZ0_STR-KEYZ2 sy-vline
WA_RFKZ0_STR-AZEI1 sy-vline
WA_RFKZ0_STR-AZEI2 sy-vline
WA_RFKZ0_STR-AZEI3 sy-vline
WA_RFKZ0_STR-AZEI4 sy-vline
WA_RFKZ0_STR-ADRZ1 sy-vline
WA_RFKZ0_STR-ADRZ2 sy-vline
WA_RFKZ0_STR-ADRZ3 sy-vline
WA_RFKZ0_STR-ADRZ4 sy-vline
WA_RFKZ0_STR-ERRTX sy-vline
WA_RFKZ0_STR-XMARK sy-vline
WA_RFKZ0_STR-XEXFG sy-vline
WA_RFKZ0_STR-XEXBG sy-vline
WA_RFKZ0_STR-STRDT sy-vline
WA_RFKZ0_STR-STRZT sy-vline
WA_RFKZ0_STR-XSTRF sy-vline
WA_RFKZ0_STR-BHOST sy-vline
WA_RFKZ0_STR-JNAME sy-vline
WA_RFKZ0_STR-XRZAL sy-vline
WA_RFKZ0_STR-FIKEY sy-vline
WA_RFKZ0_STR-XSCHS sy-vline
WA_RFKZ0_STR-XPDCS sy-vline
WA_RFKZ0_STR-XCRDS sy-vline
WA_RFKZ0_STR-XZAUS sy-vline
WA_RFKZ0_STR-XRTPS sy-vline
WA_RFKZ0_STR-TITLE sy-vline
WA_RFKZ0_STR-SELT1 sy-vline
WA_RFKZ0_STR-SELW1 sy-vline
WA_RFKZ0_STR-SELT2 sy-vline
WA_RFKZ0_STR-SELW2 sy-vline
WA_RFKZ0_STR-SELT3 sy-vline
WA_RFKZ0_STR-SELW3 sy-vline
WA_RFKZ0_STR-TBETR sy-vline
WA_RFKZ0_STR-VGRND sy-vline
WA_RFKZ0_STR-UNAME sy-vline
WA_RFKZ0_STR-DATUM sy-vline
WA_RFKZ0_STR-KEYZ1_KLAER sy-vline
WA_RFKZ0_STR-POSZA_KLAER sy-vline
WA_RFKZ0_STR-KLAEB sy-vline
WA_RFKZ0_STR-KEYWD sy-vline
WA_RFKZ0_STR-GPART sy-vline
WA_RFKZ0_STR-GPART_DET sy-vline
WA_RFKZ0_STR-VKONT sy-vline
WA_RFKZ0_STR-VTREF sy-vline
WA_RFKZ0_STR-SLZUS sy-vline
WA_RFKZ0_STR-BANKA sy-vline
WA_RFKZ0_STR-BANKA2 sy-vline
WA_RFKZ0_STR-DICON sy-vline
WA_RFKZ0_STR-TELEF sy-vline
WA_RFKZ0_STR-BNKVB sy-vline
WA_RFKZ0_STR-BICON sy-vline
WA_RFKZ0_STR-RICON sy-vline
WA_RFKZ0_STR-FAETX sy-vline
WA_RFKZ0_STR-FAEBT sy-vline
WA_RFKZ0_STR-BNKVB_KL sy-vline
WA_RFKZ0_STR-TXTRZ sy-vline
WA_RFKZ0_STR-KLBTW sy-vline
WA_RFKZ0_STR-KLBTH sy-vline
WA_RFKZ0_STR-TEXT_BETRAG sy-vline
WA_RFKZ0_STR-RESTB sy-vline
WA_RFKZ0_STR-TEXT_BV sy-vline
WA_RFKZ0_STR-TEXT_FR sy-vline
WA_RFKZ0_STR-HZUON sy-vline
WA_RFKZ0_STR-KEYW2 sy-vline
WA_RFKZ0_STR-ANZVA sy-vline
WA_RFKZ0_STR-ACTPO sy-vline
WA_RFKZ0_STR-INAPO sy-vline
WA_RFKZ0_STR-ACTAM sy-vline
WA_RFKZ0_STR-INAAM sy-vline
WA_RFKZ0_STR-STATU sy-vline
WA_RFKZ0_STR-FUNTX sy-vline
WA_RFKZ0_STR-MENTX sy-vline
WA_RFKZ0_STR-ABWBD sy-vline
WA_RFKZ0_STR-KLAEN sy-vline
WA_RFKZ0_STR-KLACN sy-vline
WA_RFKZ0_STR-KLACO sy-vline
WA_RFKZ0_STR-XMLPR sy-vline
WA_RFKZ0_STR-MLSTA sy-vline
WA_RFKZ0_STR-MLCFR sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.