ABAP Select data from SAP table CORUF 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 CORUF 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 CORUF. 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 CORUF 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_CORUF TYPE STANDARD TABLE OF CORUF,
      WA_CORUF TYPE CORUF,
      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: <CORUF> TYPE CORUF.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CORUF
*  INTO TABLE @DATA(IT_CORUF2).
*--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_CORUF INDEX 1 INTO DATA(WA_CORUF2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_CORUF ASSIGNING <CORUF>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<CORUF>-AUFNR = 1.
<CORUF>-APLFL = 1.
<CORUF>-VORNR = 1.
<CORUF>-UVORN = 1.
<CORUF>-SUMNR = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CORUF-RUECK, sy-vline,
WA_CORUF-WERKS, sy-vline,
WA_CORUF-ARBPL, sy-vline,
WA_CORUF-DISPO, sy-vline,
WA_CORUF-PLGRP, sy-vline,
WA_CORUF-MATNR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CORUF 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_CORUF 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_CORUF INTO WA_CORUF. *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 AUFNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CORUF-AUFNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-AUFNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field APLFL CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CORUF-APLFL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-APLFL.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit MATN1, internal->external for field MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_CORUF-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-MATNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field VGE01 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CORUF-VGE01 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-VGE01.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field VGE02 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CORUF-VGE02 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-VGE02.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field VGE03 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CORUF-VGE03 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-VGE03.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field VGE04 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CORUF-VGE04 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-VGE04.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field VGE05 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CORUF-VGE05 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-VGE05.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field VGE06 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CORUF-VGE06 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-VGE06.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field RUEP1 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CORUF-RUEP1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-RUEP1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit KONPD, internal->external for field PS_PROJD CALL FUNCTION 'CONVERSION_EXIT_KONPD_OUTPUT' EXPORTING input = WA_CORUF-PS_PROJD IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-PS_PROJD.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ABPSP, internal->external for field PS_PROJE CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_CORUF-PS_PROJE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-PS_PROJE.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field EQUNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CORUF-EQUNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-EQUNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit TPLNR, internal->external for field TPLNR CALL FUNCTION 'CONVERSION_EXIT_TPLNR_OUTPUT' EXPORTING input = WA_CORUF-TPLNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-TPLNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field SPRE1 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CORUF-SPRE1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-SPRE1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field SLE01 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CORUF-SLE01 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-SLE01.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field SLE02 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CORUF-SLE02 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-SLE02.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field SLE03 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CORUF-SLE03 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-SLE03.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field SLE04 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CORUF-SLE04 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-SLE04.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field SLE05 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CORUF-SLE05 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-SLE05.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field SLE06 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CORUF-SLE06 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CORUF-SLE06.
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_CORUF_STR,
AUFNR TYPE STRING,
APLFL TYPE STRING,
VORNR TYPE STRING,
UVORN TYPE STRING,
SUMNR TYPE STRING,
RUECK TYPE STRING,
WERKS TYPE STRING,
ARBPL TYPE STRING,
DISPO TYPE STRING,
PLGRP TYPE STRING,
MATNR TYPE STRING,
GLTRS TYPE STRING,
GSTRS TYPE STRING,
STATS TYPE STRING,
TEILR TYPE STRING,
AUTER TYPE STRING,
ENDRU TYPE STRING,
AUSBU TYPE STRING,
ENDRUVS TYPE STRING,
OFFVG TYPE STRING,
RUPFL TYPE STRING,
ISERF TYPE STRING,
SCHAE TYPE STRING,
SELEK TYPE STRING,
SLMAT TYPE STRING,
SLDIS TYPE STRING,
SLPLN TYPE STRING,
SLPLT TYPE STRING,
SLKNT TYPE STRING,
SLM01 TYPE STRING,
VGE01 TYPE STRING,
SLM02 TYPE STRING,
VGE02 TYPE STRING,
SLM03 TYPE STRING,
VGE03 TYPE STRING,
SLM04 TYPE STRING,
VGE04 TYPE STRING,
SLM05 TYPE STRING,
VGE05 TYPE STRING,
SLM06 TYPE STRING,
VGE06 TYPE STRING,
RUM01 TYPE STRING,
RUM02 TYPE STRING,
RUM03 TYPE STRING,
RUM04 TYPE STRING,
RUM05 TYPE STRING,
RUM06 TYPE STRING,
RUMP1 TYPE STRING,
RUEP1 TYPE STRING,
NAME TYPE STRING,
TXTKZ TYPE STRING,
SMENG TYPE STRING,
SSCRP TYPE STRING,
RMZHL TYPE STRING,
PS_PROJD TYPE STRING,
PS_PROJE TYPE STRING,
LINE1 TYPE STRING,
LINE2 TYPE STRING,
STOKZ TYPE STRING,
IDAUV TYPE STRING,
UPD TYPE STRING,
UPD_ICON TYPE STRING,
ZDETA TYPE STRING,
CPROT TYPE STRING,
FEVOR TYPE STRING,
SLFEV TYPE STRING,
GPROT TYPE STRING,
KAPAR TYPE STRING,
SPLIT TYPE STRING,
FLG_SPL TYPE STRING,
PROZENT TYPE STRING,
COSTJ TYPE STRING,
EQUNR TYPE STRING,
TPLNR TYPE STRING,
LMENG TYPE STRING,
XMENG TYPE STRING,
RMENG TYPE STRING,
SPRM1 TYPE STRING,
SPRE1 TYPE STRING,
GM_ICON TYPE STRING,
KRUECK TYPE STRING,
VERID TYPE STRING,
FLG_ERRGM TYPE STRING,
FLG_PREGM TYPE STRING,
FLG_ERRCO TYPE STRING,
FLG_PRECO TYPE STRING,
FLG_FMST TYPE STRING,
SLE01 TYPE STRING,
SLE02 TYPE STRING,
SLE03 TYPE STRING,
SLE04 TYPE STRING,
SLE05 TYPE STRING,
SLE06 TYPE STRING,
RUFHG TYPE STRING,
ERUVG TYPE STRING,
OPRC TYPE STRING,
CCANC TYPE STRING,
GCANC TYPE STRING,END OF T_EKKO_STR. DATA: WA_CORUF_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_CORUF_STR-AUFNR sy-vline
WA_CORUF_STR-APLFL sy-vline
WA_CORUF_STR-VORNR sy-vline
WA_CORUF_STR-UVORN sy-vline
WA_CORUF_STR-SUMNR sy-vline
WA_CORUF_STR-RUECK sy-vline
WA_CORUF_STR-WERKS sy-vline
WA_CORUF_STR-ARBPL sy-vline
WA_CORUF_STR-DISPO sy-vline
WA_CORUF_STR-PLGRP sy-vline
WA_CORUF_STR-MATNR sy-vline
WA_CORUF_STR-GLTRS sy-vline
WA_CORUF_STR-GSTRS sy-vline
WA_CORUF_STR-STATS sy-vline
WA_CORUF_STR-TEILR sy-vline
WA_CORUF_STR-AUTER sy-vline
WA_CORUF_STR-ENDRU sy-vline
WA_CORUF_STR-AUSBU sy-vline
WA_CORUF_STR-ENDRUVS sy-vline
WA_CORUF_STR-OFFVG sy-vline
WA_CORUF_STR-RUPFL sy-vline
WA_CORUF_STR-ISERF sy-vline
WA_CORUF_STR-SCHAE sy-vline
WA_CORUF_STR-SELEK sy-vline
WA_CORUF_STR-SLMAT sy-vline
WA_CORUF_STR-SLDIS sy-vline
WA_CORUF_STR-SLPLN sy-vline
WA_CORUF_STR-SLPLT sy-vline
WA_CORUF_STR-SLKNT sy-vline
WA_CORUF_STR-SLM01 sy-vline
WA_CORUF_STR-VGE01 sy-vline
WA_CORUF_STR-SLM02 sy-vline
WA_CORUF_STR-VGE02 sy-vline
WA_CORUF_STR-SLM03 sy-vline
WA_CORUF_STR-VGE03 sy-vline
WA_CORUF_STR-SLM04 sy-vline
WA_CORUF_STR-VGE04 sy-vline
WA_CORUF_STR-SLM05 sy-vline
WA_CORUF_STR-VGE05 sy-vline
WA_CORUF_STR-SLM06 sy-vline
WA_CORUF_STR-VGE06 sy-vline
WA_CORUF_STR-RUM01 sy-vline
WA_CORUF_STR-RUM02 sy-vline
WA_CORUF_STR-RUM03 sy-vline
WA_CORUF_STR-RUM04 sy-vline
WA_CORUF_STR-RUM05 sy-vline
WA_CORUF_STR-RUM06 sy-vline
WA_CORUF_STR-RUMP1 sy-vline
WA_CORUF_STR-RUEP1 sy-vline
WA_CORUF_STR-NAME sy-vline
WA_CORUF_STR-TXTKZ sy-vline
WA_CORUF_STR-SMENG sy-vline
WA_CORUF_STR-SSCRP sy-vline
WA_CORUF_STR-RMZHL sy-vline
WA_CORUF_STR-PS_PROJD sy-vline
WA_CORUF_STR-PS_PROJE sy-vline
WA_CORUF_STR-LINE1 sy-vline
WA_CORUF_STR-LINE2 sy-vline
WA_CORUF_STR-STOKZ sy-vline
WA_CORUF_STR-IDAUV sy-vline
WA_CORUF_STR-UPD sy-vline
WA_CORUF_STR-UPD_ICON sy-vline
WA_CORUF_STR-ZDETA sy-vline
WA_CORUF_STR-CPROT sy-vline
WA_CORUF_STR-FEVOR sy-vline
WA_CORUF_STR-SLFEV sy-vline
WA_CORUF_STR-GPROT sy-vline
WA_CORUF_STR-KAPAR sy-vline
WA_CORUF_STR-SPLIT sy-vline
WA_CORUF_STR-FLG_SPL sy-vline
WA_CORUF_STR-PROZENT sy-vline
WA_CORUF_STR-COSTJ sy-vline
WA_CORUF_STR-EQUNR sy-vline
WA_CORUF_STR-TPLNR sy-vline
WA_CORUF_STR-LMENG sy-vline
WA_CORUF_STR-XMENG sy-vline
WA_CORUF_STR-RMENG sy-vline
WA_CORUF_STR-SPRM1 sy-vline
WA_CORUF_STR-SPRE1 sy-vline
WA_CORUF_STR-GM_ICON sy-vline
WA_CORUF_STR-KRUECK sy-vline
WA_CORUF_STR-VERID sy-vline
WA_CORUF_STR-FLG_ERRGM sy-vline
WA_CORUF_STR-FLG_PREGM sy-vline
WA_CORUF_STR-FLG_ERRCO sy-vline
WA_CORUF_STR-FLG_PRECO sy-vline
WA_CORUF_STR-FLG_FMST sy-vline
WA_CORUF_STR-SLE01 sy-vline
WA_CORUF_STR-SLE02 sy-vline
WA_CORUF_STR-SLE03 sy-vline
WA_CORUF_STR-SLE04 sy-vline
WA_CORUF_STR-SLE05 sy-vline
WA_CORUF_STR-SLE06 sy-vline
WA_CORUF_STR-RUFHG sy-vline
WA_CORUF_STR-ERUVG sy-vline
WA_CORUF_STR-OPRC sy-vline
WA_CORUF_STR-CCANC sy-vline
WA_CORUF_STR-GCANC sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.