ABAP Select data from SAP table RFKB4 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 RFKB4 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 RFKB4. 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 RFKB4 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_RFKB4 TYPE STANDARD TABLE OF RFKB4,
      WA_RFKB4 TYPE RFKB4,
      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: <RFKB4> TYPE RFKB4.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RFKB4
*  INTO TABLE @DATA(IT_RFKB42).
*--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_RFKB4 INDEX 1 INTO DATA(WA_RFKB42).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RFKB4 ASSIGNING <RFKB4>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RFKB4>-ABPOS = 1.
<RFKB4>-AKTIV = 1.
<RFKB4>-AMPEL = 1.
<RFKB4>-AMPLU = 1.
<RFKB4>-ANZPO = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RFKB4-ANZPG, sy-vline,
WA_RFKB4-ANZVA, sy-vline,
WA_RFKB4-ANZVC, sy-vline,
WA_RFKB4-AZEI1, sy-vline,
WA_RFKB4-AZSTA, sy-vline,
WA_RFKB4-AZWAE, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RFKB4 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_RFKB4 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_RFKB4 INTO WA_RFKB4. *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.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_RFKB4_STR,
ABPOS TYPE STRING,
AKTIV TYPE STRING,
AMPEL TYPE STRING,
AMPLU TYPE STRING,
ANZPO TYPE STRING,
ANZPG TYPE STRING,
ANZVA TYPE STRING,
ANZVC TYPE STRING,
AZEI1 TYPE STRING,
AZSTA TYPE STRING,
AZWAE TYPE STRING,
AZWA1 TYPE STRING,
AZWA2 TYPE STRING,
BETRG TYPE STRING,
BISDT TYPE STRING,
BISWT TYPE STRING,
BRNEA TYPE STRING,
BRNET TYPE STRING,
CUKWT TYPE STRING,
DIFFB TYPE STRING,
FRAME TYPE STRING,
GPDAT TYPE STRING,
HWAER TYPE STRING,
HWAE2 TYPE STRING,
HWAE3 TYPE STRING,
LICON TYPE STRING,
NETFL TYPE STRING,
PSAUG TYPE STRING,
PSBET TYPE STRING,
PSCOM TYPE STRING,
PSSKA TYPE STRING,
PSSKP TYPE STRING,
PSSKT TYPE STRING,
QSBEI TYPE STRING,
QSBFR TYPE STRING,
QSSTA TYPE STRING,
SEL01 TYPE STRING,
SEL02 TYPE STRING,
SICON TYPE STRING,
SKAKT TYPE STRING,
SKVOR TYPE STRING,
TCUEB TYPE STRING,
TXKOM TYPE STRING,
TXSKT TYPE STRING,
TXSKP TYPE STRING,
VONDT TYPE STRING,
VONWT TYPE STRING,
XAKTP TYPE STRING,
XAKTS TYPE STRING,
XAUGB TYPE STRING,
XAUGN TYPE STRING,
XCOMA TYPE STRING,
XCOME TYPE STRING,
XINIT TYPE STRING,
XMARK TYPE STRING,
XQSEI TYPE STRING,
XQSFR TYPE STRING,
XRECB TYPE STRING,
XRECN TYPE STRING,
XSKTA TYPE STRING,
XSKTE TYPE STRING,
XVRDA TYPE STRING,
XVRDE TYPE STRING,
XBETA TYPE STRING,
XBETE TYPE STRING,
XWAER TYPE STRING,
WAECD TYPE STRING,
WAETY TYPE STRING,
OPTXT TYPE STRING,
SUNAM TYPE STRING,
ICONQ TYPE STRING,
ICONQ1 TYPE STRING,
UMBET TYPE STRING,
KUKON TYPE STRING,
VZAKT TYPE STRING,
TSKZU TYPE STRING,
VICON TYPE STRING,
DATVZ TYPE STRING,
TXTVW TYPE STRING,
ORIWA TYPE STRING,
ORIBT TYPE STRING,
AUGBO TYPE STRING,
LOCKT TYPE STRING,
ADDSC TYPE STRING,
ADFIX TYPE STRING,
OPACT TYPE STRING,
LAND1 TYPE STRING,
ACCT1 TYPE STRING,
ACCT2 TYPE STRING,
ACCT3 TYPE STRING,
XFISA TYPE STRING,
ANZZW TYPE STRING,
XSCHZ TYPE STRING,
SCFCO TYPE STRING,
PPSUM_REF TYPE STRING,
PPSUM_CON TYPE STRING,
PPSUM_DEB TYPE STRING,
PPSUM_TOT TYPE STRING,
PPSUM_REV TYPE STRING,
XMAXS TYPE STRING,END OF T_EKKO_STR. DATA: WA_RFKB4_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_RFKB4_STR-ABPOS sy-vline
WA_RFKB4_STR-AKTIV sy-vline
WA_RFKB4_STR-AMPEL sy-vline
WA_RFKB4_STR-AMPLU sy-vline
WA_RFKB4_STR-ANZPO sy-vline
WA_RFKB4_STR-ANZPG sy-vline
WA_RFKB4_STR-ANZVA sy-vline
WA_RFKB4_STR-ANZVC sy-vline
WA_RFKB4_STR-AZEI1 sy-vline
WA_RFKB4_STR-AZSTA sy-vline
WA_RFKB4_STR-AZWAE sy-vline
WA_RFKB4_STR-AZWA1 sy-vline
WA_RFKB4_STR-AZWA2 sy-vline
WA_RFKB4_STR-BETRG sy-vline
WA_RFKB4_STR-BISDT sy-vline
WA_RFKB4_STR-BISWT sy-vline
WA_RFKB4_STR-BRNEA sy-vline
WA_RFKB4_STR-BRNET sy-vline
WA_RFKB4_STR-CUKWT sy-vline
WA_RFKB4_STR-DIFFB sy-vline
WA_RFKB4_STR-FRAME sy-vline
WA_RFKB4_STR-GPDAT sy-vline
WA_RFKB4_STR-HWAER sy-vline
WA_RFKB4_STR-HWAE2 sy-vline
WA_RFKB4_STR-HWAE3 sy-vline
WA_RFKB4_STR-LICON sy-vline
WA_RFKB4_STR-NETFL sy-vline
WA_RFKB4_STR-PSAUG sy-vline
WA_RFKB4_STR-PSBET sy-vline
WA_RFKB4_STR-PSCOM sy-vline
WA_RFKB4_STR-PSSKA sy-vline
WA_RFKB4_STR-PSSKP sy-vline
WA_RFKB4_STR-PSSKT sy-vline
WA_RFKB4_STR-QSBEI sy-vline
WA_RFKB4_STR-QSBFR sy-vline
WA_RFKB4_STR-QSSTA sy-vline
WA_RFKB4_STR-SEL01 sy-vline
WA_RFKB4_STR-SEL02 sy-vline
WA_RFKB4_STR-SICON sy-vline
WA_RFKB4_STR-SKAKT sy-vline
WA_RFKB4_STR-SKVOR sy-vline
WA_RFKB4_STR-TCUEB sy-vline
WA_RFKB4_STR-TXKOM sy-vline
WA_RFKB4_STR-TXSKT sy-vline
WA_RFKB4_STR-TXSKP sy-vline
WA_RFKB4_STR-VONDT sy-vline
WA_RFKB4_STR-VONWT sy-vline
WA_RFKB4_STR-XAKTP sy-vline
WA_RFKB4_STR-XAKTS sy-vline
WA_RFKB4_STR-XAUGB sy-vline
WA_RFKB4_STR-XAUGN sy-vline
WA_RFKB4_STR-XCOMA sy-vline
WA_RFKB4_STR-XCOME sy-vline
WA_RFKB4_STR-XINIT sy-vline
WA_RFKB4_STR-XMARK sy-vline
WA_RFKB4_STR-XQSEI sy-vline
WA_RFKB4_STR-XQSFR sy-vline
WA_RFKB4_STR-XRECB sy-vline
WA_RFKB4_STR-XRECN sy-vline
WA_RFKB4_STR-XSKTA sy-vline
WA_RFKB4_STR-XSKTE sy-vline
WA_RFKB4_STR-XVRDA sy-vline
WA_RFKB4_STR-XVRDE sy-vline
WA_RFKB4_STR-XBETA sy-vline
WA_RFKB4_STR-XBETE sy-vline
WA_RFKB4_STR-XWAER sy-vline
WA_RFKB4_STR-WAECD sy-vline
WA_RFKB4_STR-WAETY sy-vline
WA_RFKB4_STR-OPTXT sy-vline
WA_RFKB4_STR-SUNAM sy-vline
WA_RFKB4_STR-ICONQ sy-vline
WA_RFKB4_STR-ICONQ1 sy-vline
WA_RFKB4_STR-UMBET sy-vline
WA_RFKB4_STR-KUKON sy-vline
WA_RFKB4_STR-VZAKT sy-vline
WA_RFKB4_STR-TSKZU sy-vline
WA_RFKB4_STR-VICON sy-vline
WA_RFKB4_STR-DATVZ sy-vline
WA_RFKB4_STR-TXTVW sy-vline
WA_RFKB4_STR-ORIWA sy-vline
WA_RFKB4_STR-ORIBT sy-vline
WA_RFKB4_STR-AUGBO sy-vline
WA_RFKB4_STR-LOCKT sy-vline
WA_RFKB4_STR-ADDSC sy-vline
WA_RFKB4_STR-ADFIX sy-vline
WA_RFKB4_STR-OPACT sy-vline
WA_RFKB4_STR-LAND1 sy-vline
WA_RFKB4_STR-ACCT1 sy-vline
WA_RFKB4_STR-ACCT2 sy-vline
WA_RFKB4_STR-ACCT3 sy-vline
WA_RFKB4_STR-XFISA sy-vline
WA_RFKB4_STR-ANZZW sy-vline
WA_RFKB4_STR-XSCHZ sy-vline
WA_RFKB4_STR-SCFCO sy-vline
WA_RFKB4_STR-PPSUM_REF sy-vline
WA_RFKB4_STR-PPSUM_CON sy-vline
WA_RFKB4_STR-PPSUM_DEB sy-vline
WA_RFKB4_STR-PPSUM_TOT sy-vline
WA_RFKB4_STR-PPSUM_REV sy-vline
WA_RFKB4_STR-XMAXS sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.