ABAP Select data from SAP table /SCWM/RL01S 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 /SCWM/RL01S 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 /SCWM/RL01S. 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 /SCWM/RL01S 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_/SCWM/RL01S TYPE STANDARD TABLE OF /SCWM/RL01S, WA_/SCWM/RL01S TYPE /SCWM/RL01S, 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: </SCWM/RL01S> TYPE /SCWM/RL01S. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_/SCWM/RL01S. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM /SCWM/RL01S INTO TABLE IT_/SCWM/RL01S. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM /SCWM/RL01S * INTO TABLE @DATA(IT_/SCWM/RL01S2). *--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_/SCWM/RL01S INDEX 1 INTO DATA(WA_/SCWM/RL01S2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_/SCWM/RL01S ASSIGNING </SCWM/RL01S>.*To update a field value using a field symbol simply change the value via the field symbol pointer
</SCWM/RL01S>-LGNUM = 1.
</SCWM/RL01S>-LGTYP = 1.
</SCWM/RL01S>-LGBER = 1.
</SCWM/RL01S>-LGPLA = 1.
</SCWM/RL01S>-LPTYP = 1.
ENDLOOP. LOOP AT IT_/SCWM/RL01S INTO WA_/SCWM/RL01S. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_/SCWM/RL01S-ANZLP, sy-vline,
WA_/SCWM/RL01S-SKZLP, sy-vline,
WA_/SCWM/RL01S-MATNR, sy-vline,
WA_/SCWM/RL01S-MATID, sy-vline,
WA_/SCWM/RL01S-CHARG, sy-vline,
WA_/SCWM/RL01S-WEMIN, sy-vline.
ENDLOOP. *Add any further fields from structure WA_/SCWM/RL01S 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_/SCWM/RL01S 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_/SCWM/RL01S INTO WA_/SCWM/RL01S. *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_/SCWM/RL01S-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/SCWM/RL01S-MATNR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit MDLPD, internal->external for field MATID CALL FUNCTION 'CONVERSION_EXIT_MDLPD_OUTPUT' EXPORTING input = WA_/SCWM/RL01S-MATID IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/SCWM/RL01S-MATID.
WRITE:/ 'New Value:', ld_input.
*Conversion exit TSTWH, internal->external for field WEMIN CALL FUNCTION 'CONVERSION_EXIT_TSTWH_OUTPUT' EXPORTING input = WA_/SCWM/RL01S-WEMIN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/SCWM/RL01S-WEMIN.
WRITE:/ 'New Value:', ld_input.
*Conversion exit TSTWH, internal->external for field WEMAX CALL FUNCTION 'CONVERSION_EXIT_TSTWH_OUTPUT' EXPORTING input = WA_/SCWM/RL01S-WEMAX IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/SCWM/RL01S-WEMAX.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field WENUM CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_/SCWM/RL01S-WENUM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/SCWM/RL01S-WENUM.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field ALTME CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_/SCWM/RL01S-ALTME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/SCWM/RL01S-ALTME.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field VBELN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_/SCWM/RL01S-VBELN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/SCWM/RL01S-VBELN.
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_/SCWM/RL01S_STR,
LGNUM TYPE STRING,
LGTYP TYPE STRING,
LGBER TYPE STRING,
LGPLA TYPE STRING,
LPTYP TYPE STRING,
ANZLP TYPE STRING,
SKZLP TYPE STRING,
MATNR TYPE STRING,
MATID TYPE STRING,
CHARG TYPE STRING,
WEMIN TYPE STRING,
WEMAX TYPE STRING,
WENUM TYPE STRING,
LGNVO TYPE STRING,
LGNBI TYPE STRING,
LGTVO TYPE STRING,
LGTBI TYPE STRING,
WERKV TYPE STRING,
WERKB TYPE STRING,
MAPPE TYPE STRING,
LFDNR TYPE STRING,
PMAUF TYPE STRING,
POS01 TYPE STRING,
POS02 TYPE STRING,
POS03 TYPE STRING,
POS04 TYPE STRING,
POS05 TYPE STRING,
POS06 TYPE STRING,
POS07 TYPE STRING,
POS08 TYPE STRING,
POS09 TYPE STRING,
POS10 TYPE STRING,
POS11 TYPE STRING,
POS12 TYPE STRING,
POS13 TYPE STRING,
POS14 TYPE STRING,
POS15 TYPE STRING,
POS16 TYPE STRING,
AGPFA TYPE STRING,
ALTME TYPE STRING,
QPLOS TYPE STRING,
BKAPV TYPE STRING,
LPRES TYPE STRING,
BRRES TYPE STRING,
BARES TYPE STRING,
LSRES TYPE STRING,
SORES TYPE STRING,
LGRES TYPE STRING,
LKRES TYPE STRING,
VORES TYPE STRING,
RFRES TYPE STRING,
NGESP TYPE STRING,
EINSP TYPE STRING,
AUSSP TYPE STRING,
ESOAS TYPE STRING,
PLALL TYPE STRING,
PLEER TYPE STRING,
KREUZ TYPE STRING,
SPERR TYPE STRING,
LOEKZ TYPE STRING,
KAPAZ TYPE STRING,
LGEWI TYPE STRING,
DAUER TYPE STRING,
UPDAT TYPE STRING,
LISTV TYPE STRING,
SICHT TYPE STRING,
LGDAT TYPE STRING,
ESTAT TYPE STRING,
ASTAT TYPE STRING,
ISTAT TYPE STRING,
GSTAT TYPE STRING,
PRAUS TYPE STRING,
ESICO TYPE STRING,
ASICO TYPE STRING,
ISICO TYPE STRING,
GICO TYPE STRING,
LKICO TYPE STRING,
VKICO TYPE STRING,
DPICO TYPE STRING,
PRA01 TYPE STRING,
PRA02 TYPE STRING,
PRA03 TYPE STRING,
PRA04 TYPE STRING,
PRA05 TYPE STRING,
PRA06 TYPE STRING,
PRA07 TYPE STRING,
PRA08 TYPE STRING,
PRA09 TYPE STRING,
PRA10 TYPE STRING,
PRA11 TYPE STRING,
PRA12 TYPE STRING,
PRA13 TYPE STRING,
PRA14 TYPE STRING,
PRA15 TYPE STRING,
PRA16 TYPE STRING,
PRA17 TYPE STRING,
PRA18 TYPE STRING,
PRA19 TYPE STRING,
PRA20 TYPE STRING,
IVATX TYPE STRING,
PRPRO TYPE STRING,
IVSTX TYPE STRING,
IMICO TYPE STRING,
LODAT TYPE STRING,
VBELN TYPE STRING,
AIRES TYPE STRING,
STRES TYPE STRING,
LVRES TYPE STRING,
BNRES TYPE STRING,
DERES TYPE STRING,
LBRES TYPE STRING,
ANRES TYPE STRING,
RGRES TYPE STRING,
BDRES TYPE STRING,END OF T_EKKO_STR. DATA: WA_/SCWM/RL01S_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_/SCWM/RL01S_STR-LGNUM sy-vline
WA_/SCWM/RL01S_STR-LGTYP sy-vline
WA_/SCWM/RL01S_STR-LGBER sy-vline
WA_/SCWM/RL01S_STR-LGPLA sy-vline
WA_/SCWM/RL01S_STR-LPTYP sy-vline
WA_/SCWM/RL01S_STR-ANZLP sy-vline
WA_/SCWM/RL01S_STR-SKZLP sy-vline
WA_/SCWM/RL01S_STR-MATNR sy-vline
WA_/SCWM/RL01S_STR-MATID sy-vline
WA_/SCWM/RL01S_STR-CHARG sy-vline
WA_/SCWM/RL01S_STR-WEMIN sy-vline
WA_/SCWM/RL01S_STR-WEMAX sy-vline
WA_/SCWM/RL01S_STR-WENUM sy-vline
WA_/SCWM/RL01S_STR-LGNVO sy-vline
WA_/SCWM/RL01S_STR-LGNBI sy-vline
WA_/SCWM/RL01S_STR-LGTVO sy-vline
WA_/SCWM/RL01S_STR-LGTBI sy-vline
WA_/SCWM/RL01S_STR-WERKV sy-vline
WA_/SCWM/RL01S_STR-WERKB sy-vline
WA_/SCWM/RL01S_STR-MAPPE sy-vline
WA_/SCWM/RL01S_STR-LFDNR sy-vline
WA_/SCWM/RL01S_STR-PMAUF sy-vline
WA_/SCWM/RL01S_STR-POS01 sy-vline
WA_/SCWM/RL01S_STR-POS02 sy-vline
WA_/SCWM/RL01S_STR-POS03 sy-vline
WA_/SCWM/RL01S_STR-POS04 sy-vline
WA_/SCWM/RL01S_STR-POS05 sy-vline
WA_/SCWM/RL01S_STR-POS06 sy-vline
WA_/SCWM/RL01S_STR-POS07 sy-vline
WA_/SCWM/RL01S_STR-POS08 sy-vline
WA_/SCWM/RL01S_STR-POS09 sy-vline
WA_/SCWM/RL01S_STR-POS10 sy-vline
WA_/SCWM/RL01S_STR-POS11 sy-vline
WA_/SCWM/RL01S_STR-POS12 sy-vline
WA_/SCWM/RL01S_STR-POS13 sy-vline
WA_/SCWM/RL01S_STR-POS14 sy-vline
WA_/SCWM/RL01S_STR-POS15 sy-vline
WA_/SCWM/RL01S_STR-POS16 sy-vline
WA_/SCWM/RL01S_STR-AGPFA sy-vline
WA_/SCWM/RL01S_STR-ALTME sy-vline
WA_/SCWM/RL01S_STR-QPLOS sy-vline
WA_/SCWM/RL01S_STR-BKAPV sy-vline
WA_/SCWM/RL01S_STR-LPRES sy-vline
WA_/SCWM/RL01S_STR-BRRES sy-vline
WA_/SCWM/RL01S_STR-BARES sy-vline
WA_/SCWM/RL01S_STR-LSRES sy-vline
WA_/SCWM/RL01S_STR-SORES sy-vline
WA_/SCWM/RL01S_STR-LGRES sy-vline
WA_/SCWM/RL01S_STR-LKRES sy-vline
WA_/SCWM/RL01S_STR-VORES sy-vline
WA_/SCWM/RL01S_STR-RFRES sy-vline
WA_/SCWM/RL01S_STR-NGESP sy-vline
WA_/SCWM/RL01S_STR-EINSP sy-vline
WA_/SCWM/RL01S_STR-AUSSP sy-vline
WA_/SCWM/RL01S_STR-ESOAS sy-vline
WA_/SCWM/RL01S_STR-PLALL sy-vline
WA_/SCWM/RL01S_STR-PLEER sy-vline
WA_/SCWM/RL01S_STR-KREUZ sy-vline
WA_/SCWM/RL01S_STR-SPERR sy-vline
WA_/SCWM/RL01S_STR-LOEKZ sy-vline
WA_/SCWM/RL01S_STR-KAPAZ sy-vline
WA_/SCWM/RL01S_STR-LGEWI sy-vline
WA_/SCWM/RL01S_STR-DAUER sy-vline
WA_/SCWM/RL01S_STR-UPDAT sy-vline
WA_/SCWM/RL01S_STR-LISTV sy-vline
WA_/SCWM/RL01S_STR-SICHT sy-vline
WA_/SCWM/RL01S_STR-LGDAT sy-vline
WA_/SCWM/RL01S_STR-ESTAT sy-vline
WA_/SCWM/RL01S_STR-ASTAT sy-vline
WA_/SCWM/RL01S_STR-ISTAT sy-vline
WA_/SCWM/RL01S_STR-GSTAT sy-vline
WA_/SCWM/RL01S_STR-PRAUS sy-vline
WA_/SCWM/RL01S_STR-ESICO sy-vline
WA_/SCWM/RL01S_STR-ASICO sy-vline
WA_/SCWM/RL01S_STR-ISICO sy-vline
WA_/SCWM/RL01S_STR-GICO sy-vline
WA_/SCWM/RL01S_STR-LKICO sy-vline
WA_/SCWM/RL01S_STR-VKICO sy-vline
WA_/SCWM/RL01S_STR-DPICO sy-vline
WA_/SCWM/RL01S_STR-PRA01 sy-vline
WA_/SCWM/RL01S_STR-PRA02 sy-vline
WA_/SCWM/RL01S_STR-PRA03 sy-vline
WA_/SCWM/RL01S_STR-PRA04 sy-vline
WA_/SCWM/RL01S_STR-PRA05 sy-vline
WA_/SCWM/RL01S_STR-PRA06 sy-vline
WA_/SCWM/RL01S_STR-PRA07 sy-vline
WA_/SCWM/RL01S_STR-PRA08 sy-vline
WA_/SCWM/RL01S_STR-PRA09 sy-vline
WA_/SCWM/RL01S_STR-PRA10 sy-vline
WA_/SCWM/RL01S_STR-PRA11 sy-vline
WA_/SCWM/RL01S_STR-PRA12 sy-vline
WA_/SCWM/RL01S_STR-PRA13 sy-vline
WA_/SCWM/RL01S_STR-PRA14 sy-vline
WA_/SCWM/RL01S_STR-PRA15 sy-vline
WA_/SCWM/RL01S_STR-PRA16 sy-vline
WA_/SCWM/RL01S_STR-PRA17 sy-vline
WA_/SCWM/RL01S_STR-PRA18 sy-vline
WA_/SCWM/RL01S_STR-PRA19 sy-vline
WA_/SCWM/RL01S_STR-PRA20 sy-vline
WA_/SCWM/RL01S_STR-IVATX sy-vline
WA_/SCWM/RL01S_STR-PRPRO sy-vline
WA_/SCWM/RL01S_STR-IVSTX sy-vline
WA_/SCWM/RL01S_STR-IMICO sy-vline
WA_/SCWM/RL01S_STR-LODAT sy-vline
WA_/SCWM/RL01S_STR-VBELN sy-vline
WA_/SCWM/RL01S_STR-AIRES sy-vline
WA_/SCWM/RL01S_STR-STRES sy-vline
WA_/SCWM/RL01S_STR-LVRES sy-vline
WA_/SCWM/RL01S_STR-BNRES sy-vline
WA_/SCWM/RL01S_STR-DERES sy-vline
WA_/SCWM/RL01S_STR-LBRES sy-vline
WA_/SCWM/RL01S_STR-ANRES sy-vline
WA_/SCWM/RL01S_STR-RGRES sy-vline
WA_/SCWM/RL01S_STR-BDRES sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.