ABAP Select data from SAP table CF002 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 CF002 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 CF002. 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 CF002 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_CF002 TYPE STANDARD TABLE OF CF002,
      WA_CF002 TYPE CF002,
      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: <CF002> TYPE CF002.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CF002
*  INTO TABLE @DATA(IT_CF0022).
*--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_CF002 INDEX 1 INTO DATA(WA_CF0022).


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

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CF002-COMPN, sy-vline,
WA_CF002-RFORM, sy-vline,
WA_CF002-BRNCH, sy-vline,
WA_CF002-ORGKI, sy-vline,
WA_CF002-ORGKE, sy-vline,
WA_CF002-CNTRY, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CF002 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_CF002 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_CF002 INTO WA_CF002. *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 GJAHR, internal->external for field YEARB CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_CF002-YEARB IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF002-YEARB.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

*Conversion exit CUNIT, internal->external for field QENHQ CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CF002-QENHQ IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CF002-QENHQ.
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_CF002_STR,
MANDT TYPE STRING,
RECTY TYPE STRING,
VERSO TYPE STRING,
YEARB TYPE STRING,
PERDE TYPE STRING,
COMPN TYPE STRING,
RFORM TYPE STRING,
BRNCH TYPE STRING,
ORGKI TYPE STRING,
ORGKE TYPE STRING,
CNTRY TYPE STRING,
VALTY TYPE STRING,
RECNR TYPE STRING,
AEDTM TYPE STRING,
UNAME TYPE STRING,
PINTR TYPE STRING,
EMPLY TYPE STRING,
QEMPL TYPE STRING,
WOMNS TYPE STRING,
QWOMN TYPE STRING,
FORGN TYPE STRING,
QFORG TYPE STRING,
WORKR TYPE STRING,
QWORK TYPE STRING,
NEDUC TYPE STRING,
QNEDU TYPE STRING,
LEMPL TYPE STRING,
QLEMP TYPE STRING,
FEMPL TYPE STRING,
QFEMP TYPE STRING,
SEMPL TYPE STRING,
QSEMP TYPE STRING,
BTRAI TYPE STRING,
QBTRA TYPE STRING,
CTRAI TYPE STRING,
QCTRA TYPE STRING,
DEMPL TYPE STRING,
QDEMP TYPE STRING,
ALIVA TYPE STRING,
QALIV TYPE STRING,
INACQ TYPE STRING,
QINAC TYPE STRING,
INSEP TYPE STRING,
QINSE TYPE STRING,
EXACQ TYPE STRING,
QEXAC TYPE STRING,
EXSEP TYPE STRING,
QEXSE TYPE STRING,
SALES TYPE STRING,
CSALE TYPE STRING,
WAGES TYPE STRING,
CWAGE TYPE STRING,
SALAR TYPE STRING,
CSALA TYPE STRING,
PERCO TYPE STRING,
CPERC TYPE STRING,
IPECO TYPE STRING,
CIPEC TYPE STRING,
DUTHO TYPE STRING,
QDUTH TYPE STRING,
MISHO TYPE STRING,
QMISH TYPE STRING,
OVEHO TYPE STRING,
QOVEH TYPE STRING,
PREQA TYPE STRING,
QPREQ TYPE STRING,
PREQC TYPE STRING,
CPREQ TYPE STRING,
PMARC TYPE STRING,
CPMAR TYPE STRING,
UNICO TYPE STRING,
QUNIC TYPE STRING,
ADVER TYPE STRING,
QADVE TYPE STRING,
OTHER TYPE STRING,
QOTHE TYPE STRING,
APPLI TYPE STRING,
QAPPL TYPE STRING,
INVIT TYPE STRING,
QINVI TYPE STRING,
PRESN TYPE STRING,
QPRES TYPE STRING,
EDUCC TYPE STRING,
CEDUC TYPE STRING,
ENHAC TYPE STRING,
CENHC TYPE STRING,
ENHAP TYPE STRING,
QENHP TYPE STRING,
ENHAD TYPE STRING,
QENHD TYPE STRING,
ENHAQ TYPE STRING,
QENHQ TYPE STRING,END OF T_EKKO_STR. DATA: WA_CF002_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_CF002_STR-MANDT sy-vline
WA_CF002_STR-RECTY sy-vline
WA_CF002_STR-VERSO sy-vline
WA_CF002_STR-YEARB sy-vline
WA_CF002_STR-PERDE sy-vline
WA_CF002_STR-COMPN sy-vline
WA_CF002_STR-RFORM sy-vline
WA_CF002_STR-BRNCH sy-vline
WA_CF002_STR-ORGKI sy-vline
WA_CF002_STR-ORGKE sy-vline
WA_CF002_STR-CNTRY sy-vline
WA_CF002_STR-VALTY sy-vline
WA_CF002_STR-RECNR sy-vline
WA_CF002_STR-AEDTM sy-vline
WA_CF002_STR-UNAME sy-vline
WA_CF002_STR-PINTR sy-vline
WA_CF002_STR-EMPLY sy-vline
WA_CF002_STR-QEMPL sy-vline
WA_CF002_STR-WOMNS sy-vline
WA_CF002_STR-QWOMN sy-vline
WA_CF002_STR-FORGN sy-vline
WA_CF002_STR-QFORG sy-vline
WA_CF002_STR-WORKR sy-vline
WA_CF002_STR-QWORK sy-vline
WA_CF002_STR-NEDUC sy-vline
WA_CF002_STR-QNEDU sy-vline
WA_CF002_STR-LEMPL sy-vline
WA_CF002_STR-QLEMP sy-vline
WA_CF002_STR-FEMPL sy-vline
WA_CF002_STR-QFEMP sy-vline
WA_CF002_STR-SEMPL sy-vline
WA_CF002_STR-QSEMP sy-vline
WA_CF002_STR-BTRAI sy-vline
WA_CF002_STR-QBTRA sy-vline
WA_CF002_STR-CTRAI sy-vline
WA_CF002_STR-QCTRA sy-vline
WA_CF002_STR-DEMPL sy-vline
WA_CF002_STR-QDEMP sy-vline
WA_CF002_STR-ALIVA sy-vline
WA_CF002_STR-QALIV sy-vline
WA_CF002_STR-INACQ sy-vline
WA_CF002_STR-QINAC sy-vline
WA_CF002_STR-INSEP sy-vline
WA_CF002_STR-QINSE sy-vline
WA_CF002_STR-EXACQ sy-vline
WA_CF002_STR-QEXAC sy-vline
WA_CF002_STR-EXSEP sy-vline
WA_CF002_STR-QEXSE sy-vline
WA_CF002_STR-SALES sy-vline
WA_CF002_STR-CSALE sy-vline
WA_CF002_STR-WAGES sy-vline
WA_CF002_STR-CWAGE sy-vline
WA_CF002_STR-SALAR sy-vline
WA_CF002_STR-CSALA sy-vline
WA_CF002_STR-PERCO sy-vline
WA_CF002_STR-CPERC sy-vline
WA_CF002_STR-IPECO sy-vline
WA_CF002_STR-CIPEC sy-vline
WA_CF002_STR-DUTHO sy-vline
WA_CF002_STR-QDUTH sy-vline
WA_CF002_STR-MISHO sy-vline
WA_CF002_STR-QMISH sy-vline
WA_CF002_STR-OVEHO sy-vline
WA_CF002_STR-QOVEH sy-vline
WA_CF002_STR-PREQA sy-vline
WA_CF002_STR-QPREQ sy-vline
WA_CF002_STR-PREQC sy-vline
WA_CF002_STR-CPREQ sy-vline
WA_CF002_STR-PMARC sy-vline
WA_CF002_STR-CPMAR sy-vline
WA_CF002_STR-UNICO sy-vline
WA_CF002_STR-QUNIC sy-vline
WA_CF002_STR-ADVER sy-vline
WA_CF002_STR-QADVE sy-vline
WA_CF002_STR-OTHER sy-vline
WA_CF002_STR-QOTHE sy-vline
WA_CF002_STR-APPLI sy-vline
WA_CF002_STR-QAPPL sy-vline
WA_CF002_STR-INVIT sy-vline
WA_CF002_STR-QINVI sy-vline
WA_CF002_STR-PRESN sy-vline
WA_CF002_STR-QPRES sy-vline
WA_CF002_STR-EDUCC sy-vline
WA_CF002_STR-CEDUC sy-vline
WA_CF002_STR-ENHAC sy-vline
WA_CF002_STR-CENHC sy-vline
WA_CF002_STR-ENHAP sy-vline
WA_CF002_STR-QENHP sy-vline
WA_CF002_STR-ENHAD sy-vline
WA_CF002_STR-QENHD sy-vline
WA_CF002_STR-ENHAQ sy-vline
WA_CF002_STR-QENHQ sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.