ABAP Select data from SAP table VBLK2 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 VBLK2 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 VBLK2. 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 VBLK2 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_VBLK2 TYPE STANDARD TABLE OF VBLK2,
      WA_VBLK2 TYPE VBLK2,
      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: <VBLK2> TYPE VBLK2.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM VBLK2
*  INTO TABLE @DATA(IT_VBLK22).
*--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_VBLK2 INDEX 1 INTO DATA(WA_VBLK22).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_VBLK2 ASSIGNING <VBLK2>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<VBLK2>-ANRED = 1.
<VBLK2>-NAME1 = 1.
<VBLK2>-NAME2 = 1.
<VBLK2>-NAME3 = 1.
<VBLK2>-NAME4 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_VBLK2-STRAS, sy-vline,
WA_VBLK2-PFACH, sy-vline,
WA_VBLK2-PSTL2, sy-vline,
WA_VBLK2-LAND1, sy-vline,
WA_VBLK2-PSTLZ, sy-vline,
WA_VBLK2-ORT01, sy-vline.
ENDLOOP. *Add any further fields from structure WA_VBLK2 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_VBLK2 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_VBLK2 INTO WA_VBLK2. *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 ISOLA, internal->external for field SPRAS_VST CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_VBLK2-SPRAS_VST IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VBLK2-SPRAS_VST.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

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

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

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

*Conversion exit AUART, internal->external for field AUART CALL FUNCTION 'CONVERSION_EXIT_AUART_OUTPUT' EXPORTING input = WA_VBLK2-AUART IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VBLK2-AUART.
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_VBLK2_STR,
ANRED TYPE STRING,
NAME1 TYPE STRING,
NAME2 TYPE STRING,
NAME3 TYPE STRING,
NAME4 TYPE STRING,
STRAS TYPE STRING,
PFACH TYPE STRING,
PSTL2 TYPE STRING,
LAND1 TYPE STRING,
PSTLZ TYPE STRING,
ORT01 TYPE STRING,
ORT02 TYPE STRING,
REGIO TYPE STRING,
VKORG TYPE STRING,
VKBUR TYPE STRING,
VSTEL TYPE STRING,
SPRAS_VST TYPE STRING,
VBELN TYPE STRING,
ERDAT TYPE STRING,
BSTNK TYPE STRING,
BSTDK TYPE STRING,
VBELN_VAUF TYPE STRING,
AUDAT_VAUF TYPE STRING,
HERKL TYPE STRING,
LLAND TYPE STRING,
ALAND TYPE STRING,
SLAND TYPE STRING,
ANRED_WE TYPE STRING,
NAME1_WE TYPE STRING,
NAME2_WE TYPE STRING,
NAME3_WE TYPE STRING,
NAME4_WE TYPE STRING,
STRAS_WE TYPE STRING,
PFACH_WE TYPE STRING,
PSTL2_WE TYPE STRING,
LAND1_WE TYPE STRING,
PSTLZ_WE TYPE STRING,
ORT01_WE TYPE STRING,
ORT02_WE TYPE STRING,
REGIO_WE TYPE STRING,
VSBED TYPE STRING,
VSBED_BEZ TYPE STRING,
INCO1 TYPE STRING,
INCO2 TYPE STRING,
INCO1_BEZ TYPE STRING,
BRGEW TYPE STRING,
NTGEW TYPE STRING,
GEWEI TYPE STRING,
VOLUM TYPE STRING,
VOLEH TYPE STRING,
TDNAME TYPE STRING,
ANRED_AG TYPE STRING,
NAME1_AG TYPE STRING,
NAME2_AG TYPE STRING,
NAME3_AG TYPE STRING,
NAME4_AG TYPE STRING,
STRAS_AG TYPE STRING,
PFACH_AG TYPE STRING,
PSTL2_AG TYPE STRING,
LAND1_AG TYPE STRING,
PSTLZ_AG TYPE STRING,
ORT01_AG TYPE STRING,
ORT02_AG TYPE STRING,
REGIO_AG TYPE STRING,
ADRNR_AG TYPE STRING,
ADRNR_WE TYPE STRING,
ADRNR_SP TYPE STRING,
ADRNR TYPE STRING,
ANRED_SP TYPE STRING,
NAME1_SP TYPE STRING,
NAME2_SP TYPE STRING,
NAME3_SP TYPE STRING,
NAME4_SP TYPE STRING,
STRAS_SP TYPE STRING,
PFACH_SP TYPE STRING,
PSTL2_SP TYPE STRING,
LAND1_SP TYPE STRING,
PSTLZ_SP TYPE STRING,
ORT01_SP TYPE STRING,
ORT02_SP TYPE STRING,
REGIO_SP TYPE STRING,
KUNAG TYPE STRING,
KUNWE TYPE STRING,
SPDNR TYPE STRING,
KUNRE TYPE STRING,
ABLAD TYPE STRING,
ANZPK TYPE STRING,
VBTYP TYPE STRING,
ANRED_RE TYPE STRING,
NAME1_RE TYPE STRING,
NAME2_RE TYPE STRING,
NAME3_RE TYPE STRING,
NAME4_RE TYPE STRING,
STRAS_RE TYPE STRING,
PFACH_RE TYPE STRING,
PSTL2_RE TYPE STRING,
LAND1_RE TYPE STRING,
PSTLZ_RE TYPE STRING,
ORT01_RE TYPE STRING,
ORT02_RE TYPE STRING,
REGIO_RE TYPE STRING,
AUART TYPE STRING,
AUART_BEZ TYPE STRING,END OF T_EKKO_STR. DATA: WA_VBLK2_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_VBLK2_STR-ANRED sy-vline
WA_VBLK2_STR-NAME1 sy-vline
WA_VBLK2_STR-NAME2 sy-vline
WA_VBLK2_STR-NAME3 sy-vline
WA_VBLK2_STR-NAME4 sy-vline
WA_VBLK2_STR-STRAS sy-vline
WA_VBLK2_STR-PFACH sy-vline
WA_VBLK2_STR-PSTL2 sy-vline
WA_VBLK2_STR-LAND1 sy-vline
WA_VBLK2_STR-PSTLZ sy-vline
WA_VBLK2_STR-ORT01 sy-vline
WA_VBLK2_STR-ORT02 sy-vline
WA_VBLK2_STR-REGIO sy-vline
WA_VBLK2_STR-VKORG sy-vline
WA_VBLK2_STR-VKBUR sy-vline
WA_VBLK2_STR-VSTEL sy-vline
WA_VBLK2_STR-SPRAS_VST sy-vline
WA_VBLK2_STR-VBELN sy-vline
WA_VBLK2_STR-ERDAT sy-vline
WA_VBLK2_STR-BSTNK sy-vline
WA_VBLK2_STR-BSTDK sy-vline
WA_VBLK2_STR-VBELN_VAUF sy-vline
WA_VBLK2_STR-AUDAT_VAUF sy-vline
WA_VBLK2_STR-HERKL sy-vline
WA_VBLK2_STR-LLAND sy-vline
WA_VBLK2_STR-ALAND sy-vline
WA_VBLK2_STR-SLAND sy-vline
WA_VBLK2_STR-ANRED_WE sy-vline
WA_VBLK2_STR-NAME1_WE sy-vline
WA_VBLK2_STR-NAME2_WE sy-vline
WA_VBLK2_STR-NAME3_WE sy-vline
WA_VBLK2_STR-NAME4_WE sy-vline
WA_VBLK2_STR-STRAS_WE sy-vline
WA_VBLK2_STR-PFACH_WE sy-vline
WA_VBLK2_STR-PSTL2_WE sy-vline
WA_VBLK2_STR-LAND1_WE sy-vline
WA_VBLK2_STR-PSTLZ_WE sy-vline
WA_VBLK2_STR-ORT01_WE sy-vline
WA_VBLK2_STR-ORT02_WE sy-vline
WA_VBLK2_STR-REGIO_WE sy-vline
WA_VBLK2_STR-VSBED sy-vline
WA_VBLK2_STR-VSBED_BEZ sy-vline
WA_VBLK2_STR-INCO1 sy-vline
WA_VBLK2_STR-INCO2 sy-vline
WA_VBLK2_STR-INCO1_BEZ sy-vline
WA_VBLK2_STR-BRGEW sy-vline
WA_VBLK2_STR-NTGEW sy-vline
WA_VBLK2_STR-GEWEI sy-vline
WA_VBLK2_STR-VOLUM sy-vline
WA_VBLK2_STR-VOLEH sy-vline
WA_VBLK2_STR-TDNAME sy-vline
WA_VBLK2_STR-ANRED_AG sy-vline
WA_VBLK2_STR-NAME1_AG sy-vline
WA_VBLK2_STR-NAME2_AG sy-vline
WA_VBLK2_STR-NAME3_AG sy-vline
WA_VBLK2_STR-NAME4_AG sy-vline
WA_VBLK2_STR-STRAS_AG sy-vline
WA_VBLK2_STR-PFACH_AG sy-vline
WA_VBLK2_STR-PSTL2_AG sy-vline
WA_VBLK2_STR-LAND1_AG sy-vline
WA_VBLK2_STR-PSTLZ_AG sy-vline
WA_VBLK2_STR-ORT01_AG sy-vline
WA_VBLK2_STR-ORT02_AG sy-vline
WA_VBLK2_STR-REGIO_AG sy-vline
WA_VBLK2_STR-ADRNR_AG sy-vline
WA_VBLK2_STR-ADRNR_WE sy-vline
WA_VBLK2_STR-ADRNR_SP sy-vline
WA_VBLK2_STR-ADRNR sy-vline
WA_VBLK2_STR-ANRED_SP sy-vline
WA_VBLK2_STR-NAME1_SP sy-vline
WA_VBLK2_STR-NAME2_SP sy-vline
WA_VBLK2_STR-NAME3_SP sy-vline
WA_VBLK2_STR-NAME4_SP sy-vline
WA_VBLK2_STR-STRAS_SP sy-vline
WA_VBLK2_STR-PFACH_SP sy-vline
WA_VBLK2_STR-PSTL2_SP sy-vline
WA_VBLK2_STR-LAND1_SP sy-vline
WA_VBLK2_STR-PSTLZ_SP sy-vline
WA_VBLK2_STR-ORT01_SP sy-vline
WA_VBLK2_STR-ORT02_SP sy-vline
WA_VBLK2_STR-REGIO_SP sy-vline
WA_VBLK2_STR-KUNAG sy-vline
WA_VBLK2_STR-KUNWE sy-vline
WA_VBLK2_STR-SPDNR sy-vline
WA_VBLK2_STR-KUNRE sy-vline
WA_VBLK2_STR-ABLAD sy-vline
WA_VBLK2_STR-ANZPK sy-vline
WA_VBLK2_STR-VBTYP sy-vline
WA_VBLK2_STR-ANRED_RE sy-vline
WA_VBLK2_STR-NAME1_RE sy-vline
WA_VBLK2_STR-NAME2_RE sy-vline
WA_VBLK2_STR-NAME3_RE sy-vline
WA_VBLK2_STR-NAME4_RE sy-vline
WA_VBLK2_STR-STRAS_RE sy-vline
WA_VBLK2_STR-PFACH_RE sy-vline
WA_VBLK2_STR-PSTL2_RE sy-vline
WA_VBLK2_STR-LAND1_RE sy-vline
WA_VBLK2_STR-PSTLZ_RE sy-vline
WA_VBLK2_STR-ORT01_RE sy-vline
WA_VBLK2_STR-ORT02_RE sy-vline
WA_VBLK2_STR-REGIO_RE sy-vline
WA_VBLK2_STR-AUART sy-vline
WA_VBLK2_STR-AUART_BEZ sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.