ABAP Select data from SAP table RM63A_VGL 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 RM63A_VGL 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 RM63A_VGL. 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 RM63A_VGL 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_RM63A_VGL TYPE STANDARD TABLE OF RM63A_VGL,
      WA_RM63A_VGL TYPE RM63A_VGL,
      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: <RM63A_VGL> TYPE RM63A_VGL.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RM63A_VGL
*  INTO TABLE @DATA(IT_RM63A_VGL2).
*--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_RM63A_VGL INDEX 1 INTO DATA(WA_RM63A_VGL2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RM63A_VGL ASSIGNING <RM63A_VGL>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RM63A_VGL>-TPLNR = 1.
<RM63A_VGL>-PLTXT = 1.
<RM63A_VGL>-HEQNR = 1.
<RM63A_VGL>-HEQTX = 1.
<RM63A_VGL>-ABCKZ = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RM63A_VGL-EQFNR, sy-vline,
WA_RM63A_VGL-PPSID, sy-vline,
WA_RM63A_VGL-APKTEXT, sy-vline,
WA_RM63A_VGL-GSBER, sy-vline,
WA_RM63A_VGL-DAUFN, sy-vline,
WA_RM63A_VGL-AUFNR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RM63A_VGL 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_RM63A_VGL 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_RM63A_VGL INTO WA_RM63A_VGL. *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 TPLNR, internal->external for field TPLNR CALL FUNCTION 'CONVERSION_EXIT_TPLNR_OUTPUT' EXPORTING input = WA_RM63A_VGL-TPLNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RM63A_VGL-TPLNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

*Conversion exit ABPSP, internal->external for field PROID CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_RM63A_VGL-PROID IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RM63A_VGL-PROID.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

*Conversion exit ABPSP, internal->external for field PROIDEQ CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_RM63A_VGL-PROIDEQ IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RM63A_VGL-PROIDEQ.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field ADRNREQ CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RM63A_VGL-ADRNREQ IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RM63A_VGL-ADRNREQ.
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_RM63A_VGL_STR,
TPLNR TYPE STRING,
PLTXT TYPE STRING,
HEQNR TYPE STRING,
HEQTX TYPE STRING,
ABCKZ TYPE STRING,
EQFNR TYPE STRING,
PPSID TYPE STRING,
APKTEXT TYPE STRING,
GSBER TYPE STRING,
DAUFN TYPE STRING,
AUFNR TYPE STRING,
IWERK TYPE STRING,
INGRP TYPE STRING,
WERGW TYPE STRING,
GEWRK TYPE STRING,
VAPKTX TYPE STRING,
SWERK TYPE STRING,
STORT TYPE STRING,
BEBER TYPE STRING,
MSGRP TYPE STRING,
KOSTL TYPE STRING,
PROID TYPE STRING,
RBNR TYPE STRING,
RBTXT TYPE STRING,
EQUNR TYPE STRING,
ESTAE TYPE STRING,
EQKTX TYPE STRING,
VKORG TYPE STRING,
VKOTX TYPE STRING,
VTWEG TYPE STRING,
VTWTX TYPE STRING,
SPART TYPE STRING,
SPATX TYPE STRING,
ADRNR TYPE STRING,
ABCKZEQ TYPE STRING,
GSBEREQ TYPE STRING,
PPSIDEQ TYPE STRING,
APKTEXTEQ TYPE STRING,
EQFNREQ TYPE STRING,
DAUFNEQ TYPE STRING,
AUFNREQ TYPE STRING,
IWERKEQ TYPE STRING,
INGRPEQ TYPE STRING,
WERGWEQ TYPE STRING,
GEWRKEQ TYPE STRING,
VAPKTXEQ TYPE STRING,
SWERKEQ TYPE STRING,
STORTEQ TYPE STRING,
BEBEREQ TYPE STRING,
MSGRPEQ TYPE STRING,
KOSTLEQ TYPE STRING,
PROIDEQ TYPE STRING,
RBNREQ TYPE STRING,
RBTXTEQ TYPE STRING,
VKORGEQ TYPE STRING,
VKOTXEQ TYPE STRING,
VTWEGEQ TYPE STRING,
VTWTXEQ TYPE STRING,
SPARTEQ TYPE STRING,
SPATXEQ TYPE STRING,
ADRNREQ TYPE STRING,
EQ1 TYPE STRING,
MA1 TYPE STRING,
EQ2 TYPE STRING,
MA2 TYPE STRING,
EQ3 TYPE STRING,
MA3 TYPE STRING,
EQ4 TYPE STRING,
MA4 TYPE STRING,
EQ5 TYPE STRING,
MA5 TYPE STRING,
EQ6 TYPE STRING,
MA6 TYPE STRING,
EQ7 TYPE STRING,
MA7 TYPE STRING,
EQ8 TYPE STRING,
MA8 TYPE STRING,
EQ9 TYPE STRING,
FL9 TYPE STRING,
MA9 TYPE STRING,
EQ10 TYPE STRING,
MA10 TYPE STRING,
EQ11 TYPE STRING,
MA11 TYPE STRING,
EQ12 TYPE STRING,
MA12 TYPE STRING,
EQ13 TYPE STRING,
MA13 TYPE STRING,
EQ14 TYPE STRING,
MA14 TYPE STRING,
EQ15 TYPE STRING,
MA15 TYPE STRING,
EQ16 TYPE STRING,
MA16 TYPE STRING,
EQ17 TYPE STRING,
MA17 TYPE STRING,
EQ18 TYPE STRING,
MA18 TYPE STRING,
EQ19 TYPE STRING,
MA19 TYPE STRING,
EQ20 TYPE STRING,
MA20 TYPE STRING,END OF T_EKKO_STR. DATA: WA_RM63A_VGL_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_RM63A_VGL_STR-TPLNR sy-vline
WA_RM63A_VGL_STR-PLTXT sy-vline
WA_RM63A_VGL_STR-HEQNR sy-vline
WA_RM63A_VGL_STR-HEQTX sy-vline
WA_RM63A_VGL_STR-ABCKZ sy-vline
WA_RM63A_VGL_STR-EQFNR sy-vline
WA_RM63A_VGL_STR-PPSID sy-vline
WA_RM63A_VGL_STR-APKTEXT sy-vline
WA_RM63A_VGL_STR-GSBER sy-vline
WA_RM63A_VGL_STR-DAUFN sy-vline
WA_RM63A_VGL_STR-AUFNR sy-vline
WA_RM63A_VGL_STR-IWERK sy-vline
WA_RM63A_VGL_STR-INGRP sy-vline
WA_RM63A_VGL_STR-WERGW sy-vline
WA_RM63A_VGL_STR-GEWRK sy-vline
WA_RM63A_VGL_STR-VAPKTX sy-vline
WA_RM63A_VGL_STR-SWERK sy-vline
WA_RM63A_VGL_STR-STORT sy-vline
WA_RM63A_VGL_STR-BEBER sy-vline
WA_RM63A_VGL_STR-MSGRP sy-vline
WA_RM63A_VGL_STR-KOSTL sy-vline
WA_RM63A_VGL_STR-PROID sy-vline
WA_RM63A_VGL_STR-RBNR sy-vline
WA_RM63A_VGL_STR-RBTXT sy-vline
WA_RM63A_VGL_STR-EQUNR sy-vline
WA_RM63A_VGL_STR-ESTAE sy-vline
WA_RM63A_VGL_STR-EQKTX sy-vline
WA_RM63A_VGL_STR-VKORG sy-vline
WA_RM63A_VGL_STR-VKOTX sy-vline
WA_RM63A_VGL_STR-VTWEG sy-vline
WA_RM63A_VGL_STR-VTWTX sy-vline
WA_RM63A_VGL_STR-SPART sy-vline
WA_RM63A_VGL_STR-SPATX sy-vline
WA_RM63A_VGL_STR-ADRNR sy-vline
WA_RM63A_VGL_STR-ABCKZEQ sy-vline
WA_RM63A_VGL_STR-GSBEREQ sy-vline
WA_RM63A_VGL_STR-PPSIDEQ sy-vline
WA_RM63A_VGL_STR-APKTEXTEQ sy-vline
WA_RM63A_VGL_STR-EQFNREQ sy-vline
WA_RM63A_VGL_STR-DAUFNEQ sy-vline
WA_RM63A_VGL_STR-AUFNREQ sy-vline
WA_RM63A_VGL_STR-IWERKEQ sy-vline
WA_RM63A_VGL_STR-INGRPEQ sy-vline
WA_RM63A_VGL_STR-WERGWEQ sy-vline
WA_RM63A_VGL_STR-GEWRKEQ sy-vline
WA_RM63A_VGL_STR-VAPKTXEQ sy-vline
WA_RM63A_VGL_STR-SWERKEQ sy-vline
WA_RM63A_VGL_STR-STORTEQ sy-vline
WA_RM63A_VGL_STR-BEBEREQ sy-vline
WA_RM63A_VGL_STR-MSGRPEQ sy-vline
WA_RM63A_VGL_STR-KOSTLEQ sy-vline
WA_RM63A_VGL_STR-PROIDEQ sy-vline
WA_RM63A_VGL_STR-RBNREQ sy-vline
WA_RM63A_VGL_STR-RBTXTEQ sy-vline
WA_RM63A_VGL_STR-VKORGEQ sy-vline
WA_RM63A_VGL_STR-VKOTXEQ sy-vline
WA_RM63A_VGL_STR-VTWEGEQ sy-vline
WA_RM63A_VGL_STR-VTWTXEQ sy-vline
WA_RM63A_VGL_STR-SPARTEQ sy-vline
WA_RM63A_VGL_STR-SPATXEQ sy-vline
WA_RM63A_VGL_STR-ADRNREQ sy-vline
WA_RM63A_VGL_STR-EQ1 sy-vline
WA_RM63A_VGL_STR-MA1 sy-vline
WA_RM63A_VGL_STR-EQ2 sy-vline
WA_RM63A_VGL_STR-MA2 sy-vline
WA_RM63A_VGL_STR-EQ3 sy-vline
WA_RM63A_VGL_STR-MA3 sy-vline
WA_RM63A_VGL_STR-EQ4 sy-vline
WA_RM63A_VGL_STR-MA4 sy-vline
WA_RM63A_VGL_STR-EQ5 sy-vline
WA_RM63A_VGL_STR-MA5 sy-vline
WA_RM63A_VGL_STR-EQ6 sy-vline
WA_RM63A_VGL_STR-MA6 sy-vline
WA_RM63A_VGL_STR-EQ7 sy-vline
WA_RM63A_VGL_STR-MA7 sy-vline
WA_RM63A_VGL_STR-EQ8 sy-vline
WA_RM63A_VGL_STR-MA8 sy-vline
WA_RM63A_VGL_STR-EQ9 sy-vline
WA_RM63A_VGL_STR-FL9 sy-vline
WA_RM63A_VGL_STR-MA9 sy-vline
WA_RM63A_VGL_STR-EQ10 sy-vline
WA_RM63A_VGL_STR-MA10 sy-vline
WA_RM63A_VGL_STR-EQ11 sy-vline
WA_RM63A_VGL_STR-MA11 sy-vline
WA_RM63A_VGL_STR-EQ12 sy-vline
WA_RM63A_VGL_STR-MA12 sy-vline
WA_RM63A_VGL_STR-EQ13 sy-vline
WA_RM63A_VGL_STR-MA13 sy-vline
WA_RM63A_VGL_STR-EQ14 sy-vline
WA_RM63A_VGL_STR-MA14 sy-vline
WA_RM63A_VGL_STR-EQ15 sy-vline
WA_RM63A_VGL_STR-MA15 sy-vline
WA_RM63A_VGL_STR-EQ16 sy-vline
WA_RM63A_VGL_STR-MA16 sy-vline
WA_RM63A_VGL_STR-EQ17 sy-vline
WA_RM63A_VGL_STR-MA17 sy-vline
WA_RM63A_VGL_STR-EQ18 sy-vline
WA_RM63A_VGL_STR-MA18 sy-vline
WA_RM63A_VGL_STR-EQ19 sy-vline
WA_RM63A_VGL_STR-MA19 sy-vline
WA_RM63A_VGL_STR-EQ20 sy-vline
WA_RM63A_VGL_STR-MA20 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.