ABAP Select data from SAP table RCRCO_A 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 RCRCO_A 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 RCRCO_A. 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 RCRCO_A 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_RCRCO_A TYPE STANDARD TABLE OF RCRCO_A,
      WA_RCRCO_A TYPE RCRCO_A,
      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: <RCRCO_A> TYPE RCRCO_A.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RCRCO_A
*  INTO TABLE @DATA(IT_RCRCO_A2).
*--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_RCRCO_A INDEX 1 INTO DATA(WA_RCRCO_A2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RCRCO_A ASSIGNING <RCRCO_A>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RCRCO_A>-MANDT = 1.
<RCRCO_A>-OBJTY = 1.
<RCRCO_A>-OBJID = 1.
<RCRCO_A>-ENDDA = 1.
<RCRCO_A>-BEGDA = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RCRCO_A-AEDAT, sy-vline,
WA_RCRCO_A-AENAM, sy-vline,
WA_RCRCO_A-KOSTL, sy-vline,
WA_RCRCO_A-KOKRS, sy-vline,
WA_RCRCO_A-FOR01, sy-vline,
WA_RCRCO_A-FOR02, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RCRCO_A 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_RCRCO_A 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_RCRCO_A INTO WA_RCRCO_A. *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 KOSTL CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RCRCO_A-KOSTL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RCRCO_A-KOSTL.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit CUNIT, internal->external for field LEINH1 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_RCRCO_A-LEINH1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RCRCO_A-LEINH1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field LEINH2 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_RCRCO_A-LEINH2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RCRCO_A-LEINH2.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field LEINH3 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_RCRCO_A-LEINH3 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RCRCO_A-LEINH3.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field LEINH4 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_RCRCO_A-LEINH4 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RCRCO_A-LEINH4.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field LEINH5 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_RCRCO_A-LEINH5 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RCRCO_A-LEINH5.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field LEINH6 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_RCRCO_A-LEINH6 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RCRCO_A-LEINH6.
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_RCRCO_A_STR,
MANDT TYPE STRING,
OBJTY TYPE STRING,
OBJID TYPE STRING,
ENDDA TYPE STRING,
BEGDA TYPE STRING,
AEDAT TYPE STRING,
AENAM TYPE STRING,
KOSTL TYPE STRING,
KOKRS TYPE STRING,
FOR01 TYPE STRING,
FOR02 TYPE STRING,
FOR03 TYPE STRING,
FOR04 TYPE STRING,
FOR05 TYPE STRING,
FOR06 TYPE STRING,
LAR01 TYPE STRING,
LAR02 TYPE STRING,
LAR03 TYPE STRING,
LAR04 TYPE STRING,
LAR05 TYPE STRING,
LAR06 TYPE STRING,
LAR01_REF TYPE STRING,
LAR02_REF TYPE STRING,
LAR03_REF TYPE STRING,
LAR04_REF TYPE STRING,
LAR05_REF TYPE STRING,
LAR06_REF TYPE STRING,
LARN1 TYPE STRING,
LARN1_REF TYPE STRING,
FORN1 TYPE STRING,
PRZ01 TYPE STRING,
PRZ01_REF TYPE STRING,
FORP1 TYPE STRING,
ACTXY1 TYPE STRING,
ACTXK1 TYPE STRING,
LEINH1 TYPE STRING,
BDE1 TYPE STRING,
SAKL1 TYPE STRING,
ACTXY2 TYPE STRING,
ACTXK2 TYPE STRING,
LEINH2 TYPE STRING,
BDE2 TYPE STRING,
SAKL2 TYPE STRING,
ACTXY3 TYPE STRING,
ACTXK3 TYPE STRING,
LEINH3 TYPE STRING,
BDE3 TYPE STRING,
SAKL3 TYPE STRING,
ACTXY4 TYPE STRING,
ACTXK4 TYPE STRING,
LEINH4 TYPE STRING,
BDE4 TYPE STRING,
SAKL4 TYPE STRING,
ACTXY5 TYPE STRING,
ACTXK5 TYPE STRING,
LEINH5 TYPE STRING,
BDE5 TYPE STRING,
SAKL5 TYPE STRING,
ACTXY6 TYPE STRING,
ACTXK6 TYPE STRING,
LEINH6 TYPE STRING,
BDE6 TYPE STRING,
SAKL6 TYPE STRING,
BDEP TYPE STRING,
SAKLP TYPE STRING,END OF T_EKKO_STR. DATA: WA_RCRCO_A_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_RCRCO_A_STR-MANDT sy-vline
WA_RCRCO_A_STR-OBJTY sy-vline
WA_RCRCO_A_STR-OBJID sy-vline
WA_RCRCO_A_STR-ENDDA sy-vline
WA_RCRCO_A_STR-BEGDA sy-vline
WA_RCRCO_A_STR-AEDAT sy-vline
WA_RCRCO_A_STR-AENAM sy-vline
WA_RCRCO_A_STR-KOSTL sy-vline
WA_RCRCO_A_STR-KOKRS sy-vline
WA_RCRCO_A_STR-FOR01 sy-vline
WA_RCRCO_A_STR-FOR02 sy-vline
WA_RCRCO_A_STR-FOR03 sy-vline
WA_RCRCO_A_STR-FOR04 sy-vline
WA_RCRCO_A_STR-FOR05 sy-vline
WA_RCRCO_A_STR-FOR06 sy-vline
WA_RCRCO_A_STR-LAR01 sy-vline
WA_RCRCO_A_STR-LAR02 sy-vline
WA_RCRCO_A_STR-LAR03 sy-vline
WA_RCRCO_A_STR-LAR04 sy-vline
WA_RCRCO_A_STR-LAR05 sy-vline
WA_RCRCO_A_STR-LAR06 sy-vline
WA_RCRCO_A_STR-LAR01_REF sy-vline
WA_RCRCO_A_STR-LAR02_REF sy-vline
WA_RCRCO_A_STR-LAR03_REF sy-vline
WA_RCRCO_A_STR-LAR04_REF sy-vline
WA_RCRCO_A_STR-LAR05_REF sy-vline
WA_RCRCO_A_STR-LAR06_REF sy-vline
WA_RCRCO_A_STR-LARN1 sy-vline
WA_RCRCO_A_STR-LARN1_REF sy-vline
WA_RCRCO_A_STR-FORN1 sy-vline
WA_RCRCO_A_STR-PRZ01 sy-vline
WA_RCRCO_A_STR-PRZ01_REF sy-vline
WA_RCRCO_A_STR-FORP1 sy-vline
WA_RCRCO_A_STR-ACTXY1 sy-vline
WA_RCRCO_A_STR-ACTXK1 sy-vline
WA_RCRCO_A_STR-LEINH1 sy-vline
WA_RCRCO_A_STR-BDE1 sy-vline
WA_RCRCO_A_STR-SAKL1 sy-vline
WA_RCRCO_A_STR-ACTXY2 sy-vline
WA_RCRCO_A_STR-ACTXK2 sy-vline
WA_RCRCO_A_STR-LEINH2 sy-vline
WA_RCRCO_A_STR-BDE2 sy-vline
WA_RCRCO_A_STR-SAKL2 sy-vline
WA_RCRCO_A_STR-ACTXY3 sy-vline
WA_RCRCO_A_STR-ACTXK3 sy-vline
WA_RCRCO_A_STR-LEINH3 sy-vline
WA_RCRCO_A_STR-BDE3 sy-vline
WA_RCRCO_A_STR-SAKL3 sy-vline
WA_RCRCO_A_STR-ACTXY4 sy-vline
WA_RCRCO_A_STR-ACTXK4 sy-vline
WA_RCRCO_A_STR-LEINH4 sy-vline
WA_RCRCO_A_STR-BDE4 sy-vline
WA_RCRCO_A_STR-SAKL4 sy-vline
WA_RCRCO_A_STR-ACTXY5 sy-vline
WA_RCRCO_A_STR-ACTXK5 sy-vline
WA_RCRCO_A_STR-LEINH5 sy-vline
WA_RCRCO_A_STR-BDE5 sy-vline
WA_RCRCO_A_STR-SAKL5 sy-vline
WA_RCRCO_A_STR-ACTXY6 sy-vline
WA_RCRCO_A_STR-ACTXK6 sy-vline
WA_RCRCO_A_STR-LEINH6 sy-vline
WA_RCRCO_A_STR-BDE6 sy-vline
WA_RCRCO_A_STR-SAKL6 sy-vline
WA_RCRCO_A_STR-BDEP sy-vline
WA_RCRCO_A_STR-SAKLP sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.