ABAP Select data from SAP table RCEVZ 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 RCEVZ 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 RCEVZ. 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 RCEVZ 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_RCEVZ TYPE STANDARD TABLE OF RCEVZ, WA_RCEVZ TYPE RCEVZ, 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: <RCEVZ> TYPE RCEVZ. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_RCEVZ. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM RCEVZ INTO TABLE IT_RCEVZ. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM RCEVZ * INTO TABLE @DATA(IT_RCEVZ2). *--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_RCEVZ INDEX 1 INTO DATA(WA_RCEVZ2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_RCEVZ ASSIGNING <RCEVZ>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<RCEVZ>-MANDT = 1.
<RCEVZ>-BLUB1 = 1.
<RCEVZ>-BLUB2 = 1.
<RCEVZ>-BLUB3 = 1.
<RCEVZ>-BLUB4 = 1.
ENDLOOP. LOOP AT IT_RCEVZ INTO WA_RCEVZ. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_RCEVZ-BLUB5, sy-vline,
WA_RCEVZ-ENTRY_ACT, sy-vline,
WA_RCEVZ-ENTRIES, sy-vline,
WA_RCEVZ-WERKS, sy-vline,
WA_RCEVZ-ARBPL, sy-vline,
WA_RCEVZ-AKTOP, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RCEVZ 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_RCEVZ 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_RCEVZ INTO WA_RCEVZ. *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_RCEVZ-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RCEVZ-MATNR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field PLNNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RCEVZ-PLNNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RCEVZ-PLNNR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit NUMCV, internal->external for field VORNR CALL FUNCTION 'CONVERSION_EXIT_NUMCV_OUTPUT' EXPORTING input = WA_RCEVZ-VORNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RCEVZ-VORNR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit NUMCV, internal->external for field UVORN CALL FUNCTION 'CONVERSION_EXIT_NUMCV_OUTPUT' EXPORTING input = WA_RCEVZ-UVORN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RCEVZ-UVORN.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field MSEHI CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_RCEVZ-MSEHI IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RCEVZ-MSEHI.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field MSEH1 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_RCEVZ-MSEH1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RCEVZ-MSEH1.
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_RCEVZ_STR,
MANDT TYPE STRING,
BLUB1 TYPE STRING,
BLUB2 TYPE STRING,
BLUB3 TYPE STRING,
BLUB4 TYPE STRING,
BLUB5 TYPE STRING,
ENTRY_ACT TYPE STRING,
ENTRIES TYPE STRING,
WERKS TYPE STRING,
ARBPL TYPE STRING,
AKTOP TYPE STRING,
MATNR TYPE STRING,
PLNNR TYPE STRING,
VORNR TYPE STRING,
UVORN TYPE STRING,
ASWKZ TYPE STRING,
VRFNR TYPE STRING,
KTEX1 TYPE STRING,
MARK TYPE STRING,
ANZDF TYPE STRING,
ANZS TYPE STRING,
ANZI TYPE STRING,
TOPNR TYPE STRING,
METNR TYPE STRING,
MZART TYPE STRING,
ZEATX TYPE STRING,
PAWRT TYPE STRING,
MSEHI TYPE STRING,
FOMNR TYPE STRING,
ARBAV TYPE STRING,
VRFAV TYPE STRING,
METAV TYPE STRING,
FOMAV TYPE STRING,
TABAV TYPE STRING,
MENAV TYPE STRING,
TTEX1 TYPE STRING,
TTEX2 TYPE STRING,
TTEX3 TYPE STRING,
ZEAR1 TYPE STRING,
PAWR1 TYPE STRING,
MSEH1 TYPE STRING,
AMANU TYPE STRING,
AAUTO TYPE STRING,
PIDTX TYPE STRING,
PIDTL TYPE STRING,
SUMW1 TYPE STRING,
CAPVP TYPE STRING,
SUMW2 TYPE STRING,
PROZENT TYPE STRING,END OF T_EKKO_STR. DATA: WA_RCEVZ_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_RCEVZ_STR-MANDT sy-vline
WA_RCEVZ_STR-BLUB1 sy-vline
WA_RCEVZ_STR-BLUB2 sy-vline
WA_RCEVZ_STR-BLUB3 sy-vline
WA_RCEVZ_STR-BLUB4 sy-vline
WA_RCEVZ_STR-BLUB5 sy-vline
WA_RCEVZ_STR-ENTRY_ACT sy-vline
WA_RCEVZ_STR-ENTRIES sy-vline
WA_RCEVZ_STR-WERKS sy-vline
WA_RCEVZ_STR-ARBPL sy-vline
WA_RCEVZ_STR-AKTOP sy-vline
WA_RCEVZ_STR-MATNR sy-vline
WA_RCEVZ_STR-PLNNR sy-vline
WA_RCEVZ_STR-VORNR sy-vline
WA_RCEVZ_STR-UVORN sy-vline
WA_RCEVZ_STR-ASWKZ sy-vline
WA_RCEVZ_STR-VRFNR sy-vline
WA_RCEVZ_STR-KTEX1 sy-vline
WA_RCEVZ_STR-MARK sy-vline
WA_RCEVZ_STR-ANZDF sy-vline
WA_RCEVZ_STR-ANZS sy-vline
WA_RCEVZ_STR-ANZI sy-vline
WA_RCEVZ_STR-TOPNR sy-vline
WA_RCEVZ_STR-METNR sy-vline
WA_RCEVZ_STR-MZART sy-vline
WA_RCEVZ_STR-ZEATX sy-vline
WA_RCEVZ_STR-PAWRT sy-vline
WA_RCEVZ_STR-MSEHI sy-vline
WA_RCEVZ_STR-FOMNR sy-vline
WA_RCEVZ_STR-ARBAV sy-vline
WA_RCEVZ_STR-VRFAV sy-vline
WA_RCEVZ_STR-METAV sy-vline
WA_RCEVZ_STR-FOMAV sy-vline
WA_RCEVZ_STR-TABAV sy-vline
WA_RCEVZ_STR-MENAV sy-vline
WA_RCEVZ_STR-TTEX1 sy-vline
WA_RCEVZ_STR-TTEX2 sy-vline
WA_RCEVZ_STR-TTEX3 sy-vline
WA_RCEVZ_STR-ZEAR1 sy-vline
WA_RCEVZ_STR-PAWR1 sy-vline
WA_RCEVZ_STR-MSEH1 sy-vline
WA_RCEVZ_STR-AMANU sy-vline
WA_RCEVZ_STR-AAUTO sy-vline
WA_RCEVZ_STR-PIDTX sy-vline
WA_RCEVZ_STR-PIDTL sy-vline
WA_RCEVZ_STR-SUMW1 sy-vline
WA_RCEVZ_STR-CAPVP sy-vline
WA_RCEVZ_STR-SUMW2 sy-vline
WA_RCEVZ_STR-PROZENT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.