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