ABAP Select data from SAP table BGCHK_Z 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 BGCHK_Z 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 BGCHK_Z. 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 BGCHK_Z 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_BGCHK_Z TYPE STANDARD TABLE OF BGCHK_Z,
      WA_BGCHK_Z TYPE BGCHK_Z,
      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: <BGCHK_Z> TYPE BGCHK_Z.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM BGCHK_Z
*  INTO TABLE @DATA(IT_BGCHK_Z2).
*--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_BGCHK_Z INDEX 1 INTO DATA(WA_BGCHK_Z2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_BGCHK_Z ASSIGNING <BGCHK_Z>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<BGCHK_Z>-OBJNR_GAR = 1.
<BGCHK_Z>-OBJKT = 1.
<BGCHK_Z>-OBJTX = 1.
<BGCHK_Z>-RES_OBJEKT = 1.
<BGCHK_Z>-GAART = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_BGCHK_Z-AENKZ, sy-vline,
WA_BGCHK_Z-PRTKZ, sy-vline,
WA_BGCHK_Z-ATVOR, sy-vline,
WA_BGCHK_Z-MSEHI, sy-vline,
WA_BGCHK_Z-ATDIM, sy-vline,
WA_BGCHK_Z-ANZDZ, sy-vline.
ENDLOOP. *Add any further fields from structure WA_BGCHK_Z 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_BGCHK_Z 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_BGCHK_Z INTO WA_BGCHK_Z. *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 CUNIT, internal->external for field MSEHI CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_BGCHK_Z-MSEHI IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BGCHK_Z-MSEHI.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit LUNIT, internal->external for field STAND_UNIT CALL FUNCTION 'CONVERSION_EXIT_LUNIT_OUTPUT' EXPORTING input = WA_BGCHK_Z-STAND_UNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BGCHK_Z-STAND_UNIT.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit LUNIT, internal->external for field STAND_UN_S CALL FUNCTION 'CONVERSION_EXIT_LUNIT_OUTPUT' EXPORTING input = WA_BGCHK_Z-STAND_UN_S IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BGCHK_Z-STAND_UN_S.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit LUNIT, internal->external for field START_UNIT CALL FUNCTION 'CONVERSION_EXIT_LUNIT_OUTPUT' EXPORTING input = WA_BGCHK_Z-START_UNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BGCHK_Z-START_UNIT.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit LUNIT, internal->external for field START_UN_S CALL FUNCTION 'CONVERSION_EXIT_LUNIT_OUTPUT' EXPORTING input = WA_BGCHK_Z-START_UN_S IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BGCHK_Z-START_UN_S.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit LUNIT, internal->external for field DELTA_UNIT CALL FUNCTION 'CONVERSION_EXIT_LUNIT_OUTPUT' EXPORTING input = WA_BGCHK_Z-DELTA_UNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BGCHK_Z-DELTA_UNIT.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit LUNIT, internal->external for field ENDE_UNITC CALL FUNCTION 'CONVERSION_EXIT_LUNIT_OUTPUT' EXPORTING input = WA_BGCHK_Z-ENDE_UNITC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BGCHK_Z-ENDE_UNITC.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit CUNIT, internal->external for field MRNGU_PNT CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_BGCHK_Z-MRNGU_PNT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_BGCHK_Z-MRNGU_PNT.
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_BGCHK_Z_STR,
OBJNR_GAR TYPE STRING,
OBJKT TYPE STRING,
OBJTX TYPE STRING,
RES_OBJEKT TYPE STRING,
GAART TYPE STRING,
AENKZ TYPE STRING,
PRTKZ TYPE STRING,
ATVOR TYPE STRING,
MSEHI TYPE STRING,
ATDIM TYPE STRING,
ANZDZ TYPE STRING,
MSEH3 TYPE STRING,
MSEH6 TYPE STRING,
MSEHL TYPE STRING,
GAZBZ TYPE STRING,
KZKAL TYPE STRING,
MANDT TYPE STRING,
MGANR TYPE STRING,
POSNM TYPE STRING,
GAZPS TYPE STRING,
GAZNA TYPE STRING,
GAZAL TYPE STRING,
RANGF TYPE STRING,
GAZWT TYPE STRING,
GAZWTI TYPE STRING,
GAZWV TYPE STRING,
GAZWVI TYPE STRING,
DELTA TYPE STRING,
DELTAI TYPE STRING,
RECDU TYPE STRING,
EXPON TYPE STRING,
DECIM TYPE STRING,
STAND_WE TYPE STRING,
STAND_WI TYPE STRING,
STAND_WI_I TYPE STRING,
STAND_UNIT TYPE STRING,
STAND_MSE TYPE STRING,
STAND_SI TYPE STRING,
STAND_DATE TYPE STRING,
STAND_SIM TYPE STRING,
STAND_WE_S TYPE STRING,
STAND_WI_S TYPE STRING,
STAND_WJ_S TYPE STRING,
STAND_UN_S TYPE STRING,
STAND_MS_S TYPE STRING,
STAND_SI_S TYPE STRING,
STAND_DA_S TYPE STRING,
STAND_SM_S TYPE STRING,
START_WE TYPE STRING,
START_WI TYPE STRING,
START_WI_I TYPE STRING,
START_UNIT TYPE STRING,
START_MSE TYPE STRING,
START_SI TYPE STRING,
START_DATE TYPE STRING,
START_SIM TYPE STRING,
START_WE_S TYPE STRING,
START_WI_S TYPE STRING,
START_WJ_S TYPE STRING,
START_UN_S TYPE STRING,
START_MS_S TYPE STRING,
START_SI_S TYPE STRING,
START_DA_S TYPE STRING,
START_SM_S TYPE STRING,
DELTA_WE TYPE STRING,
DELTA_WI TYPE STRING,
DELTA_WI_I TYPE STRING,
DELTA_UNIT TYPE STRING,
DELTA_MSE TYPE STRING,
DELTA_SI TYPE STRING,
DELTA_AZDZ TYPE STRING,
DELTA_ATDI TYPE STRING,
DELTA_DATE TYPE STRING,
DELTA_SIM TYPE STRING,
ENDE_WE TYPE STRING,
ENDE_WI TYPE STRING,
ENDE_WI_I TYPE STRING,
ENDE_UNITC TYPE STRING,
ENDE_MSE TYPE STRING,
ENDE_SI TYPE STRING,
ENDE_DATE TYPE STRING,
ENDE_SIM TYPE STRING,
VGLZA TYPE STRING,
POINT TYPE STRING,
MRNGU_PNT TYPE STRING,
EXPON_PNT TYPE STRING,
DECIM_PNT TYPE STRING,
PTTXT_PNT TYPE STRING,
RES_COUNT TYPE STRING,
RES_POS TYPE STRING,
RES_HEADR TYPE STRING,
RES_OBJECT TYPE STRING,END OF T_EKKO_STR. DATA: WA_BGCHK_Z_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_BGCHK_Z_STR-OBJNR_GAR sy-vline
WA_BGCHK_Z_STR-OBJKT sy-vline
WA_BGCHK_Z_STR-OBJTX sy-vline
WA_BGCHK_Z_STR-RES_OBJEKT sy-vline
WA_BGCHK_Z_STR-GAART sy-vline
WA_BGCHK_Z_STR-AENKZ sy-vline
WA_BGCHK_Z_STR-PRTKZ sy-vline
WA_BGCHK_Z_STR-ATVOR sy-vline
WA_BGCHK_Z_STR-MSEHI sy-vline
WA_BGCHK_Z_STR-ATDIM sy-vline
WA_BGCHK_Z_STR-ANZDZ sy-vline
WA_BGCHK_Z_STR-MSEH3 sy-vline
WA_BGCHK_Z_STR-MSEH6 sy-vline
WA_BGCHK_Z_STR-MSEHL sy-vline
WA_BGCHK_Z_STR-GAZBZ sy-vline
WA_BGCHK_Z_STR-KZKAL sy-vline
WA_BGCHK_Z_STR-MANDT sy-vline
WA_BGCHK_Z_STR-MGANR sy-vline
WA_BGCHK_Z_STR-POSNM sy-vline
WA_BGCHK_Z_STR-GAZPS sy-vline
WA_BGCHK_Z_STR-GAZNA sy-vline
WA_BGCHK_Z_STR-GAZAL sy-vline
WA_BGCHK_Z_STR-RANGF sy-vline
WA_BGCHK_Z_STR-GAZWT sy-vline
WA_BGCHK_Z_STR-GAZWTI sy-vline
WA_BGCHK_Z_STR-GAZWV sy-vline
WA_BGCHK_Z_STR-GAZWVI sy-vline
WA_BGCHK_Z_STR-DELTA sy-vline
WA_BGCHK_Z_STR-DELTAI sy-vline
WA_BGCHK_Z_STR-RECDU sy-vline
WA_BGCHK_Z_STR-EXPON sy-vline
WA_BGCHK_Z_STR-DECIM sy-vline
WA_BGCHK_Z_STR-STAND_WE sy-vline
WA_BGCHK_Z_STR-STAND_WI sy-vline
WA_BGCHK_Z_STR-STAND_WI_I sy-vline
WA_BGCHK_Z_STR-STAND_UNIT sy-vline
WA_BGCHK_Z_STR-STAND_MSE sy-vline
WA_BGCHK_Z_STR-STAND_SI sy-vline
WA_BGCHK_Z_STR-STAND_DATE sy-vline
WA_BGCHK_Z_STR-STAND_SIM sy-vline
WA_BGCHK_Z_STR-STAND_WE_S sy-vline
WA_BGCHK_Z_STR-STAND_WI_S sy-vline
WA_BGCHK_Z_STR-STAND_WJ_S sy-vline
WA_BGCHK_Z_STR-STAND_UN_S sy-vline
WA_BGCHK_Z_STR-STAND_MS_S sy-vline
WA_BGCHK_Z_STR-STAND_SI_S sy-vline
WA_BGCHK_Z_STR-STAND_DA_S sy-vline
WA_BGCHK_Z_STR-STAND_SM_S sy-vline
WA_BGCHK_Z_STR-START_WE sy-vline
WA_BGCHK_Z_STR-START_WI sy-vline
WA_BGCHK_Z_STR-START_WI_I sy-vline
WA_BGCHK_Z_STR-START_UNIT sy-vline
WA_BGCHK_Z_STR-START_MSE sy-vline
WA_BGCHK_Z_STR-START_SI sy-vline
WA_BGCHK_Z_STR-START_DATE sy-vline
WA_BGCHK_Z_STR-START_SIM sy-vline
WA_BGCHK_Z_STR-START_WE_S sy-vline
WA_BGCHK_Z_STR-START_WI_S sy-vline
WA_BGCHK_Z_STR-START_WJ_S sy-vline
WA_BGCHK_Z_STR-START_UN_S sy-vline
WA_BGCHK_Z_STR-START_MS_S sy-vline
WA_BGCHK_Z_STR-START_SI_S sy-vline
WA_BGCHK_Z_STR-START_DA_S sy-vline
WA_BGCHK_Z_STR-START_SM_S sy-vline
WA_BGCHK_Z_STR-DELTA_WE sy-vline
WA_BGCHK_Z_STR-DELTA_WI sy-vline
WA_BGCHK_Z_STR-DELTA_WI_I sy-vline
WA_BGCHK_Z_STR-DELTA_UNIT sy-vline
WA_BGCHK_Z_STR-DELTA_MSE sy-vline
WA_BGCHK_Z_STR-DELTA_SI sy-vline
WA_BGCHK_Z_STR-DELTA_AZDZ sy-vline
WA_BGCHK_Z_STR-DELTA_ATDI sy-vline
WA_BGCHK_Z_STR-DELTA_DATE sy-vline
WA_BGCHK_Z_STR-DELTA_SIM sy-vline
WA_BGCHK_Z_STR-ENDE_WE sy-vline
WA_BGCHK_Z_STR-ENDE_WI sy-vline
WA_BGCHK_Z_STR-ENDE_WI_I sy-vline
WA_BGCHK_Z_STR-ENDE_UNITC sy-vline
WA_BGCHK_Z_STR-ENDE_MSE sy-vline
WA_BGCHK_Z_STR-ENDE_SI sy-vline
WA_BGCHK_Z_STR-ENDE_DATE sy-vline
WA_BGCHK_Z_STR-ENDE_SIM sy-vline
WA_BGCHK_Z_STR-VGLZA sy-vline
WA_BGCHK_Z_STR-POINT sy-vline
WA_BGCHK_Z_STR-MRNGU_PNT sy-vline
WA_BGCHK_Z_STR-EXPON_PNT sy-vline
WA_BGCHK_Z_STR-DECIM_PNT sy-vline
WA_BGCHK_Z_STR-PTTXT_PNT sy-vline
WA_BGCHK_Z_STR-RES_COUNT sy-vline
WA_BGCHK_Z_STR-RES_POS sy-vline
WA_BGCHK_Z_STR-RES_HEADR sy-vline
WA_BGCHK_Z_STR-RES_OBJECT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.