ABAP Select data from SAP table RM63E 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 RM63E 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 RM63E. 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 RM63E 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_RM63E TYPE STANDARD TABLE OF RM63E,
      WA_RM63E TYPE RM63E,
      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: <RM63E> TYPE RM63E.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RM63E
*  INTO TABLE @DATA(IT_RM63E2).
*--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_RM63E INDEX 1 INTO DATA(WA_RM63E2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RM63E ASSIGNING <RM63E>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RM63E>-MANDT = 1.
<RM63E>-EQUNR = 1.
<RM63E>-DATSL = 1.
<RM63E>-EQTYP = 1.
<RM63E>-FLEET_CAT = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RM63E-REFEQ, sy-vline,
WA_RM63E-REFMA, sy-vline,
WA_RM63E-REFBU, sy-vline,
WA_RM63E-REFWE, sy-vline,
WA_RM63E-REFAN, sy-vline,
WA_RM63E-REFER, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RM63E 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_RM63E 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_RM63E INTO WA_RM63E. *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 EQUNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RM63E-EQUNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RM63E-EQUNR.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit MATN1, internal->external for field REFMA CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_RM63E-REFMA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RM63E-REFMA.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit MATN1, internal->external for field MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_RM63E-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RM63E-MATNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GERNR, internal->external for field SERNR CALL FUNCTION 'CONVERSION_EXIT_GERNR_OUTPUT' EXPORTING input = WA_RM63E-SERNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RM63E-SERNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field MFRNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RM63E-MFRNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RM63E-MFRNR.
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_RM63E_STR,
MANDT TYPE STRING,
EQUNR TYPE STRING,
DATSL TYPE STRING,
EQTYP TYPE STRING,
FLEET_CAT TYPE STRING,
REFEQ TYPE STRING,
REFMA TYPE STRING,
REFBU TYPE STRING,
REFWE TYPE STRING,
REFAN TYPE STRING,
REFER TYPE STRING,
FCODE TYPE STRING,
INDU TYPE STRING,
KTX01 TYPE STRING,
KNAM1 TYPE STRING,
KPLZ1 TYPE STRING,
KORT1 TYPE STRING,
KNAM2 TYPE STRING,
KPLZ2 TYPE STRING,
KORT2 TYPE STRING,
KNAM3 TYPE STRING,
KPLZ3 TYPE STRING,
KORT3 TYPE STRING,
KNAME TYPE STRING,
KPLZE TYPE STRING,
KORTE TYPE STRING,
AZTXT TYPE STRING,
ADDRHANDLE TYPE STRING,
CLASS TYPE STRING,
STDCL TYPE STRING,
SFCOD TYPE STRING,
KLASSE TYPE STRING,
KLASSENART TYPE STRING,
KLASSENTEXT TYPE STRING,
AZT25 TYPE STRING,
GEWRK TYPE STRING,
WERGW TYPE STRING,
KTEXT TYPE STRING,
GAKTX TYPE STRING,
EQLFN TYPE STRING,
AZTXT40 TYPE STRING,
SWERK TYPE STRING,
NAME1 TYPE STRING,
LFDNR TYPE STRING,
EQKTX TYPE STRING,
MATNR TYPE STRING,
SERNR TYPE STRING,
HEQTX40 TYPE STRING,
MUGATXT TYPE STRING,
NO_REF TYPE STRING,
STTXT TYPE STRING,
STTXU TYPE STRING,
REFTXT TYPE STRING,
LGTXT TYPE STRING,
INTNOTE TYPE STRING,
IBASE TYPE STRING,
MFRPN TYPE STRING,
MFRNR TYPE STRING,END OF T_EKKO_STR. DATA: WA_RM63E_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_RM63E_STR-MANDT sy-vline
WA_RM63E_STR-EQUNR sy-vline
WA_RM63E_STR-DATSL sy-vline
WA_RM63E_STR-EQTYP sy-vline
WA_RM63E_STR-FLEET_CAT sy-vline
WA_RM63E_STR-REFEQ sy-vline
WA_RM63E_STR-REFMA sy-vline
WA_RM63E_STR-REFBU sy-vline
WA_RM63E_STR-REFWE sy-vline
WA_RM63E_STR-REFAN sy-vline
WA_RM63E_STR-REFER sy-vline
WA_RM63E_STR-FCODE sy-vline
WA_RM63E_STR-INDU sy-vline
WA_RM63E_STR-KTX01 sy-vline
WA_RM63E_STR-KNAM1 sy-vline
WA_RM63E_STR-KPLZ1 sy-vline
WA_RM63E_STR-KORT1 sy-vline
WA_RM63E_STR-KNAM2 sy-vline
WA_RM63E_STR-KPLZ2 sy-vline
WA_RM63E_STR-KORT2 sy-vline
WA_RM63E_STR-KNAM3 sy-vline
WA_RM63E_STR-KPLZ3 sy-vline
WA_RM63E_STR-KORT3 sy-vline
WA_RM63E_STR-KNAME sy-vline
WA_RM63E_STR-KPLZE sy-vline
WA_RM63E_STR-KORTE sy-vline
WA_RM63E_STR-AZTXT sy-vline
WA_RM63E_STR-ADDRHANDLE sy-vline
WA_RM63E_STR-CLASS sy-vline
WA_RM63E_STR-STDCL sy-vline
WA_RM63E_STR-SFCOD sy-vline
WA_RM63E_STR-KLASSE sy-vline
WA_RM63E_STR-KLASSENART sy-vline
WA_RM63E_STR-KLASSENTEXT sy-vline
WA_RM63E_STR-AZT25 sy-vline
WA_RM63E_STR-GEWRK sy-vline
WA_RM63E_STR-WERGW sy-vline
WA_RM63E_STR-KTEXT sy-vline
WA_RM63E_STR-GAKTX sy-vline
WA_RM63E_STR-EQLFN sy-vline
WA_RM63E_STR-AZTXT40 sy-vline
WA_RM63E_STR-SWERK sy-vline
WA_RM63E_STR-NAME1 sy-vline
WA_RM63E_STR-LFDNR sy-vline
WA_RM63E_STR-EQKTX sy-vline
WA_RM63E_STR-MATNR sy-vline
WA_RM63E_STR-SERNR sy-vline
WA_RM63E_STR-HEQTX40 sy-vline
WA_RM63E_STR-MUGATXT sy-vline
WA_RM63E_STR-NO_REF sy-vline
WA_RM63E_STR-STTXT sy-vline
WA_RM63E_STR-STTXU sy-vline
WA_RM63E_STR-REFTXT sy-vline
WA_RM63E_STR-LGTXT sy-vline
WA_RM63E_STR-INTNOTE sy-vline
WA_RM63E_STR-IBASE sy-vline
WA_RM63E_STR-MFRPN sy-vline
WA_RM63E_STR-MFRNR sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.