ABAP Select data from SAP table COCAUFVINF 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 COCAUFVINF 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 COCAUFVINF. 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 COCAUFVINF 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_COCAUFVINF TYPE STANDARD TABLE OF COCAUFVINF,
      WA_COCAUFVINF TYPE COCAUFVINF,
      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: <COCAUFVINF> TYPE COCAUFVINF.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM COCAUFVINF
*  INTO TABLE @DATA(IT_COCAUFVINF2).
*--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_COCAUFVINF INDEX 1 INTO DATA(WA_COCAUFVINF2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_COCAUFVINF ASSIGNING <COCAUFVINF>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<COCAUFVINF>-MATXT = 1.
<COCAUFVINF>-KONTI = 1.
<COCAUFVINF>-STTXT = 1.
<COCAUFVINF>-ASTEX = 1.
<COCAUFVINF>-TXTKZ = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_COCAUFVINF-STDNR, sy-vline,
WA_COCAUFVINF-AVOUEB, sy-vline,
WA_COCAUFVINF-PRTRV, sy-vline,
WA_COCAUFVINF-PROJN, sy-vline,
WA_COCAUFVINF-SLDTV, sy-vline,
WA_COCAUFVINF-SLDTB, sy-vline.
ENDLOOP. *Add any further fields from structure WA_COCAUFVINF 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_COCAUFVINF 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_COCAUFVINF INTO WA_COCAUFVINF. *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 STDNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_COCAUFVINF-STDNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_COCAUFVINF-STDNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

*Conversion exit KONPT, internal->external for field PSPNR CALL FUNCTION 'CONVERSION_EXIT_KONPT_OUTPUT' EXPORTING input = WA_COCAUFVINF-PSPNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_COCAUFVINF-PSPNR.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit ALPHA, internal->external for field VBELN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_COCAUFVINF-VBELN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_COCAUFVINF-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_COCAUFVINF_STR,
MATXT TYPE STRING,
KONTI TYPE STRING,
STTXT TYPE STRING,
ASTEX TYPE STRING,
TXTKZ TYPE STRING,
STDNR TYPE STRING,
AVOUEB TYPE STRING,
PRTRV TYPE STRING,
PROJN TYPE STRING,
SLDTV TYPE STRING,
SLDTB TYPE STRING,
FLG_TERM TYPE STRING,
FLG_TERDIA TYPE STRING,
FLG_DIRECT TYPE STRING,
FLG_TRMV TYPE STRING,
FLG_TRME TYPE STRING,
GWEMG TYPE STRING,
GIAMG TYPE STRING,
MIMEZ TYPE STRING,
APROZ TYPE STRING,
IAPRZ TYPE STRING,
VERAN TYPE STRING,
NWART TYPE STRING,
POSNR TYPE STRING,
REDKZ_TX TYPE STRING,
TERKZ_TX TYPE STRING,
TRKZP_TX TYPE STRING,
PLART_TX TYPE STRING,
TMBAS TYPE STRING,
TMBAS_TX TYPE STRING,
MATNR TYPE STRING,
FLG_PRINT TYPE STRING,
ARTTEXT TYPE STRING,
ASTTX TYPE STRING,
KORRK TYPE STRING,
FREIKZ TYPE STRING,
PLAFKZ TYPE STRING,
UMSKZ TYPE STRING,
BMEINS TYPE STRING,
BMENGE TYPE STRING,
BAUMNG TYPE STRING,
FLG_CALC TYPE STRING,
LOSGR TYPE STRING,
TYPKZ TYPE STRING,
CREA_APL TYPE STRING,
INDBT TYPE STRING,
O_SALDO TYPE STRING,
K_SALDO TYPE STRING,
M_BAUGR TYPE STRING,
FLG_RUCK TYPE STRING,
FLG_SERV TYPE STRING,
PSPNR TYPE STRING,
FLG_LVS TYPE STRING,
FLG_ADDR TYPE STRING,
FLG_LFINF TYPE STRING,
AUCOST TYPE STRING,
AUTERM TYPE STRING,
FLG_FREI TYPE STRING,
FLG_TABG TYPE STRING,
FLG_PARENT TYPE STRING,
NSTART_TRM TYPE STRING,
NSTT_TRM TYPE STRING,
NEND_TRM TYPE STRING,
NENT_TRM TYPE STRING,
NSTART_IST TYPE STRING,
NSTT_IST TYPE STRING,
NEND_IST TYPE STRING,
NENT_IST TYPE STRING,
AUKBED TYPE STRING,
AUDISP TYPE STRING,
CONV_FEHL TYPE STRING,
PKNUM TYPE STRING,
PKPOS TYPE STRING,
FEHL TYPE STRING,
PRREG TYPE STRING,
FLG_CRPROJ TYPE STRING,
MA_UNBW TYPE STRING,
KZAVC TYPE STRING,
PRMBD TYPE STRING,
VBELN TYPE STRING,
VBELP TYPE STRING,
KONSI TYPE STRING,
LEIHG TYPE STRING,
FLG_IMMO TYPE STRING,
FLG_HHM TYPE STRING,
FLG_AIPP TYPE STRING,
FLG_ASS TYPE STRING,
FLG_AIB TYPE STRING,
FLG_AFAS TYPE STRING,
FLG_PMSD TYPE STRING,
FLGSER TYPE STRING,
AUFKT TYPE STRING,
LINE TYPE STRING,
TXCHG TYPE STRING,
FLG_COMMUNICATION TYPE STRING,
ACT_CHANGED TYPE STRING,
FLG_MD TYPE STRING,
MDSTP TYPE STRING,
NPLDA TYPE STRING,
SGT_SCAT TYPE STRING,
HAS_MAIN_WORK TYPE STRING,END OF T_EKKO_STR. DATA: WA_COCAUFVINF_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_COCAUFVINF_STR-MATXT sy-vline
WA_COCAUFVINF_STR-KONTI sy-vline
WA_COCAUFVINF_STR-STTXT sy-vline
WA_COCAUFVINF_STR-ASTEX sy-vline
WA_COCAUFVINF_STR-TXTKZ sy-vline
WA_COCAUFVINF_STR-STDNR sy-vline
WA_COCAUFVINF_STR-AVOUEB sy-vline
WA_COCAUFVINF_STR-PRTRV sy-vline
WA_COCAUFVINF_STR-PROJN sy-vline
WA_COCAUFVINF_STR-SLDTV sy-vline
WA_COCAUFVINF_STR-SLDTB sy-vline
WA_COCAUFVINF_STR-FLG_TERM sy-vline
WA_COCAUFVINF_STR-FLG_TERDIA sy-vline
WA_COCAUFVINF_STR-FLG_DIRECT sy-vline
WA_COCAUFVINF_STR-FLG_TRMV sy-vline
WA_COCAUFVINF_STR-FLG_TRME sy-vline
WA_COCAUFVINF_STR-GWEMG sy-vline
WA_COCAUFVINF_STR-GIAMG sy-vline
WA_COCAUFVINF_STR-MIMEZ sy-vline
WA_COCAUFVINF_STR-APROZ sy-vline
WA_COCAUFVINF_STR-IAPRZ sy-vline
WA_COCAUFVINF_STR-VERAN sy-vline
WA_COCAUFVINF_STR-NWART sy-vline
WA_COCAUFVINF_STR-POSNR sy-vline
WA_COCAUFVINF_STR-REDKZ_TX sy-vline
WA_COCAUFVINF_STR-TERKZ_TX sy-vline
WA_COCAUFVINF_STR-TRKZP_TX sy-vline
WA_COCAUFVINF_STR-PLART_TX sy-vline
WA_COCAUFVINF_STR-TMBAS sy-vline
WA_COCAUFVINF_STR-TMBAS_TX sy-vline
WA_COCAUFVINF_STR-MATNR sy-vline
WA_COCAUFVINF_STR-FLG_PRINT sy-vline
WA_COCAUFVINF_STR-ARTTEXT sy-vline
WA_COCAUFVINF_STR-ASTTX sy-vline
WA_COCAUFVINF_STR-KORRK sy-vline
WA_COCAUFVINF_STR-FREIKZ sy-vline
WA_COCAUFVINF_STR-PLAFKZ sy-vline
WA_COCAUFVINF_STR-UMSKZ sy-vline
WA_COCAUFVINF_STR-BMEINS sy-vline
WA_COCAUFVINF_STR-BMENGE sy-vline
WA_COCAUFVINF_STR-BAUMNG sy-vline
WA_COCAUFVINF_STR-FLG_CALC sy-vline
WA_COCAUFVINF_STR-LOSGR sy-vline
WA_COCAUFVINF_STR-TYPKZ sy-vline
WA_COCAUFVINF_STR-CREA_APL sy-vline
WA_COCAUFVINF_STR-INDBT sy-vline
WA_COCAUFVINF_STR-O_SALDO sy-vline
WA_COCAUFVINF_STR-K_SALDO sy-vline
WA_COCAUFVINF_STR-M_BAUGR sy-vline
WA_COCAUFVINF_STR-FLG_RUCK sy-vline
WA_COCAUFVINF_STR-FLG_SERV sy-vline
WA_COCAUFVINF_STR-PSPNR sy-vline
WA_COCAUFVINF_STR-FLG_LVS sy-vline
WA_COCAUFVINF_STR-FLG_ADDR sy-vline
WA_COCAUFVINF_STR-FLG_LFINF sy-vline
WA_COCAUFVINF_STR-AUCOST sy-vline
WA_COCAUFVINF_STR-AUTERM sy-vline
WA_COCAUFVINF_STR-FLG_FREI sy-vline
WA_COCAUFVINF_STR-FLG_TABG sy-vline
WA_COCAUFVINF_STR-FLG_PARENT sy-vline
WA_COCAUFVINF_STR-NSTART_TRM sy-vline
WA_COCAUFVINF_STR-NSTT_TRM sy-vline
WA_COCAUFVINF_STR-NEND_TRM sy-vline
WA_COCAUFVINF_STR-NENT_TRM sy-vline
WA_COCAUFVINF_STR-NSTART_IST sy-vline
WA_COCAUFVINF_STR-NSTT_IST sy-vline
WA_COCAUFVINF_STR-NEND_IST sy-vline
WA_COCAUFVINF_STR-NENT_IST sy-vline
WA_COCAUFVINF_STR-AUKBED sy-vline
WA_COCAUFVINF_STR-AUDISP sy-vline
WA_COCAUFVINF_STR-CONV_FEHL sy-vline
WA_COCAUFVINF_STR-PKNUM sy-vline
WA_COCAUFVINF_STR-PKPOS sy-vline
WA_COCAUFVINF_STR-FEHL sy-vline
WA_COCAUFVINF_STR-PRREG sy-vline
WA_COCAUFVINF_STR-FLG_CRPROJ sy-vline
WA_COCAUFVINF_STR-MA_UNBW sy-vline
WA_COCAUFVINF_STR-KZAVC sy-vline
WA_COCAUFVINF_STR-PRMBD sy-vline
WA_COCAUFVINF_STR-VBELN sy-vline
WA_COCAUFVINF_STR-VBELP sy-vline
WA_COCAUFVINF_STR-KONSI sy-vline
WA_COCAUFVINF_STR-LEIHG sy-vline
WA_COCAUFVINF_STR-FLG_IMMO sy-vline
WA_COCAUFVINF_STR-FLG_HHM sy-vline
WA_COCAUFVINF_STR-FLG_AIPP sy-vline
WA_COCAUFVINF_STR-FLG_ASS sy-vline
WA_COCAUFVINF_STR-FLG_AIB sy-vline
WA_COCAUFVINF_STR-FLG_AFAS sy-vline
WA_COCAUFVINF_STR-FLG_PMSD sy-vline
WA_COCAUFVINF_STR-FLGSER sy-vline
WA_COCAUFVINF_STR-AUFKT sy-vline
WA_COCAUFVINF_STR-LINE sy-vline
WA_COCAUFVINF_STR-TXCHG sy-vline
WA_COCAUFVINF_STR-FLG_COMMUNICATION sy-vline
WA_COCAUFVINF_STR-ACT_CHANGED sy-vline
WA_COCAUFVINF_STR-FLG_MD sy-vline
WA_COCAUFVINF_STR-MDSTP sy-vline
WA_COCAUFVINF_STR-NPLDA sy-vline
WA_COCAUFVINF_STR-SGT_SCAT sy-vline
WA_COCAUFVINF_STR-HAS_MAIN_WORK sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.