ABAP Select data from SAP table HRDESV_BWXX 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 HRDESV_BWXX 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 HRDESV_BWXX. 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 HRDESV_BWXX 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_HRDESV_BWXX TYPE STANDARD TABLE OF HRDESV_BWXX,
      WA_HRDESV_BWXX TYPE HRDESV_BWXX,
      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: <HRDESV_BWXX> TYPE HRDESV_BWXX.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM HRDESV_BWXX
*  INTO TABLE @DATA(IT_HRDESV_BWXX2).
*--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_HRDESV_BWXX INDEX 1 INTO DATA(WA_HRDESV_BWXX2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_HRDESV_BWXX ASSIGNING <HRDESV_BWXX>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<HRDESV_BWXX>-KE = 1.
<HRDESV_BWXX>-VFMM = 1.
<HRDESV_BWXX>-BBNRAB = 1.
<HRDESV_BWXX>-BBNREP = 1.
<HRDESV_BWXX>-KENNART = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_HRDESV_BWXX-KENNTYP, sy-vline,
WA_HRDESV_BWXX-RES1, sy-vline,
WA_HRDESV_BWXX-BBNRVU, sy-vline,
WA_HRDESV_BWXX-BEGDA, sy-vline,
WA_HRDESV_BWXX-ENDDA, sy-vline,
WA_HRDESV_BWXX-VZ1000, sy-vline.
ENDLOOP. *Add any further fields from structure WA_HRDESV_BWXX 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_HRDESV_BWXX 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_HRDESV_BWXX INTO WA_HRDESV_BWXX. *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_HRDESV_BWXX_STR,
KE TYPE STRING,
VFMM TYPE STRING,
BBNRAB TYPE STRING,
BBNREP TYPE STRING,
KENNART TYPE STRING,
KENNTYP TYPE STRING,
RES1 TYPE STRING,
BBNRVU TYPE STRING,
BEGDA TYPE STRING,
ENDDA TYPE STRING,
VZ1000 TYPE STRING,
BT1000 TYPE STRING,
VZ2000 TYPE STRING,
BT2000 TYPE STRING,
VZ3000 TYPE STRING,
BT3000 TYPE STRING,
VZ0001 TYPE STRING,
BT0001 TYPE STRING,
VZ0100 TYPE STRING,
BT0100 TYPE STRING,
VZ0200 TYPE STRING,
BT0200 TYPE STRING,
VZ0010 TYPE STRING,
BT0010 TYPE STRING,
VZ0300 TYPE STRING,
BT0300 TYPE STRING,
VZ0050 TYPE STRING,
BT0050 TYPE STRING,
VZ0020 TYPE STRING,
BT0020 TYPE STRING,
VZU1 TYPE STRING,
BTU1 TYPE STRING,
VZU2 TYPE STRING,
BTU2 TYPE STRING,
VZ6000 TYPE STRING,
BT6000 TYPE STRING,
VZ0500 TYPE STRING,
BT0500 TYPE STRING,
VZ0600 TYPE STRING,
BT0600 TYPE STRING,
VZGES TYPE STRING,
BTGES TYPE STRING,
VZKVFR TYPE STRING,
BTKVFR TYPE STRING,
VZPVFR TYPE STRING,
BTPVFR TYPE STRING,
VZERST TYPE STRING,
BTERST TYPE STRING,
VZNV1 TYPE STRING,
BTNV1 TYPE STRING,
VZNV2 TYPE STRING,
BTNV2 TYPE STRING,
VZNV3 TYPE STRING,
BTNV3 TYPE STRING,
VZZAHL TYPE STRING,
BTZAHL TYPE STRING,
NAME1 TYPE STRING,
NAME2 TYPE STRING,
STRAS TYPE STRING,
RES2 TYPE STRING,
PLZ TYPE STRING,
ORT TYPE STRING,
ABRE1 TYPE STRING,
ABRE2 TYPE STRING,
ORDMK TYPE STRING,
VERMK TYPE STRING,
BZALL TYPE STRING,
BZERH TYPE STRING,
BZERM TYPE STRING,
KENNZRK TYPE STRING,
RES3 TYPE STRING,
ED TYPE STRING,
LFDBN TYPE STRING,
VERNR TYPE STRING,
WG TYPE STRING,
VZEPST TYPE STRING,
BTEPST TYPE STRING,
STNR TYPE STRING,
ENDE TYPE STRING,END OF T_EKKO_STR. DATA: WA_HRDESV_BWXX_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_HRDESV_BWXX_STR-KE sy-vline
WA_HRDESV_BWXX_STR-VFMM sy-vline
WA_HRDESV_BWXX_STR-BBNRAB sy-vline
WA_HRDESV_BWXX_STR-BBNREP sy-vline
WA_HRDESV_BWXX_STR-KENNART sy-vline
WA_HRDESV_BWXX_STR-KENNTYP sy-vline
WA_HRDESV_BWXX_STR-RES1 sy-vline
WA_HRDESV_BWXX_STR-BBNRVU sy-vline
WA_HRDESV_BWXX_STR-BEGDA sy-vline
WA_HRDESV_BWXX_STR-ENDDA sy-vline
WA_HRDESV_BWXX_STR-VZ1000 sy-vline
WA_HRDESV_BWXX_STR-BT1000 sy-vline
WA_HRDESV_BWXX_STR-VZ2000 sy-vline
WA_HRDESV_BWXX_STR-BT2000 sy-vline
WA_HRDESV_BWXX_STR-VZ3000 sy-vline
WA_HRDESV_BWXX_STR-BT3000 sy-vline
WA_HRDESV_BWXX_STR-VZ0001 sy-vline
WA_HRDESV_BWXX_STR-BT0001 sy-vline
WA_HRDESV_BWXX_STR-VZ0100 sy-vline
WA_HRDESV_BWXX_STR-BT0100 sy-vline
WA_HRDESV_BWXX_STR-VZ0200 sy-vline
WA_HRDESV_BWXX_STR-BT0200 sy-vline
WA_HRDESV_BWXX_STR-VZ0010 sy-vline
WA_HRDESV_BWXX_STR-BT0010 sy-vline
WA_HRDESV_BWXX_STR-VZ0300 sy-vline
WA_HRDESV_BWXX_STR-BT0300 sy-vline
WA_HRDESV_BWXX_STR-VZ0050 sy-vline
WA_HRDESV_BWXX_STR-BT0050 sy-vline
WA_HRDESV_BWXX_STR-VZ0020 sy-vline
WA_HRDESV_BWXX_STR-BT0020 sy-vline
WA_HRDESV_BWXX_STR-VZU1 sy-vline
WA_HRDESV_BWXX_STR-BTU1 sy-vline
WA_HRDESV_BWXX_STR-VZU2 sy-vline
WA_HRDESV_BWXX_STR-BTU2 sy-vline
WA_HRDESV_BWXX_STR-VZ6000 sy-vline
WA_HRDESV_BWXX_STR-BT6000 sy-vline
WA_HRDESV_BWXX_STR-VZ0500 sy-vline
WA_HRDESV_BWXX_STR-BT0500 sy-vline
WA_HRDESV_BWXX_STR-VZ0600 sy-vline
WA_HRDESV_BWXX_STR-BT0600 sy-vline
WA_HRDESV_BWXX_STR-VZGES sy-vline
WA_HRDESV_BWXX_STR-BTGES sy-vline
WA_HRDESV_BWXX_STR-VZKVFR sy-vline
WA_HRDESV_BWXX_STR-BTKVFR sy-vline
WA_HRDESV_BWXX_STR-VZPVFR sy-vline
WA_HRDESV_BWXX_STR-BTPVFR sy-vline
WA_HRDESV_BWXX_STR-VZERST sy-vline
WA_HRDESV_BWXX_STR-BTERST sy-vline
WA_HRDESV_BWXX_STR-VZNV1 sy-vline
WA_HRDESV_BWXX_STR-BTNV1 sy-vline
WA_HRDESV_BWXX_STR-VZNV2 sy-vline
WA_HRDESV_BWXX_STR-BTNV2 sy-vline
WA_HRDESV_BWXX_STR-VZNV3 sy-vline
WA_HRDESV_BWXX_STR-BTNV3 sy-vline
WA_HRDESV_BWXX_STR-VZZAHL sy-vline
WA_HRDESV_BWXX_STR-BTZAHL sy-vline
WA_HRDESV_BWXX_STR-NAME1 sy-vline
WA_HRDESV_BWXX_STR-NAME2 sy-vline
WA_HRDESV_BWXX_STR-STRAS sy-vline
WA_HRDESV_BWXX_STR-RES2 sy-vline
WA_HRDESV_BWXX_STR-PLZ sy-vline
WA_HRDESV_BWXX_STR-ORT sy-vline
WA_HRDESV_BWXX_STR-ABRE1 sy-vline
WA_HRDESV_BWXX_STR-ABRE2 sy-vline
WA_HRDESV_BWXX_STR-ORDMK sy-vline
WA_HRDESV_BWXX_STR-VERMK sy-vline
WA_HRDESV_BWXX_STR-BZALL sy-vline
WA_HRDESV_BWXX_STR-BZERH sy-vline
WA_HRDESV_BWXX_STR-BZERM sy-vline
WA_HRDESV_BWXX_STR-KENNZRK sy-vline
WA_HRDESV_BWXX_STR-RES3 sy-vline
WA_HRDESV_BWXX_STR-ED sy-vline
WA_HRDESV_BWXX_STR-LFDBN sy-vline
WA_HRDESV_BWXX_STR-VERNR sy-vline
WA_HRDESV_BWXX_STR-WG sy-vline
WA_HRDESV_BWXX_STR-VZEPST sy-vline
WA_HRDESV_BWXX_STR-BTEPST sy-vline
WA_HRDESV_BWXX_STR-STNR sy-vline
WA_HRDESV_BWXX_STR-ENDE sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.