ABAP Select data from SAP table VBRPJ0 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 VBRPJ0 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 VBRPJ0. 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 VBRPJ0 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_VBRPJ0 TYPE STANDARD TABLE OF VBRPJ0,
      WA_VBRPJ0 TYPE VBRPJ0,
      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: <VBRPJ0> TYPE VBRPJ0.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM VBRPJ0
*  INTO TABLE @DATA(IT_VBRPJ02).
*--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_VBRPJ0 INDEX 1 INTO DATA(WA_VBRPJ02).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_VBRPJ0 ASSIGNING <VBRPJ0>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<VBRPJ0>-ISPAUART = 1.
<VBRPJ0>-ISPAUAGRP = 1.
<VBRPJ0>-ISPKOSTL_L = 1.
<VBRPJ0>-ISPDRERZ = 1.
<VBRPJ0>-ISPPVA = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_VBRPJ0-ISPBEZ, sy-vline,
WA_VBRPJ0-ISPLIFART, sy-vline,
WA_VBRPJ0-ISPDRUCK, sy-vline,
WA_VBRPJ0-ISPGUTSCH, sy-vline,
WA_VBRPJ0-ISPXLOGO, sy-vline,
WA_VBRPJ0-ISPPVAKNTG, sy-vline.
ENDLOOP. *Add any further fields from structure WA_VBRPJ0 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_VBRPJ0 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_VBRPJ0 INTO WA_VBRPJ0. *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 ISPKOSTL_L CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_VBRPJ0-ISPKOSTL_L IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VBRPJ0-ISPKOSTL_L.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

*Conversion exit ALPHA, internal->external for field ISPVAUSGB CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_VBRPJ0-ISPVAUSGB IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VBRPJ0-ISPVAUSGB.
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_VBRPJ0_STR,
ISPAUART TYPE STRING,
ISPAUAGRP TYPE STRING,
ISPKOSTL_L TYPE STRING,
ISPDRERZ TYPE STRING,
ISPPVA TYPE STRING,
ISPBEZ TYPE STRING,
ISPLIFART TYPE STRING,
ISPDRUCK TYPE STRING,
ISPGUTSCH TYPE STRING,
ISPXLOGO TYPE STRING,
ISPPVAKNTG TYPE STRING,
ISPPVAKONG TYPE STRING,
ISPPVABONG TYPE STRING,
ISPFKPER TYPE STRING,
ISPPERFK TYPE STRING,
ISPZAHLW TYPE STRING,
ISPPOSEX TYPE STRING,
ISPJPERIOD TYPE STRING,
ISPVBELN TYPE STRING,
ISPPOSNR TYPE STRING,
ISPETENR TYPE STRING,
ISPETEEX TYPE STRING,
ISPETART TYPE STRING,
ISPETMENGE TYPE STRING,
ISPETMEINS TYPE STRING,
ISPETVOR TYPE STRING,
ISPKPOSN TYPE STRING,
ISPPRBAS TYPE STRING,
ISPPRSPER TYPE STRING,
ISPBZPERF TYPE STRING,
ISPPRSMLT TYPE STRING,
ISPPRSDIV TYPE STRING,
ISPAEART TYPE STRING,
ISPANZET TYPE STRING,
ISPERSDAT TYPE STRING,
ISPWRBAKT TYPE STRING,
ISPFAKVON TYPE STRING,
ISPFAKBIS TYPE STRING,
ISPSHKZG TYPE STRING,
ISPKONDA TYPE STRING,
ISPKDGRP TYPE STRING,
ISPPOART TYPE STRING,
ISPPRSANTZ TYPE STRING,
ISPPRSANTN TYPE STRING,
ISPPRSANZP TYPE STRING,
ISPBRTWR_P TYPE STRING,
ISPPRBAS_V TYPE STRING,
ISPLAGRP_V TYPE STRING,
ISPXFKKOMP TYPE STRING,
ISPXFKENDE TYPE STRING,
ISPSFPOS TYPE STRING,
ISPXKOMPP TYPE STRING,
ISPVERSDAT TYPE STRING,
ISPLANDE TYPE STRING,
ISPRKAUFNR TYPE STRING,
ISPRKPOSNR TYPE STRING,
ISPCOAUFNR TYPE STRING,
ISPVAUSGB TYPE STRING,
ISPXFKBALF TYPE STRING,
ISPXFKBAAU TYPE STRING,
ISPVKBURZU TYPE STRING,
ISPXSTABGR TYPE STRING,
ISPXIMMAT TYPE STRING,
ISPIMMATD TYPE STRING,
ISPXFKRUEK TYPE STRING,
ISPIVWKN TYPE STRING,
ISPXIVW TYPE STRING,
ISPJKPAVRG TYPE STRING,END OF T_EKKO_STR. DATA: WA_VBRPJ0_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_VBRPJ0_STR-ISPAUART sy-vline
WA_VBRPJ0_STR-ISPAUAGRP sy-vline
WA_VBRPJ0_STR-ISPKOSTL_L sy-vline
WA_VBRPJ0_STR-ISPDRERZ sy-vline
WA_VBRPJ0_STR-ISPPVA sy-vline
WA_VBRPJ0_STR-ISPBEZ sy-vline
WA_VBRPJ0_STR-ISPLIFART sy-vline
WA_VBRPJ0_STR-ISPDRUCK sy-vline
WA_VBRPJ0_STR-ISPGUTSCH sy-vline
WA_VBRPJ0_STR-ISPXLOGO sy-vline
WA_VBRPJ0_STR-ISPPVAKNTG sy-vline
WA_VBRPJ0_STR-ISPPVAKONG sy-vline
WA_VBRPJ0_STR-ISPPVABONG sy-vline
WA_VBRPJ0_STR-ISPFKPER sy-vline
WA_VBRPJ0_STR-ISPPERFK sy-vline
WA_VBRPJ0_STR-ISPZAHLW sy-vline
WA_VBRPJ0_STR-ISPPOSEX sy-vline
WA_VBRPJ0_STR-ISPJPERIOD sy-vline
WA_VBRPJ0_STR-ISPVBELN sy-vline
WA_VBRPJ0_STR-ISPPOSNR sy-vline
WA_VBRPJ0_STR-ISPETENR sy-vline
WA_VBRPJ0_STR-ISPETEEX sy-vline
WA_VBRPJ0_STR-ISPETART sy-vline
WA_VBRPJ0_STR-ISPETMENGE sy-vline
WA_VBRPJ0_STR-ISPETMEINS sy-vline
WA_VBRPJ0_STR-ISPETVOR sy-vline
WA_VBRPJ0_STR-ISPKPOSN sy-vline
WA_VBRPJ0_STR-ISPPRBAS sy-vline
WA_VBRPJ0_STR-ISPPRSPER sy-vline
WA_VBRPJ0_STR-ISPBZPERF sy-vline
WA_VBRPJ0_STR-ISPPRSMLT sy-vline
WA_VBRPJ0_STR-ISPPRSDIV sy-vline
WA_VBRPJ0_STR-ISPAEART sy-vline
WA_VBRPJ0_STR-ISPANZET sy-vline
WA_VBRPJ0_STR-ISPERSDAT sy-vline
WA_VBRPJ0_STR-ISPWRBAKT sy-vline
WA_VBRPJ0_STR-ISPFAKVON sy-vline
WA_VBRPJ0_STR-ISPFAKBIS sy-vline
WA_VBRPJ0_STR-ISPSHKZG sy-vline
WA_VBRPJ0_STR-ISPKONDA sy-vline
WA_VBRPJ0_STR-ISPKDGRP sy-vline
WA_VBRPJ0_STR-ISPPOART sy-vline
WA_VBRPJ0_STR-ISPPRSANTZ sy-vline
WA_VBRPJ0_STR-ISPPRSANTN sy-vline
WA_VBRPJ0_STR-ISPPRSANZP sy-vline
WA_VBRPJ0_STR-ISPBRTWR_P sy-vline
WA_VBRPJ0_STR-ISPPRBAS_V sy-vline
WA_VBRPJ0_STR-ISPLAGRP_V sy-vline
WA_VBRPJ0_STR-ISPXFKKOMP sy-vline
WA_VBRPJ0_STR-ISPXFKENDE sy-vline
WA_VBRPJ0_STR-ISPSFPOS sy-vline
WA_VBRPJ0_STR-ISPXKOMPP sy-vline
WA_VBRPJ0_STR-ISPVERSDAT sy-vline
WA_VBRPJ0_STR-ISPLANDE sy-vline
WA_VBRPJ0_STR-ISPRKAUFNR sy-vline
WA_VBRPJ0_STR-ISPRKPOSNR sy-vline
WA_VBRPJ0_STR-ISPCOAUFNR sy-vline
WA_VBRPJ0_STR-ISPVAUSGB sy-vline
WA_VBRPJ0_STR-ISPXFKBALF sy-vline
WA_VBRPJ0_STR-ISPXFKBAAU sy-vline
WA_VBRPJ0_STR-ISPVKBURZU sy-vline
WA_VBRPJ0_STR-ISPXSTABGR sy-vline
WA_VBRPJ0_STR-ISPXIMMAT sy-vline
WA_VBRPJ0_STR-ISPIMMATD sy-vline
WA_VBRPJ0_STR-ISPXFKRUEK sy-vline
WA_VBRPJ0_STR-ISPIVWKN sy-vline
WA_VBRPJ0_STR-ISPXIVW sy-vline
WA_VBRPJ0_STR-ISPJKPAVRG sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.