ABAP Select data from SAP table RCAPTR_SOURCE 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 RCAPTR_SOURCE 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 RCAPTR_SOURCE. 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 RCAPTR_SOURCE 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_RCAPTR_SOURCE TYPE STANDARD TABLE OF RCAPTR_SOURCE,
      WA_RCAPTR_SOURCE TYPE RCAPTR_SOURCE,
      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: <RCAPTR_SOURCE> TYPE RCAPTR_SOURCE.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RCAPTR_SOURCE
*  INTO TABLE @DATA(IT_RCAPTR_SOURCE2).
*--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_RCAPTR_SOURCE INDEX 1 INTO DATA(WA_RCAPTR_SOURCE2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RCAPTR_SOURCE ASSIGNING <RCAPTR_SOURCE>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RCAPTR_SOURCE>-IINCLDVALUT_S = 1.
<RCAPTR_SOURCE>-PARTNR_S = 1.
<RCAPTR_SOURCE>-UPOSCURR_S = 1.
<RCAPTR_SOURCE>-ARECA_S = 1.
<RCAPTR_SOURCE>-ARECAAV_S = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RCAPTR_SOURCE-ARECATF_S, sy-vline,
WA_RCAPTR_SOURCE-ADIOB_S, sy-vline,
WA_RCAPTR_SOURCE-ADIOBAV_S, sy-vline,
WA_RCAPTR_SOURCE-ADIOBTF_S, sy-vline,
WA_RCAPTR_SOURCE-AREDIS_S, sy-vline,
WA_RCAPTR_SOURCE-APREDIS_S, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RCAPTR_SOURCE 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_RCAPTR_SOURCE 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_RCAPTR_SOURCE INTO WA_RCAPTR_SOURCE. *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 PARTNR_S CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RCAPTR_SOURCE-PARTNR_S IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RCAPTR_SOURCE-PARTNR_S.
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_RCAPTR_SOURCE_STR,
IINCLDVALUT_S TYPE STRING,
PARTNR_S TYPE STRING,
UPOSCURR_S TYPE STRING,
ARECA_S TYPE STRING,
ARECAAV_S TYPE STRING,
ARECATF_S TYPE STRING,
ADIOB_S TYPE STRING,
ADIOBAV_S TYPE STRING,
ADIOBTF_S TYPE STRING,
AREDIS_S TYPE STRING,
APREDIS_S TYPE STRING,
IREPSE_S TYPE STRING,
ANSEREP_S TYPE STRING,
FTRECAOF_S TYPE STRING,
FTREDISOF_S TYPE STRING,
FTPREDISOF_S TYPE STRING,
CTDIOBOF_S TYPE STRING,
CTREPSE_S TYPE STRING,
CTCOMOF_S TYPE STRING,
MSBOTERM_S TYPE STRING,
CTREP_S TYPE STRING,
DCOEFFR_S TYPE STRING,
DBEGREP_S TYPE STRING,
PREPCHG_S TYPE STRING,
AREPCHG_S TYPE STRING,
AREPCHGBAS_S TYPE STRING,
ARECATFLC_S TYPE STRING,
MOFMETHOD_S TYPE STRING,
ISAVTERMEND_S TYPE STRING,
DEOTOLD_S TYPE STRING,
DEOT_S TYPE STRING,
APRREDIS_S TYPE STRING,
APRPREDIS_S TYPE STRING,
APRNSEREP_S TYPE STRING,
ATFVALCAOF_S TYPE STRING,
ATFSCHEDREPOF_S TYPE STRING,
ATFUNSCHREPOF_S TYPE STRING,
AVALCA_S TYPE STRING,
ASUMICSCHREP_S TYPE STRING,
ASUMICUNSCHREP_S TYPE STRING,
FTVALCAOF_S TYPE STRING,
FTSCHEDREPOF_S TYPE STRING,
FTUNSCHEDROF_S TYPE STRING,END OF T_EKKO_STR. DATA: WA_RCAPTR_SOURCE_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_RCAPTR_SOURCE_STR-IINCLDVALUT_S sy-vline
WA_RCAPTR_SOURCE_STR-PARTNR_S sy-vline
WA_RCAPTR_SOURCE_STR-UPOSCURR_S sy-vline
WA_RCAPTR_SOURCE_STR-ARECA_S sy-vline
WA_RCAPTR_SOURCE_STR-ARECAAV_S sy-vline
WA_RCAPTR_SOURCE_STR-ARECATF_S sy-vline
WA_RCAPTR_SOURCE_STR-ADIOB_S sy-vline
WA_RCAPTR_SOURCE_STR-ADIOBAV_S sy-vline
WA_RCAPTR_SOURCE_STR-ADIOBTF_S sy-vline
WA_RCAPTR_SOURCE_STR-AREDIS_S sy-vline
WA_RCAPTR_SOURCE_STR-APREDIS_S sy-vline
WA_RCAPTR_SOURCE_STR-IREPSE_S sy-vline
WA_RCAPTR_SOURCE_STR-ANSEREP_S sy-vline
WA_RCAPTR_SOURCE_STR-FTRECAOF_S sy-vline
WA_RCAPTR_SOURCE_STR-FTREDISOF_S sy-vline
WA_RCAPTR_SOURCE_STR-FTPREDISOF_S sy-vline
WA_RCAPTR_SOURCE_STR-CTDIOBOF_S sy-vline
WA_RCAPTR_SOURCE_STR-CTREPSE_S sy-vline
WA_RCAPTR_SOURCE_STR-CTCOMOF_S sy-vline
WA_RCAPTR_SOURCE_STR-MSBOTERM_S sy-vline
WA_RCAPTR_SOURCE_STR-CTREP_S sy-vline
WA_RCAPTR_SOURCE_STR-DCOEFFR_S sy-vline
WA_RCAPTR_SOURCE_STR-DBEGREP_S sy-vline
WA_RCAPTR_SOURCE_STR-PREPCHG_S sy-vline
WA_RCAPTR_SOURCE_STR-AREPCHG_S sy-vline
WA_RCAPTR_SOURCE_STR-AREPCHGBAS_S sy-vline
WA_RCAPTR_SOURCE_STR-ARECATFLC_S sy-vline
WA_RCAPTR_SOURCE_STR-MOFMETHOD_S sy-vline
WA_RCAPTR_SOURCE_STR-ISAVTERMEND_S sy-vline
WA_RCAPTR_SOURCE_STR-DEOTOLD_S sy-vline
WA_RCAPTR_SOURCE_STR-DEOT_S sy-vline
WA_RCAPTR_SOURCE_STR-APRREDIS_S sy-vline
WA_RCAPTR_SOURCE_STR-APRPREDIS_S sy-vline
WA_RCAPTR_SOURCE_STR-APRNSEREP_S sy-vline
WA_RCAPTR_SOURCE_STR-ATFVALCAOF_S sy-vline
WA_RCAPTR_SOURCE_STR-ATFSCHEDREPOF_S sy-vline
WA_RCAPTR_SOURCE_STR-ATFUNSCHREPOF_S sy-vline
WA_RCAPTR_SOURCE_STR-AVALCA_S sy-vline
WA_RCAPTR_SOURCE_STR-ASUMICSCHREP_S sy-vline
WA_RCAPTR_SOURCE_STR-ASUMICUNSCHREP_S sy-vline
WA_RCAPTR_SOURCE_STR-FTVALCAOF_S sy-vline
WA_RCAPTR_SOURCE_STR-FTSCHEDREPOF_S sy-vline
WA_RCAPTR_SOURCE_STR-FTUNSCHEDROF_S sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.