ABAP Select data from SAP table RAC00 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 RAC00 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 RAC00. 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 RAC00 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_RAC00 TYPE STANDARD TABLE OF RAC00,
      WA_RAC00 TYPE RAC00,
      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: <RAC00> TYPE RAC00.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RAC00
*  INTO TABLE @DATA(IT_RAC002).
*--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_RAC00 INDEX 1 INTO DATA(WA_RAC002).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RAC00 ASSIGNING <RAC00>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RAC00>-XNAFA = 1.
<RAC00>-XNAFA0 = 1.
<RAC00>-XNAFAP = 1.
<RAC00>-XNAFAM = 1.
<RAC00>-XNAFAS = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RAC00-XSAFA, sy-vline,
WA_RAC00-XSAFA0, sy-vline,
WA_RAC00-XSAFAP, sy-vline,
WA_RAC00-XSAFAM, sy-vline,
WA_RAC00-XSAFAS, sy-vline,
WA_RAC00-XAAFA, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RAC00 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_RAC00 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_RAC00 INTO WA_RAC00. *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_RAC00_STR,
XNAFA TYPE STRING,
XNAFA0 TYPE STRING,
XNAFAP TYPE STRING,
XNAFAM TYPE STRING,
XNAFAS TYPE STRING,
XSAFA TYPE STRING,
XSAFA0 TYPE STRING,
XSAFAP TYPE STRING,
XSAFAM TYPE STRING,
XSAFAS TYPE STRING,
XAAFA TYPE STRING,
XAAFA0 TYPE STRING,
XAAFAP TYPE STRING,
XAAFAM TYPE STRING,
XAAFAS TYPE STRING,
XAWMA TYPE STRING,
XAWMA0 TYPE STRING,
XAWMAP TYPE STRING,
XAWMAM TYPE STRING,
XAWMAS TYPE STRING,
XZINS TYPE STRING,
XZUSCH TYPE STRING,
XINDAHK TYPE STRING,
XINDAF TYPE STRING,
XAHK TYPE STRING,
XRBWPOS TYPE STRING,
XRBWNEG TYPE STRING,
AFBTXT1 TYPE STRING,
AFBTXT2 TYPE STRING,
AFBTXT3 TYPE STRING,
AFBTXT4 TYPE STRING,
AFBTXT5 TYPE STRING,
TEXT1 TYPE STRING,
SUM_445 TYPE STRING,
XSUMM TYPE STRING,
VORGATX TYPE STRING,
ANTWT_TXT TYPE STRING,
DOMTX TYPE STRING,
DOMTX1 TYPE STRING,
DOMTX2 TYPE STRING,
DOMTX3 TYPE STRING,
XPROD TYPE STRING,
XALTD TYPE STRING,
XTEST TYPE STRING,
BUHBKTX TYPE STRING,
XREIHE TYPE STRING,
X1MONAT TYPE STRING,
X2MONAT TYPE STRING,
X3MONAT TYPE STRING,
X6MONAT TYPE STRING,
XJAHR TYPE STRING,
XEXPERT TYPE STRING,
XPOST TYPE STRING,
XNOTPOST TYPE STRING,
XAFAPOST TYPE STRING,
XPOSTPER TYPE STRING,
XPOSTDIR TYPE STRING,
XNOTACTIVE TYPE STRING,
XPREPARE TYPE STRING,
XACTIVE TYPE STRING,
XACTIVE_INVALID TYPE STRING,
XINVALID TYPE STRING,
ACCPR_TXT TYPE STRING,END OF T_EKKO_STR. DATA: WA_RAC00_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_RAC00_STR-XNAFA sy-vline
WA_RAC00_STR-XNAFA0 sy-vline
WA_RAC00_STR-XNAFAP sy-vline
WA_RAC00_STR-XNAFAM sy-vline
WA_RAC00_STR-XNAFAS sy-vline
WA_RAC00_STR-XSAFA sy-vline
WA_RAC00_STR-XSAFA0 sy-vline
WA_RAC00_STR-XSAFAP sy-vline
WA_RAC00_STR-XSAFAM sy-vline
WA_RAC00_STR-XSAFAS sy-vline
WA_RAC00_STR-XAAFA sy-vline
WA_RAC00_STR-XAAFA0 sy-vline
WA_RAC00_STR-XAAFAP sy-vline
WA_RAC00_STR-XAAFAM sy-vline
WA_RAC00_STR-XAAFAS sy-vline
WA_RAC00_STR-XAWMA sy-vline
WA_RAC00_STR-XAWMA0 sy-vline
WA_RAC00_STR-XAWMAP sy-vline
WA_RAC00_STR-XAWMAM sy-vline
WA_RAC00_STR-XAWMAS sy-vline
WA_RAC00_STR-XZINS sy-vline
WA_RAC00_STR-XZUSCH sy-vline
WA_RAC00_STR-XINDAHK sy-vline
WA_RAC00_STR-XINDAF sy-vline
WA_RAC00_STR-XAHK sy-vline
WA_RAC00_STR-XRBWPOS sy-vline
WA_RAC00_STR-XRBWNEG sy-vline
WA_RAC00_STR-AFBTXT1 sy-vline
WA_RAC00_STR-AFBTXT2 sy-vline
WA_RAC00_STR-AFBTXT3 sy-vline
WA_RAC00_STR-AFBTXT4 sy-vline
WA_RAC00_STR-AFBTXT5 sy-vline
WA_RAC00_STR-TEXT1 sy-vline
WA_RAC00_STR-SUM_445 sy-vline
WA_RAC00_STR-XSUMM sy-vline
WA_RAC00_STR-VORGATX sy-vline
WA_RAC00_STR-ANTWT_TXT sy-vline
WA_RAC00_STR-DOMTX sy-vline
WA_RAC00_STR-DOMTX1 sy-vline
WA_RAC00_STR-DOMTX2 sy-vline
WA_RAC00_STR-DOMTX3 sy-vline
WA_RAC00_STR-XPROD sy-vline
WA_RAC00_STR-XALTD sy-vline
WA_RAC00_STR-XTEST sy-vline
WA_RAC00_STR-BUHBKTX sy-vline
WA_RAC00_STR-XREIHE sy-vline
WA_RAC00_STR-X1MONAT sy-vline
WA_RAC00_STR-X2MONAT sy-vline
WA_RAC00_STR-X3MONAT sy-vline
WA_RAC00_STR-X6MONAT sy-vline
WA_RAC00_STR-XJAHR sy-vline
WA_RAC00_STR-XEXPERT sy-vline
WA_RAC00_STR-XPOST sy-vline
WA_RAC00_STR-XNOTPOST sy-vline
WA_RAC00_STR-XAFAPOST sy-vline
WA_RAC00_STR-XPOSTPER sy-vline
WA_RAC00_STR-XPOSTDIR sy-vline
WA_RAC00_STR-XNOTACTIVE sy-vline
WA_RAC00_STR-XPREPARE sy-vline
WA_RAC00_STR-XACTIVE sy-vline
WA_RAC00_STR-XACTIVE_INVALID sy-vline
WA_RAC00_STR-XINVALID sy-vline
WA_RAC00_STR-ACCPR_TXT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.