ABAP Select data from SAP table RMIO 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 RMIO 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 RMIO. 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 RMIO 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_RMIO TYPE STANDARD TABLE OF RMIO, WA_RMIO TYPE RMIO, 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: <RMIO> TYPE RMIO. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_RMIO. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM RMIO INTO TABLE IT_RMIO. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM RMIO * INTO TABLE @DATA(IT_RMIO2). *--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_RMIO INDEX 1 INTO DATA(WA_RMIO2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_RMIO ASSIGNING <RMIO>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<RMIO>-MANDT = 1.
<RMIO>-PRTNR = 1.
<RMIO>-MATNR = 1.
<RMIO>-WERKS = 1.
<RMIO>-ALORT = 1.
ENDLOOP. LOOP AT IT_RMIO INTO WA_RMIO. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_RMIO-BWAWA, sy-vline,
WA_RMIO-BWAWE, sy-vline,
WA_RMIO-VERID, sy-vline,
WA_RMIO-ADATU, sy-vline,
WA_RMIO-BDATU, sy-vline,
WA_RMIO-MDV01, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RMIO 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_RMIO 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_RMIO INTO WA_RMIO. *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 MATN1, internal->external for field MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_RMIO-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RMIO-MATNR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field AUFNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RMIO-AUFNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RMIO-AUFNR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field ERFME CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_RMIO-ERFME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RMIO-ERFME.
WRITE:/ 'New Value:', ld_input.
*Conversion exit NUMCV, internal->external for field REVLV CALL FUNCTION 'CONVERSION_EXIT_NUMCV_OUTPUT' EXPORTING input = WA_RMIO-REVLV IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RMIO-REVLV.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field PLNUM CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RMIO-PLNUM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RMIO-PLNUM.
WRITE:/ 'New Value:', ld_input.
*Conversion exit NUMCV, internal->external for field ZPUNKT CALL FUNCTION 'CONVERSION_EXIT_NUMCV_OUTPUT' EXPORTING input = WA_RMIO-ZPUNKT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RMIO-ZPUNKT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field PKNUM CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RMIO-PKNUM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RMIO-PKNUM.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ABPSP, internal->external for field PSPNR CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_RMIO-PSPNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RMIO-PSPNR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field COST_CENTER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RMIO-COST_CENTER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RMIO-COST_CENTER.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field NOTIF_NUMBER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RMIO-NOTIF_NUMBER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RMIO-NOTIF_NUMBER.
WRITE:/ 'New Value:', ld_input.
*Conversion exit DOCUB, internal->external for field D_BATCH_CHARG CALL FUNCTION 'CONVERSION_EXIT_DOCUB_OUTPUT' EXPORTING input = WA_RMIO-D_BATCH_CHARG IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RMIO-D_BATCH_CHARG.
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_RMIO_STR,
MANDT TYPE STRING,
PRTNR TYPE STRING,
MATNR TYPE STRING,
WERKS TYPE STRING,
ALORT TYPE STRING,
BWAWA TYPE STRING,
BWAWE TYPE STRING,
VERID TYPE STRING,
ADATU TYPE STRING,
BDATU TYPE STRING,
MDV01 TYPE STRING,
MDV02 TYPE STRING,
AUFNR TYPE STRING,
BUDAT TYPE STRING,
BLDAT TYPE STRING,
BKTXT TYPE STRING,
ERFMG TYPE STRING,
ERFME TYPE STRING,
AUSMG TYPE STRING,
STLHELL TYPE STRING,
STLDARK TYPE STRING,
KKORR TYPE STRING,
KORRZ TYPE STRING,
KORRNZ TYPE STRING,
REVLV TYPE STRING,
LBOFF TYPE STRING,
LBSTD_P TYPE STRING,
GRUND TYPE STRING,
VORPER TYPE STRING,
AKTPER TYPE STRING,
FLGPER TYPE STRING,
OVPMG TYPE STRING,
OAPMG TYPE STRING,
OFPMG TYPE STRING,
IVPMG TYPE STRING,
IAPMG TYPE STRING,
OMGTX TYPE STRING,
IMGTX TYPE STRING,
MAKTX TYPE STRING,
MMGTX TYPE STRING,
ACHARG TYPE STRING,
PLNUM TYPE STRING,
ZPUNKT TYPE STRING,
BWASC TYPE STRING,
BWACO TYPE STRING,
BWAWEM TYPE STRING,
PKNUM TYPE STRING,
PKPOS TYPE STRING,
POS TYPE STRING,
SELEK TYPE STRING,
BWAWAM TYPE STRING,
ZPKNB TYPE STRING,
BWACR TYPE STRING,
REFMG TYPE STRING,
POSTA TYPE STRING,
POSTZ TYPE STRING,
POSTN TYPE STRING,
POWAA TYPE STRING,
POWAZ TYPE STRING,
POWAN TYPE STRING,
BDENR TYPE STRING,
USR01 TYPE STRING,
SCHIV TYPE STRING,
UZEIT TYPE STRING,
UNAME TYPE STRING,
MHDAT TYPE STRING,
BWAWES TYPE STRING,
BWAWAS TYPE STRING,
BWASCS TYPE STRING,
BWACOS TYPE STRING,
BWAWEMS TYPE STRING,
BWAWAMS TYPE STRING,
BWACRS TYPE STRING,
SCRZ TYPE STRING,
SCRZB TYPE STRING,
SCRZZ TYPE STRING,
RADIOFR TYPE STRING,
RADIOQU TYPE STRING,
RADIOSP TYPE STRING,
PWAUS TYPE STRING,
PKOST TYPE STRING,
PKAPA TYPE STRING,
OBART TYPE STRING,
OBNUM TYPE STRING,
KSTLF TYPE STRING,
PLWERK TYPE STRING,
PSPNR TYPE STRING,
SCRAP TYPE STRING,
RB_BAUGR TYPE STRING,
RB_KOMPO TYPE STRING,
RB_LEIST TYPE STRING,
BOM_ON TYPE STRING,
BOM_OFF TYPE STRING,
ROUT_ON TYPE STRING,
ROUT_OFF TYPE STRING,
PRODDATE TYPE STRING,
EXPIRDATE TYPE STRING,
REP_POINTS TYPE STRING,
MB_GRUND TYPE STRING,
PERNR TYPE STRING,
GRUNR TYPE STRING,
LOART TYPE STRING,
LOGRP TYPE STRING,
LSTYP TYPE STRING,
USER1 TYPE STRING,
USER2 TYPE STRING,
REWORK_RELEVANT TYPE STRING,
REASON TYPE STRING,
COST_CENTER TYPE STRING,
NOTIF_NUMBER TYPE STRING,
D_BATCH_KEY TYPE STRING,
D_BATCH_CONTROL TYPE STRING,
D_BATCH_CHARG TYPE STRING,
D_BATCH_MULT_E TYPE STRING,
BF_MODE TYPE STRING,
WE TYPE STRING,
REPTP TYPE STRING,END OF T_EKKO_STR. DATA: WA_RMIO_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_RMIO_STR-MANDT sy-vline
WA_RMIO_STR-PRTNR sy-vline
WA_RMIO_STR-MATNR sy-vline
WA_RMIO_STR-WERKS sy-vline
WA_RMIO_STR-ALORT sy-vline
WA_RMIO_STR-BWAWA sy-vline
WA_RMIO_STR-BWAWE sy-vline
WA_RMIO_STR-VERID sy-vline
WA_RMIO_STR-ADATU sy-vline
WA_RMIO_STR-BDATU sy-vline
WA_RMIO_STR-MDV01 sy-vline
WA_RMIO_STR-MDV02 sy-vline
WA_RMIO_STR-AUFNR sy-vline
WA_RMIO_STR-BUDAT sy-vline
WA_RMIO_STR-BLDAT sy-vline
WA_RMIO_STR-BKTXT sy-vline
WA_RMIO_STR-ERFMG sy-vline
WA_RMIO_STR-ERFME sy-vline
WA_RMIO_STR-AUSMG sy-vline
WA_RMIO_STR-STLHELL sy-vline
WA_RMIO_STR-STLDARK sy-vline
WA_RMIO_STR-KKORR sy-vline
WA_RMIO_STR-KORRZ sy-vline
WA_RMIO_STR-KORRNZ sy-vline
WA_RMIO_STR-REVLV sy-vline
WA_RMIO_STR-LBOFF sy-vline
WA_RMIO_STR-LBSTD_P sy-vline
WA_RMIO_STR-GRUND sy-vline
WA_RMIO_STR-VORPER sy-vline
WA_RMIO_STR-AKTPER sy-vline
WA_RMIO_STR-FLGPER sy-vline
WA_RMIO_STR-OVPMG sy-vline
WA_RMIO_STR-OAPMG sy-vline
WA_RMIO_STR-OFPMG sy-vline
WA_RMIO_STR-IVPMG sy-vline
WA_RMIO_STR-IAPMG sy-vline
WA_RMIO_STR-OMGTX sy-vline
WA_RMIO_STR-IMGTX sy-vline
WA_RMIO_STR-MAKTX sy-vline
WA_RMIO_STR-MMGTX sy-vline
WA_RMIO_STR-ACHARG sy-vline
WA_RMIO_STR-PLNUM sy-vline
WA_RMIO_STR-ZPUNKT sy-vline
WA_RMIO_STR-BWASC sy-vline
WA_RMIO_STR-BWACO sy-vline
WA_RMIO_STR-BWAWEM sy-vline
WA_RMIO_STR-PKNUM sy-vline
WA_RMIO_STR-PKPOS sy-vline
WA_RMIO_STR-POS sy-vline
WA_RMIO_STR-SELEK sy-vline
WA_RMIO_STR-BWAWAM sy-vline
WA_RMIO_STR-ZPKNB sy-vline
WA_RMIO_STR-BWACR sy-vline
WA_RMIO_STR-REFMG sy-vline
WA_RMIO_STR-POSTA sy-vline
WA_RMIO_STR-POSTZ sy-vline
WA_RMIO_STR-POSTN sy-vline
WA_RMIO_STR-POWAA sy-vline
WA_RMIO_STR-POWAZ sy-vline
WA_RMIO_STR-POWAN sy-vline
WA_RMIO_STR-BDENR sy-vline
WA_RMIO_STR-USR01 sy-vline
WA_RMIO_STR-SCHIV sy-vline
WA_RMIO_STR-UZEIT sy-vline
WA_RMIO_STR-UNAME sy-vline
WA_RMIO_STR-MHDAT sy-vline
WA_RMIO_STR-BWAWES sy-vline
WA_RMIO_STR-BWAWAS sy-vline
WA_RMIO_STR-BWASCS sy-vline
WA_RMIO_STR-BWACOS sy-vline
WA_RMIO_STR-BWAWEMS sy-vline
WA_RMIO_STR-BWAWAMS sy-vline
WA_RMIO_STR-BWACRS sy-vline
WA_RMIO_STR-SCRZ sy-vline
WA_RMIO_STR-SCRZB sy-vline
WA_RMIO_STR-SCRZZ sy-vline
WA_RMIO_STR-RADIOFR sy-vline
WA_RMIO_STR-RADIOQU sy-vline
WA_RMIO_STR-RADIOSP sy-vline
WA_RMIO_STR-PWAUS sy-vline
WA_RMIO_STR-PKOST sy-vline
WA_RMIO_STR-PKAPA sy-vline
WA_RMIO_STR-OBART sy-vline
WA_RMIO_STR-OBNUM sy-vline
WA_RMIO_STR-KSTLF sy-vline
WA_RMIO_STR-PLWERK sy-vline
WA_RMIO_STR-PSPNR sy-vline
WA_RMIO_STR-SCRAP sy-vline
WA_RMIO_STR-RB_BAUGR sy-vline
WA_RMIO_STR-RB_KOMPO sy-vline
WA_RMIO_STR-RB_LEIST sy-vline
WA_RMIO_STR-BOM_ON sy-vline
WA_RMIO_STR-BOM_OFF sy-vline
WA_RMIO_STR-ROUT_ON sy-vline
WA_RMIO_STR-ROUT_OFF sy-vline
WA_RMIO_STR-PRODDATE sy-vline
WA_RMIO_STR-EXPIRDATE sy-vline
WA_RMIO_STR-REP_POINTS sy-vline
WA_RMIO_STR-MB_GRUND sy-vline
WA_RMIO_STR-PERNR sy-vline
WA_RMIO_STR-GRUNR sy-vline
WA_RMIO_STR-LOART sy-vline
WA_RMIO_STR-LOGRP sy-vline
WA_RMIO_STR-LSTYP sy-vline
WA_RMIO_STR-USER1 sy-vline
WA_RMIO_STR-USER2 sy-vline
WA_RMIO_STR-REWORK_RELEVANT sy-vline
WA_RMIO_STR-REASON sy-vline
WA_RMIO_STR-COST_CENTER sy-vline
WA_RMIO_STR-NOTIF_NUMBER sy-vline
WA_RMIO_STR-D_BATCH_KEY sy-vline
WA_RMIO_STR-D_BATCH_CONTROL sy-vline
WA_RMIO_STR-D_BATCH_CHARG sy-vline
WA_RMIO_STR-D_BATCH_MULT_E sy-vline
WA_RMIO_STR-BF_MODE sy-vline
WA_RMIO_STR-WE sy-vline
WA_RMIO_STR-REPTP sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.