ABAP Select data from SAP table RIWO00 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 RIWO00 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 RIWO00. 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 RIWO00 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_RIWO00 TYPE STANDARD TABLE OF RIWO00,
      WA_RIWO00 TYPE RIWO00,
      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: <RIWO00> TYPE RIWO00.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RIWO00
*  INTO TABLE @DATA(IT_RIWO002).
*--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_RIWO00 INDEX 1 INTO DATA(WA_RIWO002).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RIWO00 ASSIGNING <RIWO00>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RIWO00>-MANDT = 1.
<RIWO00>-QMART = 1.
<RIWO00>-QMNUM = 1.
<RIWO00>-SELEC = 1.
<RIWO00>-SELEK = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RIWO00-SELCT, sy-vline,
WA_RIWO00-SELKT, sy-vline,
WA_RIWO00-KLBEZ, sy-vline,
WA_RIWO00-FENUM, sy-vline,
WA_RIWO00-FETXT, sy-vline,
WA_RIWO00-TXTFE, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RIWO00 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_RIWO00 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_RIWO00 INTO WA_RIWO00. *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 QMNUM CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RIWO00-QMNUM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RIWO00-QMNUM.
WRITE:/ 'New Value:', ld_input.

*Conversion exit NUMCV, internal->external for field VORNR CALL FUNCTION 'CONVERSION_EXIT_NUMCV_OUTPUT' EXPORTING input = WA_RIWO00-VORNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RIWO00-VORNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field QWRNUM CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RIWO00-QWRNUM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RIWO00-QWRNUM.
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_RIWO00_STR,
MANDT TYPE STRING,
QMART TYPE STRING,
QMNUM TYPE STRING,
SELEC TYPE STRING,
SELEK TYPE STRING,
SELCT TYPE STRING,
SELKT TYPE STRING,
KLBEZ TYPE STRING,
FENUM TYPE STRING,
FETXT TYPE STRING,
TXTFE TYPE STRING,
TXTCDFE TYPE STRING,
TXTUR TYPE STRING,
TXTCDUR TYPE STRING,
TXTMA TYPE STRING,
TXTCDMA TYPE STRING,
TXTSM TYPE STRING,
TXTCDSM TYPE STRING,
TXTBA TYPE STRING,
TXTOT TYPE STRING,
TXTCDOT TYPE STRING,
TXTCD TYPE STRING,
TXTSA TYPE STRING,
TXTGRSA TYPE STRING,
TXTKTSA TYPE STRING,
TXTGRFE TYPE STRING,
TXTKTFE TYPE STRING,
TXTGRUR TYPE STRING,
TXTKTUR TYPE STRING,
TXTGRMA TYPE STRING,
TXTKTMA TYPE STRING,
TXTKTOT TYPE STRING,
TXTGROT TYPE STRING,
TXTGRSM TYPE STRING,
TXTKTSM TYPE STRING,
FRKLS TYPE STRING,
RBNRV TYPE STRING,
RBNRVI TYPE STRING,
RBNRVT TYPE STRING,
RBNRV_T TYPE STRING,
RBNR TYPE STRING,
RBNRI TYPE STRING,
RBNRT TYPE STRING,
RBNR_T TYPE STRING,
RBNRB TYPE STRING,
RBNRBI TYPE STRING,
RBNRBT TYPE STRING,
RBNRB_T TYPE STRING,
BAUTX TYPE STRING,
EAUSZT TYPE STRING,
BEQTX TYPE STRING,
BTPTX TYPE STRING,
ANLZET TYPE STRING,
ANLZVT TYPE STRING,
ANLZNT TYPE STRING,
AUSWKT TYPE STRING,
TOPOS TYPE STRING,
NRPOS TYPE STRING,
TOPOST TYPE STRING,
NRPOST TYPE STRING,
TOPOSA TYPE STRING,
NRPOSA TYPE STRING,
TOPOSU TYPE STRING,
NRPOSU TYPE STRING,
INNAM TYPE STRING,
STTXT TYPE STRING,
ASTEX TYPE STRING,
ASTXT TYPE STRING,
OINNAM TYPE STRING,
AUART TYPE STRING,
PM_OBJTY TYPE STRING,
O_PM_OBJTY TYPE STRING,
O_GEWRK TYPE STRING,
GEWRK TYPE STRING,
LGWID TYPE STRING,
O_LGWID TYPE STRING,
SWERK TYPE STRING,
O_SWERK TYPE STRING,
KTEXT TYPE STRING,
O_KTEXT TYPE STRING,
FLG_OBJ_DATA TYPE STRING,
MATKTX TYPE STRING,
KUNAME1 TYPE STRING,
LFNAME1 TYPE STRING,
HRNAME1 TYPE STRING,
BUNAME TYPE STRING,
SMSTTXT TYPE STRING,
SMASTEX TYPE STRING,
SMASTXT TYPE STRING,
SMGSTXT TYPE STRING,
KORDINATOR TYPE STRING,
OTYPETEXT TYPE STRING,
SAWORTPK TYPE STRING,
FEWORTPK TYPE STRING,
OTWORTPK TYPE STRING,
MAWORTPK TYPE STRING,
SMWORTPK TYPE STRING,
URWORTPK TYPE STRING,
INDTX TYPE STRING,
FESWORTPK TYPE STRING,
FERAHMEN TYPE STRING,
FECODE TYPE STRING,
FEWORTKAT TYPE STRING,
FEWORTGRP TYPE STRING,
OTSWORTPK TYPE STRING,
OTRAHMEN TYPE STRING,
OTCODE TYPE STRING,
OTWORTKAT TYPE STRING,
OTWORTGRP TYPE STRING,
FOLGEACTXT TYPE STRING,
IPSDT TYPE STRING,
IPALT TYPE STRING,
IPFLT TYPE STRING,
IWTER TYPE STRING,
INUPS TYPE STRING,
VORNR TYPE STRING,
VORKTEXT TYPE STRING,
QWRNUM TYPE STRING,
HEADKTXT TYPE STRING,
MANUM TYPE STRING,
QMARTE TYPE STRING,
COPY_GEOM TYPE STRING,
PLTXT TYPE STRING,
EQTXT TYPE STRING,END OF T_EKKO_STR. DATA: WA_RIWO00_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_RIWO00_STR-MANDT sy-vline
WA_RIWO00_STR-QMART sy-vline
WA_RIWO00_STR-QMNUM sy-vline
WA_RIWO00_STR-SELEC sy-vline
WA_RIWO00_STR-SELEK sy-vline
WA_RIWO00_STR-SELCT sy-vline
WA_RIWO00_STR-SELKT sy-vline
WA_RIWO00_STR-KLBEZ sy-vline
WA_RIWO00_STR-FENUM sy-vline
WA_RIWO00_STR-FETXT sy-vline
WA_RIWO00_STR-TXTFE sy-vline
WA_RIWO00_STR-TXTCDFE sy-vline
WA_RIWO00_STR-TXTUR sy-vline
WA_RIWO00_STR-TXTCDUR sy-vline
WA_RIWO00_STR-TXTMA sy-vline
WA_RIWO00_STR-TXTCDMA sy-vline
WA_RIWO00_STR-TXTSM sy-vline
WA_RIWO00_STR-TXTCDSM sy-vline
WA_RIWO00_STR-TXTBA sy-vline
WA_RIWO00_STR-TXTOT sy-vline
WA_RIWO00_STR-TXTCDOT sy-vline
WA_RIWO00_STR-TXTCD sy-vline
WA_RIWO00_STR-TXTSA sy-vline
WA_RIWO00_STR-TXTGRSA sy-vline
WA_RIWO00_STR-TXTKTSA sy-vline
WA_RIWO00_STR-TXTGRFE sy-vline
WA_RIWO00_STR-TXTKTFE sy-vline
WA_RIWO00_STR-TXTGRUR sy-vline
WA_RIWO00_STR-TXTKTUR sy-vline
WA_RIWO00_STR-TXTGRMA sy-vline
WA_RIWO00_STR-TXTKTMA sy-vline
WA_RIWO00_STR-TXTKTOT sy-vline
WA_RIWO00_STR-TXTGROT sy-vline
WA_RIWO00_STR-TXTGRSM sy-vline
WA_RIWO00_STR-TXTKTSM sy-vline
WA_RIWO00_STR-FRKLS sy-vline
WA_RIWO00_STR-RBNRV sy-vline
WA_RIWO00_STR-RBNRVI sy-vline
WA_RIWO00_STR-RBNRVT sy-vline
WA_RIWO00_STR-RBNRV_T sy-vline
WA_RIWO00_STR-RBNR sy-vline
WA_RIWO00_STR-RBNRI sy-vline
WA_RIWO00_STR-RBNRT sy-vline
WA_RIWO00_STR-RBNR_T sy-vline
WA_RIWO00_STR-RBNRB sy-vline
WA_RIWO00_STR-RBNRBI sy-vline
WA_RIWO00_STR-RBNRBT sy-vline
WA_RIWO00_STR-RBNRB_T sy-vline
WA_RIWO00_STR-BAUTX sy-vline
WA_RIWO00_STR-EAUSZT sy-vline
WA_RIWO00_STR-BEQTX sy-vline
WA_RIWO00_STR-BTPTX sy-vline
WA_RIWO00_STR-ANLZET sy-vline
WA_RIWO00_STR-ANLZVT sy-vline
WA_RIWO00_STR-ANLZNT sy-vline
WA_RIWO00_STR-AUSWKT sy-vline
WA_RIWO00_STR-TOPOS sy-vline
WA_RIWO00_STR-NRPOS sy-vline
WA_RIWO00_STR-TOPOST sy-vline
WA_RIWO00_STR-NRPOST sy-vline
WA_RIWO00_STR-TOPOSA sy-vline
WA_RIWO00_STR-NRPOSA sy-vline
WA_RIWO00_STR-TOPOSU sy-vline
WA_RIWO00_STR-NRPOSU sy-vline
WA_RIWO00_STR-INNAM sy-vline
WA_RIWO00_STR-STTXT sy-vline
WA_RIWO00_STR-ASTEX sy-vline
WA_RIWO00_STR-ASTXT sy-vline
WA_RIWO00_STR-OINNAM sy-vline
WA_RIWO00_STR-AUART sy-vline
WA_RIWO00_STR-PM_OBJTY sy-vline
WA_RIWO00_STR-O_PM_OBJTY sy-vline
WA_RIWO00_STR-O_GEWRK sy-vline
WA_RIWO00_STR-GEWRK sy-vline
WA_RIWO00_STR-LGWID sy-vline
WA_RIWO00_STR-O_LGWID sy-vline
WA_RIWO00_STR-SWERK sy-vline
WA_RIWO00_STR-O_SWERK sy-vline
WA_RIWO00_STR-KTEXT sy-vline
WA_RIWO00_STR-O_KTEXT sy-vline
WA_RIWO00_STR-FLG_OBJ_DATA sy-vline
WA_RIWO00_STR-MATKTX sy-vline
WA_RIWO00_STR-KUNAME1 sy-vline
WA_RIWO00_STR-LFNAME1 sy-vline
WA_RIWO00_STR-HRNAME1 sy-vline
WA_RIWO00_STR-BUNAME sy-vline
WA_RIWO00_STR-SMSTTXT sy-vline
WA_RIWO00_STR-SMASTEX sy-vline
WA_RIWO00_STR-SMASTXT sy-vline
WA_RIWO00_STR-SMGSTXT sy-vline
WA_RIWO00_STR-KORDINATOR sy-vline
WA_RIWO00_STR-OTYPETEXT sy-vline
WA_RIWO00_STR-SAWORTPK sy-vline
WA_RIWO00_STR-FEWORTPK sy-vline
WA_RIWO00_STR-OTWORTPK sy-vline
WA_RIWO00_STR-MAWORTPK sy-vline
WA_RIWO00_STR-SMWORTPK sy-vline
WA_RIWO00_STR-URWORTPK sy-vline
WA_RIWO00_STR-INDTX sy-vline
WA_RIWO00_STR-FESWORTPK sy-vline
WA_RIWO00_STR-FERAHMEN sy-vline
WA_RIWO00_STR-FECODE sy-vline
WA_RIWO00_STR-FEWORTKAT sy-vline
WA_RIWO00_STR-FEWORTGRP sy-vline
WA_RIWO00_STR-OTSWORTPK sy-vline
WA_RIWO00_STR-OTRAHMEN sy-vline
WA_RIWO00_STR-OTCODE sy-vline
WA_RIWO00_STR-OTWORTKAT sy-vline
WA_RIWO00_STR-OTWORTGRP sy-vline
WA_RIWO00_STR-FOLGEACTXT sy-vline
WA_RIWO00_STR-IPSDT sy-vline
WA_RIWO00_STR-IPALT sy-vline
WA_RIWO00_STR-IPFLT sy-vline
WA_RIWO00_STR-IWTER sy-vline
WA_RIWO00_STR-INUPS sy-vline
WA_RIWO00_STR-VORNR sy-vline
WA_RIWO00_STR-VORKTEXT sy-vline
WA_RIWO00_STR-QWRNUM sy-vline
WA_RIWO00_STR-HEADKTXT sy-vline
WA_RIWO00_STR-MANUM sy-vline
WA_RIWO00_STR-QMARTE sy-vline
WA_RIWO00_STR-COPY_GEOM sy-vline
WA_RIWO00_STR-PLTXT sy-vline
WA_RIWO00_STR-EQTXT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.