ABAP Select data from SAP table VBPLA 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 VBPLA 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 VBPLA. 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 VBPLA 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_VBPLA TYPE STANDARD TABLE OF VBPLA,
      WA_VBPLA TYPE VBPLA,
      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: <VBPLA> TYPE VBPLA.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM VBPLA
*  INTO TABLE @DATA(IT_VBPLA2).
*--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_VBPLA INDEX 1 INTO DATA(WA_VBPLA2).


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

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_VBPLA-NAME4, sy-vline,
WA_VBPLA-STRAS, sy-vline,
WA_VBPLA-PFACH, sy-vline,
WA_VBPLA-PFORT, sy-vline,
WA_VBPLA-PSTL2, sy-vline,
WA_VBPLA-LAND1, sy-vline.
ENDLOOP. *Add any further fields from structure WA_VBPLA 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_VBPLA 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_VBPLA INTO WA_VBPLA. *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 TKNUM CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_VBPLA-TKNUM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VBPLA-TKNUM.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

*Conversion exit ISOLA, internal->external for field SPRAS_VST CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_VBPLA-SPRAS_VST IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VBPLA-SPRAS_VST.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field ADRNR_WE CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_VBPLA-ADRNR_WE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VBPLA-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_VBPLA-ADRNR_SP IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VBPLA-ADRNR_SP.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

*Conversion exit ALPHA, internal->external for field ADRNP_SP CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_VBPLA-ADRNP_SP IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VBPLA-ADRNP_SP.
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_VBPLA_STR,
ADRDA TYPE STRING,
ANRED TYPE STRING,
NAME1 TYPE STRING,
NAME2 TYPE STRING,
NAME3 TYPE STRING,
NAME4 TYPE STRING,
STRAS TYPE STRING,
PFACH TYPE STRING,
PFORT TYPE STRING,
PSTL2 TYPE STRING,
LAND1 TYPE STRING,
PSTLZ TYPE STRING,
ORT01 TYPE STRING,
ORT02 TYPE STRING,
REGIO TYPE STRING,
LZONE TYPE STRING,
TKNUM TYPE STRING,
SAMMG TYPE STRING,
VBELN TYPE STRING,
BRGEW TYPE STRING,
NTGEW TYPE STRING,
GEWEI_MAX TYPE STRING,
TARAG TYPE STRING,
GEWEI TYPE STRING,
BRVOL TYPE STRING,
NTVOL TYPE STRING,
VOLEH_MAX TYPE STRING,
TAVOL TYPE STRING,
VOLEH TYPE STRING,
VSART TYPE STRING,
VSART_BEZ TYPE STRING,
ADRNR_VST TYPE STRING,
ANRED_VST TYPE STRING,
NAME1_VST TYPE STRING,
NAME2_VST TYPE STRING,
NAME3_VST TYPE STRING,
NAME4_VST TYPE STRING,
STRAS_VST TYPE STRING,
PFACH_VST TYPE STRING,
PSTL2_VST TYPE STRING,
LAND1_VST TYPE STRING,
PSTLZ_VST TYPE STRING,
ORT01_VST TYPE STRING,
ORT02_VST TYPE STRING,
REGIO_VST TYPE STRING,
VSTEL TYPE STRING,
SPRAS_VST TYPE STRING,
VSTEL_BEZ TYPE STRING,
LFDAT TYPE STRING,
LFUHR TYPE STRING,
ROUTE TYPE STRING,
ROUTE_BEZ TYPE STRING,
LSTEL 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,
KNREF_WE TYPE STRING,
VSBED TYPE STRING,
VSBED_BEZ TYPE STRING,
ADRNR_WE TYPE STRING,
ADRNR_SP 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,
KNREF_SP TYPE STRING,
KUNWE TYPE STRING,
SPDNR TYPE STRING,
ABLAD TYPE STRING,
TRATY TYPE STRING,
TRAID TYPE STRING,
ANZPK TYPE STRING,
ADRNR TYPE STRING,
ADRNP TYPE STRING,
ADDRESS_TYPE TYPE STRING,
ADRNR_AG TYPE STRING,
ADRNP_AG TYPE STRING,
ADDRESS_TYPE_AG TYPE STRING,
ADRNP_WE TYPE STRING,
ADDRESS_TYPE_WE TYPE STRING,
ADRNP_SP TYPE STRING,
ADDRESS_TYPE_SP TYPE STRING,END OF T_EKKO_STR. DATA: WA_VBPLA_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_VBPLA_STR-ADRDA sy-vline
WA_VBPLA_STR-ANRED sy-vline
WA_VBPLA_STR-NAME1 sy-vline
WA_VBPLA_STR-NAME2 sy-vline
WA_VBPLA_STR-NAME3 sy-vline
WA_VBPLA_STR-NAME4 sy-vline
WA_VBPLA_STR-STRAS sy-vline
WA_VBPLA_STR-PFACH sy-vline
WA_VBPLA_STR-PFORT sy-vline
WA_VBPLA_STR-PSTL2 sy-vline
WA_VBPLA_STR-LAND1 sy-vline
WA_VBPLA_STR-PSTLZ sy-vline
WA_VBPLA_STR-ORT01 sy-vline
WA_VBPLA_STR-ORT02 sy-vline
WA_VBPLA_STR-REGIO sy-vline
WA_VBPLA_STR-LZONE sy-vline
WA_VBPLA_STR-TKNUM sy-vline
WA_VBPLA_STR-SAMMG sy-vline
WA_VBPLA_STR-VBELN sy-vline
WA_VBPLA_STR-BRGEW sy-vline
WA_VBPLA_STR-NTGEW sy-vline
WA_VBPLA_STR-GEWEI_MAX sy-vline
WA_VBPLA_STR-TARAG sy-vline
WA_VBPLA_STR-GEWEI sy-vline
WA_VBPLA_STR-BRVOL sy-vline
WA_VBPLA_STR-NTVOL sy-vline
WA_VBPLA_STR-VOLEH_MAX sy-vline
WA_VBPLA_STR-TAVOL sy-vline
WA_VBPLA_STR-VOLEH sy-vline
WA_VBPLA_STR-VSART sy-vline
WA_VBPLA_STR-VSART_BEZ sy-vline
WA_VBPLA_STR-ADRNR_VST sy-vline
WA_VBPLA_STR-ANRED_VST sy-vline
WA_VBPLA_STR-NAME1_VST sy-vline
WA_VBPLA_STR-NAME2_VST sy-vline
WA_VBPLA_STR-NAME3_VST sy-vline
WA_VBPLA_STR-NAME4_VST sy-vline
WA_VBPLA_STR-STRAS_VST sy-vline
WA_VBPLA_STR-PFACH_VST sy-vline
WA_VBPLA_STR-PSTL2_VST sy-vline
WA_VBPLA_STR-LAND1_VST sy-vline
WA_VBPLA_STR-PSTLZ_VST sy-vline
WA_VBPLA_STR-ORT01_VST sy-vline
WA_VBPLA_STR-ORT02_VST sy-vline
WA_VBPLA_STR-REGIO_VST sy-vline
WA_VBPLA_STR-VSTEL sy-vline
WA_VBPLA_STR-SPRAS_VST sy-vline
WA_VBPLA_STR-VSTEL_BEZ sy-vline
WA_VBPLA_STR-LFDAT sy-vline
WA_VBPLA_STR-LFUHR sy-vline
WA_VBPLA_STR-ROUTE sy-vline
WA_VBPLA_STR-ROUTE_BEZ sy-vline
WA_VBPLA_STR-LSTEL sy-vline
WA_VBPLA_STR-ANRED_WE sy-vline
WA_VBPLA_STR-NAME1_WE sy-vline
WA_VBPLA_STR-NAME2_WE sy-vline
WA_VBPLA_STR-NAME3_WE sy-vline
WA_VBPLA_STR-NAME4_WE sy-vline
WA_VBPLA_STR-STRAS_WE sy-vline
WA_VBPLA_STR-PFACH_WE sy-vline
WA_VBPLA_STR-PSTL2_WE sy-vline
WA_VBPLA_STR-LAND1_WE sy-vline
WA_VBPLA_STR-PSTLZ_WE sy-vline
WA_VBPLA_STR-ORT01_WE sy-vline
WA_VBPLA_STR-ORT02_WE sy-vline
WA_VBPLA_STR-REGIO_WE sy-vline
WA_VBPLA_STR-KNREF_WE sy-vline
WA_VBPLA_STR-VSBED sy-vline
WA_VBPLA_STR-VSBED_BEZ sy-vline
WA_VBPLA_STR-ADRNR_WE sy-vline
WA_VBPLA_STR-ADRNR_SP sy-vline
WA_VBPLA_STR-ANRED_SP sy-vline
WA_VBPLA_STR-NAME1_SP sy-vline
WA_VBPLA_STR-NAME2_SP sy-vline
WA_VBPLA_STR-NAME3_SP sy-vline
WA_VBPLA_STR-NAME4_SP sy-vline
WA_VBPLA_STR-STRAS_SP sy-vline
WA_VBPLA_STR-PFACH_SP sy-vline
WA_VBPLA_STR-PSTL2_SP sy-vline
WA_VBPLA_STR-LAND1_SP sy-vline
WA_VBPLA_STR-PSTLZ_SP sy-vline
WA_VBPLA_STR-ORT01_SP sy-vline
WA_VBPLA_STR-ORT02_SP sy-vline
WA_VBPLA_STR-REGIO_SP sy-vline
WA_VBPLA_STR-KNREF_SP sy-vline
WA_VBPLA_STR-KUNWE sy-vline
WA_VBPLA_STR-SPDNR sy-vline
WA_VBPLA_STR-ABLAD sy-vline
WA_VBPLA_STR-TRATY sy-vline
WA_VBPLA_STR-TRAID sy-vline
WA_VBPLA_STR-ANZPK sy-vline
WA_VBPLA_STR-ADRNR sy-vline
WA_VBPLA_STR-ADRNP sy-vline
WA_VBPLA_STR-ADDRESS_TYPE sy-vline
WA_VBPLA_STR-ADRNR_AG sy-vline
WA_VBPLA_STR-ADRNP_AG sy-vline
WA_VBPLA_STR-ADDRESS_TYPE_AG sy-vline
WA_VBPLA_STR-ADRNP_WE sy-vline
WA_VBPLA_STR-ADDRESS_TYPE_WE sy-vline
WA_VBPLA_STR-ADRNP_SP sy-vline
WA_VBPLA_STR-ADDRESS_TYPE_SP sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.