ABAP Select data from SAP table DDTBFDCHK 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 DDTBFDCHK 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 DDTBFDCHK. 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 DDTBFDCHK 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_DDTBFDCHK TYPE STANDARD TABLE OF DDTBFDCHK,
      WA_DDTBFDCHK TYPE DDTBFDCHK,
      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: <DDTBFDCHK> TYPE DDTBFDCHK.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM DDTBFDCHK
*  INTO TABLE @DATA(IT_DDTBFDCHK2).
*--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_DDTBFDCHK INDEX 1 INTO DATA(WA_DDTBFDCHK2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_DDTBFDCHK ASSIGNING <DDTBFDCHK>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<DDTBFDCHK>-FIELDEX = 1.
<DDTBFDCHK>-SAA_SPACE = 1.
<DDTBFDCHK>-SAA_LENGTH = 1.
<DDTBFDCHK>-SAA_CSPACE = 1.
<DDTBFDCHK>-SAA_HYPHEN = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_DDTBFDCHK-SAA_1CHBAZ, sy-vline,
WA_DDTBFDCHK-SAA_1CHUYZ, sy-vline,
WA_DDTBFDCHK-SAA_ALPHAN, sy-vline,
WA_DDTBFDCHK-SAA_2O3PC_, sy-vline,
WA_DDTBFDCHK-SAA_TRESE, sy-vline,
WA_DDTBFDCHK-NOCUSTFLD, sy-vline.
ENDLOOP. *Add any further fields from structure WA_DDTBFDCHK 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_DDTBFDCHK 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_DDTBFDCHK INTO WA_DDTBFDCHK. *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_DDTBFDCHK_STR,
FIELDEX TYPE STRING,
SAA_SPACE TYPE STRING,
SAA_LENGTH TYPE STRING,
SAA_CSPACE TYPE STRING,
SAA_HYPHEN TYPE STRING,
SAA_1CHBAZ TYPE STRING,
SAA_1CHUYZ TYPE STRING,
SAA_ALPHAN TYPE STRING,
SAA_2O3PC_ TYPE STRING,
SAA_TRESE TYPE STRING,
NOCUSTFLD TYPE STRING,
NOBRANCHN TYPE STRING,
NOSAPFLD TYPE STRING,
KEY_EXIST TYPE STRING,
KEY_NUMBER TYPE STRING,
KEY_CON TYPE STRING,
KEY_BEGIN TYPE STRING,
KEY_LEN TYPE STRING,
KEY_TRANS TYPE STRING,
DUPFIELD TYPE STRING,
EXISTDODE TYPE STRING,
MANDANT TYPE STRING,
DATATYPE TYPE STRING,
KEYCHANGE TYPE STRING,
EXISTVARC TYPE STRING,
TYPE_VARC TYPE STRING,
TYPE_LCHR TYPE STRING,
TYPE_LRAW TYPE STRING,
LONGTYPENR TYPE STRING,
TABLENGTH TYPE STRING,
DOMALENGTH TYPE STRING,
EXISTREF TYPE STRING,
INTREF TYPE STRING,
OUTREF TYPE STRING,
CHECKREF TYPE STRING,
CHECKAGGR TYPE STRING,
KEYFLAG TYPE STRING,
MANDATORY TYPE STRING,
ADMINFIELD TYPE STRING,
NOTNULLFLG TYPE STRING,
KEYTYPE TYPE STRING,
KEYLENGTH TYPE STRING,
DATALENGTH TYPE STRING,
MAXPLENG TYPE STRING,
CLUSTERCHK TYPE STRING,
GENBUFFER TYPE STRING,
LOGWRITE TYPE STRING,
TRANSPFLG TYPE STRING,
TRANSLATE TYPE STRING,
FNOT_NULL TYPE STRING,
NNLONGFLD TYPE STRING,END OF T_EKKO_STR. DATA: WA_DDTBFDCHK_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_DDTBFDCHK_STR-FIELDEX sy-vline
WA_DDTBFDCHK_STR-SAA_SPACE sy-vline
WA_DDTBFDCHK_STR-SAA_LENGTH sy-vline
WA_DDTBFDCHK_STR-SAA_CSPACE sy-vline
WA_DDTBFDCHK_STR-SAA_HYPHEN sy-vline
WA_DDTBFDCHK_STR-SAA_1CHBAZ sy-vline
WA_DDTBFDCHK_STR-SAA_1CHUYZ sy-vline
WA_DDTBFDCHK_STR-SAA_ALPHAN sy-vline
WA_DDTBFDCHK_STR-SAA_2O3PC_ sy-vline
WA_DDTBFDCHK_STR-SAA_TRESE sy-vline
WA_DDTBFDCHK_STR-NOCUSTFLD sy-vline
WA_DDTBFDCHK_STR-NOBRANCHN sy-vline
WA_DDTBFDCHK_STR-NOSAPFLD sy-vline
WA_DDTBFDCHK_STR-KEY_EXIST sy-vline
WA_DDTBFDCHK_STR-KEY_NUMBER sy-vline
WA_DDTBFDCHK_STR-KEY_CON sy-vline
WA_DDTBFDCHK_STR-KEY_BEGIN sy-vline
WA_DDTBFDCHK_STR-KEY_LEN sy-vline
WA_DDTBFDCHK_STR-KEY_TRANS sy-vline
WA_DDTBFDCHK_STR-DUPFIELD sy-vline
WA_DDTBFDCHK_STR-EXISTDODE sy-vline
WA_DDTBFDCHK_STR-MANDANT sy-vline
WA_DDTBFDCHK_STR-DATATYPE sy-vline
WA_DDTBFDCHK_STR-KEYCHANGE sy-vline
WA_DDTBFDCHK_STR-EXISTVARC sy-vline
WA_DDTBFDCHK_STR-TYPE_VARC sy-vline
WA_DDTBFDCHK_STR-TYPE_LCHR sy-vline
WA_DDTBFDCHK_STR-TYPE_LRAW sy-vline
WA_DDTBFDCHK_STR-LONGTYPENR sy-vline
WA_DDTBFDCHK_STR-TABLENGTH sy-vline
WA_DDTBFDCHK_STR-DOMALENGTH sy-vline
WA_DDTBFDCHK_STR-EXISTREF sy-vline
WA_DDTBFDCHK_STR-INTREF sy-vline
WA_DDTBFDCHK_STR-OUTREF sy-vline
WA_DDTBFDCHK_STR-CHECKREF sy-vline
WA_DDTBFDCHK_STR-CHECKAGGR sy-vline
WA_DDTBFDCHK_STR-KEYFLAG sy-vline
WA_DDTBFDCHK_STR-MANDATORY sy-vline
WA_DDTBFDCHK_STR-ADMINFIELD sy-vline
WA_DDTBFDCHK_STR-NOTNULLFLG sy-vline
WA_DDTBFDCHK_STR-KEYTYPE sy-vline
WA_DDTBFDCHK_STR-KEYLENGTH sy-vline
WA_DDTBFDCHK_STR-DATALENGTH sy-vline
WA_DDTBFDCHK_STR-MAXPLENG sy-vline
WA_DDTBFDCHK_STR-CLUSTERCHK sy-vline
WA_DDTBFDCHK_STR-GENBUFFER sy-vline
WA_DDTBFDCHK_STR-LOGWRITE sy-vline
WA_DDTBFDCHK_STR-TRANSPFLG sy-vline
WA_DDTBFDCHK_STR-TRANSLATE sy-vline
WA_DDTBFDCHK_STR-FNOT_NULL sy-vline
WA_DDTBFDCHK_STR-NNLONGFLD sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.