ABAP Select data from SAP table DF01 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 DF01 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 DF01. 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 DF01 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_DF01 TYPE STANDARD TABLE OF DF01,
      WA_DF01 TYPE DF01,
      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: <DF01> TYPE DF01.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM DF01
*  INTO TABLE @DATA(IT_DF012).
*--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_DF01 INDEX 1 INTO DATA(WA_DF012).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_DF01 ASSIGNING <DF01>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<DF01>-COMPONENT = 1.
<DF01>-PROCESS = 1.
<DF01>-FUNCTION = 1.
<DF01>-PROCVAR = 1.
<DF01>-PROCVAR1 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_DF01-FUNCVAR, sy-vline,
WA_DF01-SCENARIO, sy-vline,
WA_DF01-OBJCOMP, sy-vline,
WA_DF01-OBJVAR, sy-vline,
WA_DF01-PROCAREA, sy-vline,
WA_DF01-PROCGROUP, sy-vline.
ENDLOOP. *Add any further fields from structure WA_DF01 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_DF01 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_DF01 INTO WA_DF01. *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.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_DF01_STR,
COMPONENT TYPE STRING,
PROCESS TYPE STRING,
FUNCTION TYPE STRING,
PROCVAR TYPE STRING,
PROCVAR1 TYPE STRING,
FUNCVAR TYPE STRING,
SCENARIO TYPE STRING,
OBJCOMP TYPE STRING,
OBJVAR TYPE STRING,
PROCAREA TYPE STRING,
PROCGROUP TYPE STRING,
CBUSSCEN TYPE STRING,
SQCIT TYPE STRING,
QUESTION TYPE STRING,
TCODE TYPE STRING,
BOROBJ TYPE STRING,
IMG TYPE STRING,
SCENVAR TYPE STRING,
TCOMPONENT TYPE STRING,
TPROCESS TYPE STRING,
TFUNCTION TYPE STRING,
TPROCVAR TYPE STRING,
TPROCVAR1 TYPE STRING,
TFUNCVAR TYPE STRING,
TSCENARIO TYPE STRING,
TOBJCOMP TYPE STRING,
TOBJVAR TYPE STRING,
TPROCAREA TYPE STRING,
TPROCGROUP TYPE STRING,
TCBUSSCEN TYPE STRING,
TSQCIT TYPE STRING,
TQUESTION TYPE STRING,
TTCODE TYPE STRING,
TBOROBJ TYPE STRING,
TIMG TYPE STRING,
TSCENVAR TYPE STRING,
XCOMPONENT TYPE STRING,
XPROCESS TYPE STRING,
XFUNCTION TYPE STRING,
XPROCVAR TYPE STRING,
XFUNCVAR TYPE STRING,
XSCENARIO TYPE STRING,
XCBUSSCEN TYPE STRING,
XOBJCOMP TYPE STRING,
XOBJVAR TYPE STRING,
XSQCIT TYPE STRING,
XQUESTION TYPE STRING,
XTCODE TYPE STRING,
XBOROBJ TYPE STRING,
XIMG TYPE STRING,
XSCENVAR TYPE STRING,
DELETED TYPE STRING,
COMPLETE TYPE STRING,
PSTAT_TXT TYPE STRING,
MSTATUS TYPE STRING,
MSTAT_TXT TYPE STRING,
DEVCLASS TYPE STRING,
DEVCTEXT TYPE STRING,
DLVUNIT TYPE STRING,
DLVUTEXT TYPE STRING,
RFCDEST TYPE STRING,
PS_POSID TYPE STRING,
REPORT TYPE STRING,END OF T_EKKO_STR. DATA: WA_DF01_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_DF01_STR-COMPONENT sy-vline
WA_DF01_STR-PROCESS sy-vline
WA_DF01_STR-FUNCTION sy-vline
WA_DF01_STR-PROCVAR sy-vline
WA_DF01_STR-PROCVAR1 sy-vline
WA_DF01_STR-FUNCVAR sy-vline
WA_DF01_STR-SCENARIO sy-vline
WA_DF01_STR-OBJCOMP sy-vline
WA_DF01_STR-OBJVAR sy-vline
WA_DF01_STR-PROCAREA sy-vline
WA_DF01_STR-PROCGROUP sy-vline
WA_DF01_STR-CBUSSCEN sy-vline
WA_DF01_STR-SQCIT sy-vline
WA_DF01_STR-QUESTION sy-vline
WA_DF01_STR-TCODE sy-vline
WA_DF01_STR-BOROBJ sy-vline
WA_DF01_STR-IMG sy-vline
WA_DF01_STR-SCENVAR sy-vline
WA_DF01_STR-TCOMPONENT sy-vline
WA_DF01_STR-TPROCESS sy-vline
WA_DF01_STR-TFUNCTION sy-vline
WA_DF01_STR-TPROCVAR sy-vline
WA_DF01_STR-TPROCVAR1 sy-vline
WA_DF01_STR-TFUNCVAR sy-vline
WA_DF01_STR-TSCENARIO sy-vline
WA_DF01_STR-TOBJCOMP sy-vline
WA_DF01_STR-TOBJVAR sy-vline
WA_DF01_STR-TPROCAREA sy-vline
WA_DF01_STR-TPROCGROUP sy-vline
WA_DF01_STR-TCBUSSCEN sy-vline
WA_DF01_STR-TSQCIT sy-vline
WA_DF01_STR-TQUESTION sy-vline
WA_DF01_STR-TTCODE sy-vline
WA_DF01_STR-TBOROBJ sy-vline
WA_DF01_STR-TIMG sy-vline
WA_DF01_STR-TSCENVAR sy-vline
WA_DF01_STR-XCOMPONENT sy-vline
WA_DF01_STR-XPROCESS sy-vline
WA_DF01_STR-XFUNCTION sy-vline
WA_DF01_STR-XPROCVAR sy-vline
WA_DF01_STR-XFUNCVAR sy-vline
WA_DF01_STR-XSCENARIO sy-vline
WA_DF01_STR-XCBUSSCEN sy-vline
WA_DF01_STR-XOBJCOMP sy-vline
WA_DF01_STR-XOBJVAR sy-vline
WA_DF01_STR-XSQCIT sy-vline
WA_DF01_STR-XQUESTION sy-vline
WA_DF01_STR-XTCODE sy-vline
WA_DF01_STR-XBOROBJ sy-vline
WA_DF01_STR-XIMG sy-vline
WA_DF01_STR-XSCENVAR sy-vline
WA_DF01_STR-DELETED sy-vline
WA_DF01_STR-COMPLETE sy-vline
WA_DF01_STR-PSTAT_TXT sy-vline
WA_DF01_STR-MSTATUS sy-vline
WA_DF01_STR-MSTAT_TXT sy-vline
WA_DF01_STR-DEVCLASS sy-vline
WA_DF01_STR-DEVCTEXT sy-vline
WA_DF01_STR-DLVUNIT sy-vline
WA_DF01_STR-DLVUTEXT sy-vline
WA_DF01_STR-RFCDEST sy-vline
WA_DF01_STR-PS_POSID sy-vline
WA_DF01_STR-REPORT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.