ABAP Select data from SAP table RFFBWD 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 RFFBWD 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 RFFBWD. 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 RFFBWD 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_RFFBWD TYPE STANDARD TABLE OF RFFBWD,
      WA_RFFBWD TYPE RFFBWD,
      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: <RFFBWD> TYPE RFFBWD.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RFFBWD
*  INTO TABLE @DATA(IT_RFFBWD2).
*--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_RFFBWD INDEX 1 INTO DATA(WA_RFFBWD2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RFFBWD ASSIGNING <RFFBWD>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RFFBWD>-ABTP1 = 1.
<RFFBWD>-ADRID = 1.
<RFFBWD>-ALLGTREN = 1.
<RFFBWD>-ANZEW = 1.
<RFFBWD>-ANZT1 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RFFBWD-AUGDT, sy-vline,
WA_RFFBWD-BELNR, sy-vline,
WA_RFFBWD-BHOST, sy-vline,
WA_RFFBWD-BISBE, sy-vline,
WA_RFFBWD-BISFK, sy-vline,
WA_RFFBWD-BISSK, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RFFBWD 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_RFFBWD 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_RFFBWD INTO WA_RFFBWD. *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 BELNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RFFBWD-BELNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RFFBWD-BELNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit AU132, internal->external for field PPYMT CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_RFFBWD-PPYMT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RFFBWD-PPYMT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit SPDEV, internal->external for field PRINT CALL FUNCTION 'CONVERSION_EXIT_SPDEV_OUTPUT' EXPORTING input = WA_RFFBWD-PRINT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RFFBWD-PRINT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field TOTAL CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_RFFBWD-TOTAL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RFFBWD-TOTAL.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit AU132, internal->external for field WRBTR CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_RFFBWD-WRBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RFFBWD-WRBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field WRBT1 CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_RFFBWD-WRBT1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RFFBWD-WRBT1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AU132, internal->external for field WRBT2 CALL FUNCTION 'CONVERSION_EXIT_AU132_OUTPUT' EXPORTING input = WA_RFFBWD-WRBT2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RFFBWD-WRBT2.
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_RFFBWD_STR,
ABTP1 TYPE STRING,
ADRID TYPE STRING,
ALLGTREN TYPE STRING,
ANZEW TYPE STRING,
ANZT1 TYPE STRING,
AUGDT TYPE STRING,
BELNR TYPE STRING,
BHOST TYPE STRING,
BISBE TYPE STRING,
BISFK TYPE STRING,
BISSK TYPE STRING,
BISXB TYPE STRING,
BLART TYPE STRING,
BLDAT TYPE STRING,
BUDAT TYPE STRING,
BUKRS TYPE STRING,
DIRBU TYPE STRING,
DTAKZ TYPE STRING,
DYTAB TYPE STRING,
DYTIT TYPE STRING,
EXSTR TYPE STRING,
FITYO TYPE STRING,
FITYP TYPE STRING,
FIFRA TYPE STRING,
FORID TYPE STRING,
FORNR TYPE STRING,
FWAER TYPE STRING,
GROUP TYPE STRING,
HBIDI TYPE STRING,
HBKID TYPE STRING,
HKTID TYPE STRING,
IBLNR TYPE STRING,
JOBDT TYPE STRING,
JOBIM TYPE STRING,
JOBNA TYPE STRING,
JOBST TYPE STRING,
JOBTM TYPE STRING,
LAUFD TYPE STRING,
LAUFI TYPE STRING,
KFAEL TYPE STRING,
KSAMB TYPE STRING,
MOTIF TYPE STRING,
NURUE TYPE STRING,
POSTI TYPE STRING,
PPYMT TYPE STRING,
PRIMM TYPE STRING,
PRINT TYPE STRING,
PROTO TYPE STRING,
PROXB TYPE STRING,
REPID TYPE STRING,
SAPSC TYPE STRING,
TOTAL TYPE STRING,
UNIXI TYPE STRING,
UNIXO TYPE STRING,
VALUT TYPE STRING,
VARIA TYPE STRING,
VONBE TYPE STRING,
VONFK TYPE STRING,
VONSK TYPE STRING,
VONXB TYPE STRING,
WAERS TYPE STRING,
WDATE TYPE STRING,
WNAME TYPE STRING,
WRBTR TYPE STRING,
WRBT1 TYPE STRING,
WRBT2 TYPE STRING,
XBLNR TYPE STRING,
XGENF TYPE STRING,
XMARK TYPE STRING,
XVIAK TYPE STRING,
XVIAF TYPE STRING,
ZFBDT TYPE STRING,
FORMT TYPE STRING,END OF T_EKKO_STR. DATA: WA_RFFBWD_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_RFFBWD_STR-ABTP1 sy-vline
WA_RFFBWD_STR-ADRID sy-vline
WA_RFFBWD_STR-ALLGTREN sy-vline
WA_RFFBWD_STR-ANZEW sy-vline
WA_RFFBWD_STR-ANZT1 sy-vline
WA_RFFBWD_STR-AUGDT sy-vline
WA_RFFBWD_STR-BELNR sy-vline
WA_RFFBWD_STR-BHOST sy-vline
WA_RFFBWD_STR-BISBE sy-vline
WA_RFFBWD_STR-BISFK sy-vline
WA_RFFBWD_STR-BISSK sy-vline
WA_RFFBWD_STR-BISXB sy-vline
WA_RFFBWD_STR-BLART sy-vline
WA_RFFBWD_STR-BLDAT sy-vline
WA_RFFBWD_STR-BUDAT sy-vline
WA_RFFBWD_STR-BUKRS sy-vline
WA_RFFBWD_STR-DIRBU sy-vline
WA_RFFBWD_STR-DTAKZ sy-vline
WA_RFFBWD_STR-DYTAB sy-vline
WA_RFFBWD_STR-DYTIT sy-vline
WA_RFFBWD_STR-EXSTR sy-vline
WA_RFFBWD_STR-FITYO sy-vline
WA_RFFBWD_STR-FITYP sy-vline
WA_RFFBWD_STR-FIFRA sy-vline
WA_RFFBWD_STR-FORID sy-vline
WA_RFFBWD_STR-FORNR sy-vline
WA_RFFBWD_STR-FWAER sy-vline
WA_RFFBWD_STR-GROUP sy-vline
WA_RFFBWD_STR-HBIDI sy-vline
WA_RFFBWD_STR-HBKID sy-vline
WA_RFFBWD_STR-HKTID sy-vline
WA_RFFBWD_STR-IBLNR sy-vline
WA_RFFBWD_STR-JOBDT sy-vline
WA_RFFBWD_STR-JOBIM sy-vline
WA_RFFBWD_STR-JOBNA sy-vline
WA_RFFBWD_STR-JOBST sy-vline
WA_RFFBWD_STR-JOBTM sy-vline
WA_RFFBWD_STR-LAUFD sy-vline
WA_RFFBWD_STR-LAUFI sy-vline
WA_RFFBWD_STR-KFAEL sy-vline
WA_RFFBWD_STR-KSAMB sy-vline
WA_RFFBWD_STR-MOTIF sy-vline
WA_RFFBWD_STR-NURUE sy-vline
WA_RFFBWD_STR-POSTI sy-vline
WA_RFFBWD_STR-PPYMT sy-vline
WA_RFFBWD_STR-PRIMM sy-vline
WA_RFFBWD_STR-PRINT sy-vline
WA_RFFBWD_STR-PROTO sy-vline
WA_RFFBWD_STR-PROXB sy-vline
WA_RFFBWD_STR-REPID sy-vline
WA_RFFBWD_STR-SAPSC sy-vline
WA_RFFBWD_STR-TOTAL sy-vline
WA_RFFBWD_STR-UNIXI sy-vline
WA_RFFBWD_STR-UNIXO sy-vline
WA_RFFBWD_STR-VALUT sy-vline
WA_RFFBWD_STR-VARIA sy-vline
WA_RFFBWD_STR-VONBE sy-vline
WA_RFFBWD_STR-VONFK sy-vline
WA_RFFBWD_STR-VONSK sy-vline
WA_RFFBWD_STR-VONXB sy-vline
WA_RFFBWD_STR-WAERS sy-vline
WA_RFFBWD_STR-WDATE sy-vline
WA_RFFBWD_STR-WNAME sy-vline
WA_RFFBWD_STR-WRBTR sy-vline
WA_RFFBWD_STR-WRBT1 sy-vline
WA_RFFBWD_STR-WRBT2 sy-vline
WA_RFFBWD_STR-XBLNR sy-vline
WA_RFFBWD_STR-XGENF sy-vline
WA_RFFBWD_STR-XMARK sy-vline
WA_RFFBWD_STR-XVIAK sy-vline
WA_RFFBWD_STR-XVIAF sy-vline
WA_RFFBWD_STR-ZFBDT sy-vline
WA_RFFBWD_STR-FORMT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.