ABAP Select data from SAP table CF500 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 CF500 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 CF500. 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 CF500 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_CF500 TYPE STANDARD TABLE OF CF500,
      WA_CF500 TYPE CF500,
      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: <CF500> TYPE CF500.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CF500
*  INTO TABLE @DATA(IT_CF5002).
*--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_CF500 INDEX 1 INTO DATA(WA_CF5002).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_CF500 ASSIGNING <CF500>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<CF500>-MANDT = 1.
<CF500>-VERSIO = 1.
<CF500>-PLACTI = 1.
<CF500>-YEARB = 1.
<CF500>-PERDE = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CF500-VERSO, sy-vline,
WA_CF500-COMPNY, sy-vline,
WA_CF500-BUKRS1, sy-vline,
WA_CF500-BUSARE, sy-vline,
WA_CF500-CONARE, sy-vline,
WA_CF500-PRFCTR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CF500 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_CF500 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_CF500 INTO WA_CF500. *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 VERSIO CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CF500-VERSIO IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-VERSIO.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field YEARB CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_CF500-YEARB IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-YEARB.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit GJAHR, internal->external for field YEOAPR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_CF500-YEOAPR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-YEOAPR.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit OBART, internal->external for field OBJTYP CALL FUNCTION 'CONVERSION_EXIT_OBART_OUTPUT' EXPORTING input = WA_CF500-OBJTYP IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-OBJTYP.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit GJAHR, internal->external for field BGYEAR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_CF500-BGYEAR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-BGYEAR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field EDYEAR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_CF500-EDYEAR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-EDYEAR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field ACPRCO CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_CF500-ACPRCO IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-ACPRCO.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field ACQUIS CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_CF500-ACQUIS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-ACQUIS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field DIVEST CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_CF500-DIVEST IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-DIVEST.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field TRAPOS CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_CF500-TRAPOS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-TRAPOS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field REVCUY CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_CF500-REVCUY IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-REVCUY.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field DEPBEY CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_CF500-DEPBEY IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-DEPBEY.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field DEPCUY CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_CF500-DEPCUY IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-DEPCUY.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field INVCUY CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_CF500-INVCUY IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-INVCUY.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field REINVA CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_CF500-REINVA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-REINVA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field INSVAL CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_CF500-INSVAL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-INSVAL.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC132, internal->external for field INTRCY CALL FUNCTION 'CONVERSION_EXIT_AC132_OUTPUT' EXPORTING input = WA_CF500-INTRCY IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-INTRCY.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field INCOST CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_CF500-INCOST IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-INCOST.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC152, internal->external for field EXCOST CALL FUNCTION 'CONVERSION_EXIT_AC152_OUTPUT' EXPORTING input = WA_CF500-EXCOST IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF500-EXCOST.
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_CF500_STR,
MANDT TYPE STRING,
VERSIO TYPE STRING,
PLACTI TYPE STRING,
YEARB TYPE STRING,
PERDE TYPE STRING,
VERSO TYPE STRING,
COMPNY TYPE STRING,
BUKRS1 TYPE STRING,
BUSARE TYPE STRING,
CONARE TYPE STRING,
PRFCTR TYPE STRING,
COSCTR TYPE STRING,
PLANTL TYPE STRING,
INVPRG TYPE STRING,
YEOAPR TYPE STRING,
RECNR TYPE STRING,
AEDTM TYPE STRING,
UNAME TYPE STRING,
VALTY TYPE STRING,
BSVERS TYPE STRING,
FSTAKY TYPE STRING,
CHACCT TYPE STRING,
GLACCT TYPE STRING,
CHODEP TYPE STRING,
DEPARE TYPE STRING,
ASSCLA TYPE STRING,
DEPRKY TYPE STRING,
REAINV TYPE STRING,
PRJTYP TYPE STRING,
ORDTYP TYPE STRING,
OBJTYP TYPE STRING,
CLASCL TYPE STRING,
PLYEUS TYPE STRING,
BGYEAR TYPE STRING,
BEGPER TYPE STRING,
EDYEAR TYPE STRING,
ENDPER TYPE STRING,
CNTRY TYPE STRING,
ASSLOC TYPE STRING,
PLALOC TYPE STRING,
VERSO_WAERS TYPE STRING,
ACPRCO TYPE STRING,
ACQUIS TYPE STRING,
DIVEST TYPE STRING,
TRAPOS TYPE STRING,
REVCUY TYPE STRING,
DEPBEY TYPE STRING,
DEPCUY TYPE STRING,
INVCUY TYPE STRING,
REINVA TYPE STRING,
INSVAL TYPE STRING,
INTRCY TYPE STRING,
TOMACO TYPE STRING,
INCOST TYPE STRING,
EXCOST TYPE STRING,
IMTOVA TYPE STRING,
IMVAYR TYPE STRING,
IMTOCP TYPE STRING,
IMCPYR TYPE STRING,
METOVA TYPE STRING,
MEVAYR TYPE STRING,
FCTOVA TYPE STRING,
FCVAYR TYPE STRING,END OF T_EKKO_STR. DATA: WA_CF500_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_CF500_STR-MANDT sy-vline
WA_CF500_STR-VERSIO sy-vline
WA_CF500_STR-PLACTI sy-vline
WA_CF500_STR-YEARB sy-vline
WA_CF500_STR-PERDE sy-vline
WA_CF500_STR-VERSO sy-vline
WA_CF500_STR-COMPNY sy-vline
WA_CF500_STR-BUKRS1 sy-vline
WA_CF500_STR-BUSARE sy-vline
WA_CF500_STR-CONARE sy-vline
WA_CF500_STR-PRFCTR sy-vline
WA_CF500_STR-COSCTR sy-vline
WA_CF500_STR-PLANTL sy-vline
WA_CF500_STR-INVPRG sy-vline
WA_CF500_STR-YEOAPR sy-vline
WA_CF500_STR-RECNR sy-vline
WA_CF500_STR-AEDTM sy-vline
WA_CF500_STR-UNAME sy-vline
WA_CF500_STR-VALTY sy-vline
WA_CF500_STR-BSVERS sy-vline
WA_CF500_STR-FSTAKY sy-vline
WA_CF500_STR-CHACCT sy-vline
WA_CF500_STR-GLACCT sy-vline
WA_CF500_STR-CHODEP sy-vline
WA_CF500_STR-DEPARE sy-vline
WA_CF500_STR-ASSCLA sy-vline
WA_CF500_STR-DEPRKY sy-vline
WA_CF500_STR-REAINV sy-vline
WA_CF500_STR-PRJTYP sy-vline
WA_CF500_STR-ORDTYP sy-vline
WA_CF500_STR-OBJTYP sy-vline
WA_CF500_STR-CLASCL sy-vline
WA_CF500_STR-PLYEUS sy-vline
WA_CF500_STR-BGYEAR sy-vline
WA_CF500_STR-BEGPER sy-vline
WA_CF500_STR-EDYEAR sy-vline
WA_CF500_STR-ENDPER sy-vline
WA_CF500_STR-CNTRY sy-vline
WA_CF500_STR-ASSLOC sy-vline
WA_CF500_STR-PLALOC sy-vline
WA_CF500_STR-VERSO_WAERS sy-vline
WA_CF500_STR-ACPRCO sy-vline
WA_CF500_STR-ACQUIS sy-vline
WA_CF500_STR-DIVEST sy-vline
WA_CF500_STR-TRAPOS sy-vline
WA_CF500_STR-REVCUY sy-vline
WA_CF500_STR-DEPBEY sy-vline
WA_CF500_STR-DEPCUY sy-vline
WA_CF500_STR-INVCUY sy-vline
WA_CF500_STR-REINVA sy-vline
WA_CF500_STR-INSVAL sy-vline
WA_CF500_STR-INTRCY sy-vline
WA_CF500_STR-TOMACO sy-vline
WA_CF500_STR-INCOST sy-vline
WA_CF500_STR-EXCOST sy-vline
WA_CF500_STR-IMTOVA sy-vline
WA_CF500_STR-IMVAYR sy-vline
WA_CF500_STR-IMTOCP sy-vline
WA_CF500_STR-IMCPYR sy-vline
WA_CF500_STR-METOVA sy-vline
WA_CF500_STR-MEVAYR sy-vline
WA_CF500_STR-FCTOVA sy-vline
WA_CF500_STR-FCVAYR sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.