ABAP Select data from SAP table HRDESV_BW09 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_BW09 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_BW09. 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_BW09 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_BW09 TYPE STANDARD TABLE OF HRDESV_BW09,
      WA_HRDESV_BW09 TYPE HRDESV_BW09,
      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_BW09> TYPE HRDESV_BW09.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM HRDESV_BW09
*  INTO TABLE @DATA(IT_HRDESV_BW092).
*--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_BW09 INDEX 1 INTO DATA(WA_HRDESV_BW092).


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

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_HRDESV_BW09-ED, sy-vline,
WA_HRDESV_BW09-FEKZ, sy-vline,
WA_HRDESV_BW09-FEAN, sy-vline,
WA_HRDESV_BW09-DSID, sy-vline,
WA_HRDESV_BW09-AZKK, sy-vline,
WA_HRDESV_BW09-KEART, sy-vline.
ENDLOOP. *Add any further fields from structure WA_HRDESV_BW09 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_BW09 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_BW09 INTO WA_HRDESV_BW09. *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_BW09_STR,
KE TYPE STRING,
VF TYPE STRING,
BBNRAB TYPE STRING,
BBNREP TYPE STRING,
VERNR TYPE STRING,
ED TYPE STRING,
FEKZ TYPE STRING,
FEAN TYPE STRING,
DSID TYPE STRING,
AZKK TYPE STRING,
KEART TYPE STRING,
KEKORR TYPE STRING,
RES1 TYPE STRING,
BBNRAG TYPE STRING,
ZRBEG TYPE STRING,
ZEEND 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,
VZ1OSA TYPE STRING,
BT1OSA TYPE STRING,
VZ3OSA TYPE STRING,
BT3OSA TYPE STRING,
VZFOSA TYPE STRING,
BTFOSA TYPE STRING,
NAME1 TYPE STRING,
NAME2 TYPE STRING,
STRAS TYPE STRING,
LDKZ 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,
LFDBN TYPE STRING,
WG TYPE STRING,
VZEPST TYPE STRING,
BTEPST TYPE STRING,
STNR TYPE STRING,END OF T_EKKO_STR. DATA: WA_HRDESV_BW09_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_BW09_STR-KE sy-vline
WA_HRDESV_BW09_STR-VF sy-vline
WA_HRDESV_BW09_STR-BBNRAB sy-vline
WA_HRDESV_BW09_STR-BBNREP sy-vline
WA_HRDESV_BW09_STR-VERNR sy-vline
WA_HRDESV_BW09_STR-ED sy-vline
WA_HRDESV_BW09_STR-FEKZ sy-vline
WA_HRDESV_BW09_STR-FEAN sy-vline
WA_HRDESV_BW09_STR-DSID sy-vline
WA_HRDESV_BW09_STR-AZKK sy-vline
WA_HRDESV_BW09_STR-KEART sy-vline
WA_HRDESV_BW09_STR-KEKORR sy-vline
WA_HRDESV_BW09_STR-RES1 sy-vline
WA_HRDESV_BW09_STR-BBNRAG sy-vline
WA_HRDESV_BW09_STR-ZRBEG sy-vline
WA_HRDESV_BW09_STR-ZEEND sy-vline
WA_HRDESV_BW09_STR-VZ1000 sy-vline
WA_HRDESV_BW09_STR-BT1000 sy-vline
WA_HRDESV_BW09_STR-VZ2000 sy-vline
WA_HRDESV_BW09_STR-BT2000 sy-vline
WA_HRDESV_BW09_STR-VZ3000 sy-vline
WA_HRDESV_BW09_STR-BT3000 sy-vline
WA_HRDESV_BW09_STR-VZ0001 sy-vline
WA_HRDESV_BW09_STR-BT0001 sy-vline
WA_HRDESV_BW09_STR-VZ0100 sy-vline
WA_HRDESV_BW09_STR-BT0100 sy-vline
WA_HRDESV_BW09_STR-VZ0200 sy-vline
WA_HRDESV_BW09_STR-BT0200 sy-vline
WA_HRDESV_BW09_STR-VZ0010 sy-vline
WA_HRDESV_BW09_STR-BT0010 sy-vline
WA_HRDESV_BW09_STR-VZ0300 sy-vline
WA_HRDESV_BW09_STR-BT0300 sy-vline
WA_HRDESV_BW09_STR-VZ0050 sy-vline
WA_HRDESV_BW09_STR-BT0050 sy-vline
WA_HRDESV_BW09_STR-VZ0020 sy-vline
WA_HRDESV_BW09_STR-BT0020 sy-vline
WA_HRDESV_BW09_STR-VZU1 sy-vline
WA_HRDESV_BW09_STR-BTU1 sy-vline
WA_HRDESV_BW09_STR-VZU2 sy-vline
WA_HRDESV_BW09_STR-BTU2 sy-vline
WA_HRDESV_BW09_STR-VZ6000 sy-vline
WA_HRDESV_BW09_STR-BT6000 sy-vline
WA_HRDESV_BW09_STR-VZ0500 sy-vline
WA_HRDESV_BW09_STR-BT0500 sy-vline
WA_HRDESV_BW09_STR-VZ0600 sy-vline
WA_HRDESV_BW09_STR-BT0600 sy-vline
WA_HRDESV_BW09_STR-VZGES sy-vline
WA_HRDESV_BW09_STR-BTGES sy-vline
WA_HRDESV_BW09_STR-VZKVFR sy-vline
WA_HRDESV_BW09_STR-BTKVFR sy-vline
WA_HRDESV_BW09_STR-VZPVFR sy-vline
WA_HRDESV_BW09_STR-BTPVFR sy-vline
WA_HRDESV_BW09_STR-VZERST sy-vline
WA_HRDESV_BW09_STR-BTERST sy-vline
WA_HRDESV_BW09_STR-VZNV1 sy-vline
WA_HRDESV_BW09_STR-BTNV1 sy-vline
WA_HRDESV_BW09_STR-VZNV2 sy-vline
WA_HRDESV_BW09_STR-BTNV2 sy-vline
WA_HRDESV_BW09_STR-VZNV3 sy-vline
WA_HRDESV_BW09_STR-BTNV3 sy-vline
WA_HRDESV_BW09_STR-VZZAHL sy-vline
WA_HRDESV_BW09_STR-BTZAHL sy-vline
WA_HRDESV_BW09_STR-VZ1OSA sy-vline
WA_HRDESV_BW09_STR-BT1OSA sy-vline
WA_HRDESV_BW09_STR-VZ3OSA sy-vline
WA_HRDESV_BW09_STR-BT3OSA sy-vline
WA_HRDESV_BW09_STR-VZFOSA sy-vline
WA_HRDESV_BW09_STR-BTFOSA sy-vline
WA_HRDESV_BW09_STR-NAME1 sy-vline
WA_HRDESV_BW09_STR-NAME2 sy-vline
WA_HRDESV_BW09_STR-STRAS sy-vline
WA_HRDESV_BW09_STR-LDKZ sy-vline
WA_HRDESV_BW09_STR-PLZ sy-vline
WA_HRDESV_BW09_STR-ORT sy-vline
WA_HRDESV_BW09_STR-ABRE1 sy-vline
WA_HRDESV_BW09_STR-ABRE2 sy-vline
WA_HRDESV_BW09_STR-ORDMK sy-vline
WA_HRDESV_BW09_STR-VERMK sy-vline
WA_HRDESV_BW09_STR-BZALL sy-vline
WA_HRDESV_BW09_STR-BZERH sy-vline
WA_HRDESV_BW09_STR-BZERM sy-vline
WA_HRDESV_BW09_STR-KENNZRK sy-vline
WA_HRDESV_BW09_STR-RES3 sy-vline
WA_HRDESV_BW09_STR-LFDBN sy-vline
WA_HRDESV_BW09_STR-WG sy-vline
WA_HRDESV_BW09_STR-VZEPST sy-vline
WA_HRDESV_BW09_STR-BTEPST sy-vline
WA_HRDESV_BW09_STR-STNR sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.