ABAP Select data from SAP table RFCGO 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 RFCGO 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 RFCGO. 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 RFCGO 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_RFCGO TYPE STANDARD TABLE OF RFCGO,
      WA_RFCGO TYPE RFCGO,
      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: <RFCGO> TYPE RFCGO.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RFCGO
*  INTO TABLE @DATA(IT_RFCGO2).
*--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_RFCGO INDEX 1 INTO DATA(WA_RFCGO2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RFCGO ASSIGNING <RFCGO>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RFCGO>-UNAME = 1.
<RFCGO>-XFORM1 = 1.
<RFCGO>-FORM1 = 1.
<RFCGO>-LANGU1 = 1.
<RFCGO>-XFORM2 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RFCGO-FORM2, sy-vline,
WA_RFCGO-LANGU2, sy-vline,
WA_RFCGO-XFORM3, sy-vline,
WA_RFCGO-FORM3, sy-vline,
WA_RFCGO-LANGU3, sy-vline,
WA_RFCGO-XFORM4, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RFCGO 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_RFCGO 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_RFCGO INTO WA_RFCGO. *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 ISOLA, internal->external for field LANGU1 CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_RFCGO-LANGU1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RFCGO-LANGU1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ISOLA, internal->external for field LANGU2 CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_RFCGO-LANGU2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RFCGO-LANGU2.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ISOLA, internal->external for field LANGU3 CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_RFCGO-LANGU3 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RFCGO-LANGU3.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ISOLA, internal->external for field LANGU4 CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_RFCGO-LANGU4 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RFCGO-LANGU4.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ISOLA, internal->external for field LANGU5 CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_RFCGO-LANGU5 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RFCGO-LANGU5.
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_RFCGO_STR,
UNAME TYPE STRING,
XFORM1 TYPE STRING,
FORM1 TYPE STRING,
LANGU1 TYPE STRING,
XFORM2 TYPE STRING,
FORM2 TYPE STRING,
LANGU2 TYPE STRING,
XFORM3 TYPE STRING,
FORM3 TYPE STRING,
LANGU3 TYPE STRING,
XFORM4 TYPE STRING,
FORM4 TYPE STRING,
LANGU4 TYPE STRING,
XFORM5 TYPE STRING,
FORM5 TYPE STRING,
LANGU5 TYPE STRING,
PATHHEADER TYPE STRING,
EXTHEADER TYPE STRING,
PATHSOURCE TYPE STRING,
EXTSOURCE TYPE STRING,
PATHOTHER TYPE STRING,
EXTOTHER TYPE STRING,
CODEPAGE TYPE STRING,
XOPTIONS TYPE STRING,
XDISPLAY TYPE STRING,
XEDIT TYPE STRING,
XDOWNLOAD TYPE STRING,
XCLEAR TYPE STRING,
XSTATUS TYPE STRING,
XONCE TYPE STRING,
XFILENLEN TYPE STRING,
FILENLEN TYPE STRING,
XAPPEND TYPE STRING,
XCOMMENT TYPE STRING,
XPROGNAME TYPE STRING,
XDESTINA TYPE STRING,END OF T_EKKO_STR. DATA: WA_RFCGO_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_RFCGO_STR-UNAME sy-vline
WA_RFCGO_STR-XFORM1 sy-vline
WA_RFCGO_STR-FORM1 sy-vline
WA_RFCGO_STR-LANGU1 sy-vline
WA_RFCGO_STR-XFORM2 sy-vline
WA_RFCGO_STR-FORM2 sy-vline
WA_RFCGO_STR-LANGU2 sy-vline
WA_RFCGO_STR-XFORM3 sy-vline
WA_RFCGO_STR-FORM3 sy-vline
WA_RFCGO_STR-LANGU3 sy-vline
WA_RFCGO_STR-XFORM4 sy-vline
WA_RFCGO_STR-FORM4 sy-vline
WA_RFCGO_STR-LANGU4 sy-vline
WA_RFCGO_STR-XFORM5 sy-vline
WA_RFCGO_STR-FORM5 sy-vline
WA_RFCGO_STR-LANGU5 sy-vline
WA_RFCGO_STR-PATHHEADER sy-vline
WA_RFCGO_STR-EXTHEADER sy-vline
WA_RFCGO_STR-PATHSOURCE sy-vline
WA_RFCGO_STR-EXTSOURCE sy-vline
WA_RFCGO_STR-PATHOTHER sy-vline
WA_RFCGO_STR-EXTOTHER sy-vline
WA_RFCGO_STR-CODEPAGE sy-vline
WA_RFCGO_STR-XOPTIONS sy-vline
WA_RFCGO_STR-XDISPLAY sy-vline
WA_RFCGO_STR-XEDIT sy-vline
WA_RFCGO_STR-XDOWNLOAD sy-vline
WA_RFCGO_STR-XCLEAR sy-vline
WA_RFCGO_STR-XSTATUS sy-vline
WA_RFCGO_STR-XONCE sy-vline
WA_RFCGO_STR-XFILENLEN sy-vline
WA_RFCGO_STR-FILENLEN sy-vline
WA_RFCGO_STR-XAPPEND sy-vline
WA_RFCGO_STR-XCOMMENT sy-vline
WA_RFCGO_STR-XPROGNAME sy-vline
WA_RFCGO_STR-XDESTINA sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.