ABAP Select data from SAP table DBERCHZ4 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 DBERCHZ4 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 DBERCHZ4. 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 DBERCHZ4 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_DBERCHZ4 TYPE STANDARD TABLE OF DBERCHZ4,
      WA_DBERCHZ4 TYPE DBERCHZ4,
      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: <DBERCHZ4> TYPE DBERCHZ4.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM DBERCHZ4
*  INTO TABLE @DATA(IT_DBERCHZ42).
*--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_DBERCHZ4 INDEX 1 INTO DATA(WA_DBERCHZ42).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_DBERCHZ4 ASSIGNING <DBERCHZ4>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<DBERCHZ4>-MANDT = 1.
<DBERCHZ4>-BELNR = 1.
<DBERCHZ4>-BELZEILE = 1.
<DBERCHZ4>-LEUCHTNR = 1.
<DBERCHZ4>-BETRART = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_DBERCHZ4-SPGRUND, sy-vline,
WA_DBERCHZ4-EIN05, sy-vline,
WA_DBERCHZ4-EIN06, sy-vline,
WA_DBERCHZ4-EIN07, sy-vline,
WA_DBERCHZ4-EIN08, sy-vline,
WA_DBERCHZ4-EIN09, sy-vline.
ENDLOOP. *Add any further fields from structure WA_DBERCHZ4 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_DBERCHZ4 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_DBERCHZ4 INTO WA_DBERCHZ4. *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 BELNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_DBERCHZ4-BELNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_DBERCHZ4-BELNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit EXCRT, internal->external for field UMRECHKURS CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_DBERCHZ4-UMRECHKURS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_DBERCHZ4-UMRECHKURS.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

*Conversion exit ALPHA, internal->external for field REC_CONTRACT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_DBERCHZ4-REC_CONTRACT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_DBERCHZ4-REC_CONTRACT.
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_DBERCHZ4_STR,
MANDT TYPE STRING,
BELNR TYPE STRING,
BELZEILE TYPE STRING,
LEUCHTNR TYPE STRING,
BETRART TYPE STRING,
SPGRUND TYPE STRING,
EIN05 TYPE STRING,
EIN06 TYPE STRING,
EIN07 TYPE STRING,
EIN08 TYPE STRING,
EIN09 TYPE STRING,
EIN10 TYPE STRING,
AUS03 TYPE STRING,
AUS04 TYPE STRING,
AUS05 TYPE STRING,
MASS5 TYPE STRING,
MASS6 TYPE STRING,
SC_BELNR TYPE STRING,
SC_BELZEILE TYPE STRING,
REFBELZEILE TYPE STRING,
SPERRUNG TYPE STRING,
NETTOFRMD TYPE STRING,
WAERSF TYPE STRING,
UMRECHDAT TYPE STRING,
UMRECHKURS TYPE STRING,
REFBELZONE TYPE STRING,
REFBILLDOCNO TYPE STRING,
FIRSTBELNR TYPE STRING,
TAXREL TYPE STRING,
TAXGROUP TYPE STRING,
BILLTYPE TYPE STRING,
OBJNR TYPE STRING,
ORDERNR TYPE STRING,
LAUFNR TYPE STRING,
ORDER_LAUFNR TYPE STRING,
GGVERTRAG TYPE STRING,
OLD_BELNR TYPE STRING,
CONDIREF TYPE STRING,
DATEFROM TYPE STRING,
TIMEFROM TYPE STRING,
DATETO TYPE STRING,
TIMETO TYPE STRING,
RATERELGROUP TYPE STRING,
BASIC_RATE TYPE STRING,
RATERELCAT TYPE STRING,
CONDBILLPROGID TYPE STRING,
GEN_CONTRACT TYPE STRING,
REC_CONTRACT TYPE STRING,
GEN_TOU TYPE STRING,
REC_TOU TYPE STRING,
PROPORTION TYPE STRING,
PROPORTION_EXT TYPE STRING,
V_ZAHL5 TYPE STRING,
N_ZAHL5 TYPE STRING,
V_ZAHL6 TYPE STRING,
N_ZAHL6 TYPE STRING,
COLOGRP_INST_L TYPE STRING,END OF T_EKKO_STR. DATA: WA_DBERCHZ4_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_DBERCHZ4_STR-MANDT sy-vline
WA_DBERCHZ4_STR-BELNR sy-vline
WA_DBERCHZ4_STR-BELZEILE sy-vline
WA_DBERCHZ4_STR-LEUCHTNR sy-vline
WA_DBERCHZ4_STR-BETRART sy-vline
WA_DBERCHZ4_STR-SPGRUND sy-vline
WA_DBERCHZ4_STR-EIN05 sy-vline
WA_DBERCHZ4_STR-EIN06 sy-vline
WA_DBERCHZ4_STR-EIN07 sy-vline
WA_DBERCHZ4_STR-EIN08 sy-vline
WA_DBERCHZ4_STR-EIN09 sy-vline
WA_DBERCHZ4_STR-EIN10 sy-vline
WA_DBERCHZ4_STR-AUS03 sy-vline
WA_DBERCHZ4_STR-AUS04 sy-vline
WA_DBERCHZ4_STR-AUS05 sy-vline
WA_DBERCHZ4_STR-MASS5 sy-vline
WA_DBERCHZ4_STR-MASS6 sy-vline
WA_DBERCHZ4_STR-SC_BELNR sy-vline
WA_DBERCHZ4_STR-SC_BELZEILE sy-vline
WA_DBERCHZ4_STR-REFBELZEILE sy-vline
WA_DBERCHZ4_STR-SPERRUNG sy-vline
WA_DBERCHZ4_STR-NETTOFRMD sy-vline
WA_DBERCHZ4_STR-WAERSF sy-vline
WA_DBERCHZ4_STR-UMRECHDAT sy-vline
WA_DBERCHZ4_STR-UMRECHKURS sy-vline
WA_DBERCHZ4_STR-REFBELZONE sy-vline
WA_DBERCHZ4_STR-REFBILLDOCNO sy-vline
WA_DBERCHZ4_STR-FIRSTBELNR sy-vline
WA_DBERCHZ4_STR-TAXREL sy-vline
WA_DBERCHZ4_STR-TAXGROUP sy-vline
WA_DBERCHZ4_STR-BILLTYPE sy-vline
WA_DBERCHZ4_STR-OBJNR sy-vline
WA_DBERCHZ4_STR-ORDERNR sy-vline
WA_DBERCHZ4_STR-LAUFNR sy-vline
WA_DBERCHZ4_STR-ORDER_LAUFNR sy-vline
WA_DBERCHZ4_STR-GGVERTRAG sy-vline
WA_DBERCHZ4_STR-OLD_BELNR sy-vline
WA_DBERCHZ4_STR-CONDIREF sy-vline
WA_DBERCHZ4_STR-DATEFROM sy-vline
WA_DBERCHZ4_STR-TIMEFROM sy-vline
WA_DBERCHZ4_STR-DATETO sy-vline
WA_DBERCHZ4_STR-TIMETO sy-vline
WA_DBERCHZ4_STR-RATERELGROUP sy-vline
WA_DBERCHZ4_STR-BASIC_RATE sy-vline
WA_DBERCHZ4_STR-RATERELCAT sy-vline
WA_DBERCHZ4_STR-CONDBILLPROGID sy-vline
WA_DBERCHZ4_STR-GEN_CONTRACT sy-vline
WA_DBERCHZ4_STR-REC_CONTRACT sy-vline
WA_DBERCHZ4_STR-GEN_TOU sy-vline
WA_DBERCHZ4_STR-REC_TOU sy-vline
WA_DBERCHZ4_STR-PROPORTION sy-vline
WA_DBERCHZ4_STR-PROPORTION_EXT sy-vline
WA_DBERCHZ4_STR-V_ZAHL5 sy-vline
WA_DBERCHZ4_STR-N_ZAHL5 sy-vline
WA_DBERCHZ4_STR-V_ZAHL6 sy-vline
WA_DBERCHZ4_STR-N_ZAHL6 sy-vline
WA_DBERCHZ4_STR-COLOGRP_INST_L sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.