ABAP Select data from SAP table RGUD0 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 RGUD0 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 RGUD0. 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 RGUD0 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_RGUD0 TYPE STANDARD TABLE OF RGUD0,
      WA_RGUD0 TYPE RGUD0,
      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: <RGUD0> TYPE RGUD0.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RGUD0
*  INTO TABLE @DATA(IT_RGUD02).
*--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_RGUD0 INDEX 1 INTO DATA(WA_RGUD02).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RGUD0 ASSIGNING <RGUD0>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RGUD0>-LEDGER = 1.
<RGUD0>-PLAN_DATA = 1.
<RGUD0>-ALLOC_DATA = 1.
<RGUD0>-PERIOD1 = 1.
<RGUD0>-PERIOD2 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RGUD0-UTAB, sy-vline,
WA_RGUD0-TEXT, sy-vline,
WA_RGUD0-VONWERT, sy-vline,
WA_RGUD0-BISWERT, sy-vline,
WA_RGUD0-HIDE, sy-vline,
WA_RGUD0-SEITE, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RGUD0 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_RGUD0 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_RGUD0 INTO WA_RGUD0. *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 LEDGER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RGUD0-LEDGER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RGUD0-LEDGER.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit AC172, internal->external for field VTCUR CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_RGUD0-VTCUR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RGUD0-VTCUR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VLCUR CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_RGUD0-VLCUR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RGUD0-VLCUR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VGCUR CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_RGUD0-VGCUR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RGUD0-VGCUR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VTCUR_SUM CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_RGUD0-VTCUR_SUM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RGUD0-VTCUR_SUM.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

*Conversion exit AC172, internal->external for field VQUANT1 CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_RGUD0-VQUANT1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RGUD0-VQUANT1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC172, internal->external for field VQUANT2 CALL FUNCTION 'CONVERSION_EXIT_AC172_OUTPUT' EXPORTING input = WA_RGUD0-VQUANT2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RGUD0-VQUANT2.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit GJAHR, internal->external for field REFJAHR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_RGUD0-REFJAHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RGUD0-REFJAHR.
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_RGUD0_STR,
LEDGER TYPE STRING,
PLAN_DATA TYPE STRING,
ALLOC_DATA TYPE STRING,
PERIOD1 TYPE STRING,
PERIOD2 TYPE STRING,
UTAB TYPE STRING,
TEXT TYPE STRING,
VONWERT TYPE STRING,
BISWERT TYPE STRING,
HIDE TYPE STRING,
SEITE TYPE STRING,
MAXSEITE TYPE STRING,
DISP_HEAD TYPE STRING,
DISP_KEY TYPE STRING,
RTCUR TYPE STRING,
LCURR TYPE STRING,
GCURR TYPE STRING,
RUNIT TYPE STRING,
MSEHT TYPE STRING,
POPER TYPE STRING,
VTCUR TYPE STRING,
VLCUR TYPE STRING,
VGCUR TYPE STRING,
QUANT TYPE STRING,
QU_TEXT TYPE STRING,
QU_TEXT1 TYPE STRING,
VTCUR_SUM TYPE STRING,
RTCUR_SUM TYPE STRING,
POPER_2 TYPE STRING,
DOCNR TYPE STRING,
DOCLN TYPE STRING,
PUSER TYPE STRING,
DOCTY TYPE STRING,
PDATE TYPE STRING,
ACTIV TYPE STRING,
TEXT_1 TYPE STRING,
TEXT_2 TYPE STRING,
TEXT_3 TYPE STRING,
MAXSEITE_2 TYPE STRING,
AUNIT TYPE STRING,
AQUNT TYPE STRING,
AMSEHT TYPE STRING,
GOTORECORD TYPE STRING,
DOCNR_FROM TYPE STRING,
DOCNR_TO TYPE STRING,
RLDNR TYPE STRING,
DOCCT TYPE STRING,
BUKRS TYPE STRING,
RCOMP TYPE STRING,
UQUANT1 TYPE STRING,
UQUANT2 TYPE STRING,
VQUANT1 TYPE STRING,
VQUANT2 TYPE STRING,
REFBEL TYPE STRING,
REFJAHR TYPE STRING,
REFZEI TYPE STRING,
REFDOCCT TYPE STRING,
HW_10 TYPE STRING,
HW_15 TYPE STRING,
KW_10 TYPE STRING,
KW_15 TYPE STRING,END OF T_EKKO_STR. DATA: WA_RGUD0_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_RGUD0_STR-LEDGER sy-vline
WA_RGUD0_STR-PLAN_DATA sy-vline
WA_RGUD0_STR-ALLOC_DATA sy-vline
WA_RGUD0_STR-PERIOD1 sy-vline
WA_RGUD0_STR-PERIOD2 sy-vline
WA_RGUD0_STR-UTAB sy-vline
WA_RGUD0_STR-TEXT sy-vline
WA_RGUD0_STR-VONWERT sy-vline
WA_RGUD0_STR-BISWERT sy-vline
WA_RGUD0_STR-HIDE sy-vline
WA_RGUD0_STR-SEITE sy-vline
WA_RGUD0_STR-MAXSEITE sy-vline
WA_RGUD0_STR-DISP_HEAD sy-vline
WA_RGUD0_STR-DISP_KEY sy-vline
WA_RGUD0_STR-RTCUR sy-vline
WA_RGUD0_STR-LCURR sy-vline
WA_RGUD0_STR-GCURR sy-vline
WA_RGUD0_STR-RUNIT sy-vline
WA_RGUD0_STR-MSEHT sy-vline
WA_RGUD0_STR-POPER sy-vline
WA_RGUD0_STR-VTCUR sy-vline
WA_RGUD0_STR-VLCUR sy-vline
WA_RGUD0_STR-VGCUR sy-vline
WA_RGUD0_STR-QUANT sy-vline
WA_RGUD0_STR-QU_TEXT sy-vline
WA_RGUD0_STR-QU_TEXT1 sy-vline
WA_RGUD0_STR-VTCUR_SUM sy-vline
WA_RGUD0_STR-RTCUR_SUM sy-vline
WA_RGUD0_STR-POPER_2 sy-vline
WA_RGUD0_STR-DOCNR sy-vline
WA_RGUD0_STR-DOCLN sy-vline
WA_RGUD0_STR-PUSER sy-vline
WA_RGUD0_STR-DOCTY sy-vline
WA_RGUD0_STR-PDATE sy-vline
WA_RGUD0_STR-ACTIV sy-vline
WA_RGUD0_STR-TEXT_1 sy-vline
WA_RGUD0_STR-TEXT_2 sy-vline
WA_RGUD0_STR-TEXT_3 sy-vline
WA_RGUD0_STR-MAXSEITE_2 sy-vline
WA_RGUD0_STR-AUNIT sy-vline
WA_RGUD0_STR-AQUNT sy-vline
WA_RGUD0_STR-AMSEHT sy-vline
WA_RGUD0_STR-GOTORECORD sy-vline
WA_RGUD0_STR-DOCNR_FROM sy-vline
WA_RGUD0_STR-DOCNR_TO sy-vline
WA_RGUD0_STR-RLDNR sy-vline
WA_RGUD0_STR-DOCCT sy-vline
WA_RGUD0_STR-BUKRS sy-vline
WA_RGUD0_STR-RCOMP sy-vline
WA_RGUD0_STR-UQUANT1 sy-vline
WA_RGUD0_STR-UQUANT2 sy-vline
WA_RGUD0_STR-VQUANT1 sy-vline
WA_RGUD0_STR-VQUANT2 sy-vline
WA_RGUD0_STR-REFBEL sy-vline
WA_RGUD0_STR-REFJAHR sy-vline
WA_RGUD0_STR-REFZEI sy-vline
WA_RGUD0_STR-REFDOCCT sy-vline
WA_RGUD0_STR-HW_10 sy-vline
WA_RGUD0_STR-HW_15 sy-vline
WA_RGUD0_STR-KW_10 sy-vline
WA_RGUD0_STR-KW_15 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.