ABAP Select data from SAP table /BI0/V0BPCBPFVPJ 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 /BI0/V0BPCBPFVPJ 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 /BI0/V0BPCBPFVPJ. 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 /BI0/V0BPCBPFVPJ 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_/BI0/V0BPCBPFVPJ TYPE STANDARD TABLE OF /BI0/V0BPCBPFVPJ,
      WA_/BI0/V0BPCBPFVPJ TYPE /BI0/V0BPCBPFVPJ,
      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: </BI0/V0BPCBPFVPJ> TYPE /BI0/V0BPCBPFVPJ.

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

SELECT *
*restrict ABAP select to first 10 rows
 UP TO 10 ROWS      
  FROM /BI0/V0BPCBPFVPJ
  INTO TABLE IT_/BI0/V0BPCBPFVPJ.

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM /BI0/V0BPCBPFVPJ
*  INTO TABLE @DATA(IT_/BI0/V0BPCBPFVPJ2).
*--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_/BI0/V0BPCBPFVPJ INDEX 1 INTO DATA(WA_/BI0/V0BPCBPFVPJ2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_/BI0/V0BPCBPFVPJ ASSIGNING </BI0/V0BPCBPFVPJ>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
</BI0/V0BPCBPFVPJ>-0CHNGID = 1.
</BI0/V0BPCBPFVPJ>-0RECORDTP = 1.
</BI0/V0BPCBPFVPJ>-0REQUID = 1.
</BI0/V0BPCBPFVPJ>-0BPCAPPSET = 1.
</BI0/V0BPCBPFVPJ>-0BPCTMPL = 1.
ENDLOOP.

LOOP AT IT_/BI0/V0BPCBPFVPJ INTO WA_/BI0/V0BPCBPFVPJ.
*Write horizonal line to screen report.
  WRITE:/ sy-uline.

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_/BI0/V0BPCBPFVPJ-0BPCTMPLVER, sy-vline,
WA_/BI0/V0BPCBPFVPJ-0BPCTMPLSTA, sy-vline,
WA_/BI0/V0BPCBPFVPJ-0BPCISVALID, sy-vline,
WA_/BI0/V0BPCBPFVPJ-0BPCTXTLG, sy-vline,
WA_/BI0/V0BPCBPFVPJ-0BPCINST, sy-vline,
WA_/BI0/V0BPCBPFVPJ-0BPCINSTNM, sy-vline.
ENDLOOP. *Add any further fields from structure WA_/BI0/V0BPCBPFVPJ 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_/BI0/V0BPCBPFVPJ 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_/BI0/V0BPCBPFVPJ INTO WA_/BI0/V0BPCBPFVPJ. *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 RQUID, internal->external for field 0REQUID CALL FUNCTION 'CONVERSION_EXIT_RQUID_OUTPUT' EXPORTING input = WA_/BI0/V0BPCBPFVPJ-0REQUID IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/BI0/V0BPCBPFVPJ-0REQUID.
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_/BI0/V0BPCBPFVPJ_STR,
0CHNGID TYPE STRING,
0RECORDTP TYPE STRING,
0REQUID TYPE STRING,
0BPCAPPSET TYPE STRING,
0BPCTMPL TYPE STRING,
0BPCTMPLVER TYPE STRING,
0BPCTMPLSTA TYPE STRING,
0BPCISVALID TYPE STRING,
0BPCTXTLG TYPE STRING,
0BPCINST TYPE STRING,
0BPCINSTNM TYPE STRING,
0BPCINSTSTA TYPE STRING,
0BPCUSER TYPE STRING,
0BPCINSTIDN TYPE STRING,
0BPCSTDATE TYPE STRING,
0BPCSTTIME TYPE STRING,
0BPCRGN TYPE STRING,
0BPCRGNORD TYPE STRING,
0BPCRGNSTA TYPE STRING,
0BPCDRVMBR TYPE STRING,
0BPCDRVMBRT TYPE STRING,
0BPCRGNPERF TYPE STRING,
0BPCRGNREVW TYPE STRING,
0BPCSTEP TYPE STRING,
0BPCSTEPORD TYPE STRING,
0BPCSTEPNM TYPE STRING,
0BPCSTEPTXT TYPE STRING,
0BPCDRVDIM TYPE STRING,
0BPCOPENCRT TYPE STRING,
0BPCALREOP TYPE STRING,
0BPCREQREVW TYPE STRING,
0BPCPAGE TYPE STRING,
0BPCRGNFID TYPE STRING,
0BPCRGNFCID TYPE STRING,
0BPCRGNFINF TYPE STRING,
0BPCRGNPDL TYPE STRING,
0BPCRGNRDL TYPE STRING,
0BPCRGNPERU TYPE STRING,
0BPCRGNREVU TYPE STRING,
0BPCCOUNT TYPE STRING,
0BPCTOTPAGE TYPE STRING,END OF T_EKKO_STR. DATA: WA_/BI0/V0BPCBPFVPJ_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_/BI0/V0BPCBPFVPJ_STR-0CHNGID sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0RECORDTP sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0REQUID sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCAPPSET sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCTMPL sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCTMPLVER sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCTMPLSTA sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCISVALID sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCTXTLG sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCINST sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCINSTNM sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCINSTSTA sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCUSER sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCINSTIDN sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCSTDATE sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCSTTIME sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCRGN sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCRGNORD sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCRGNSTA sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCDRVMBR sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCDRVMBRT sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCRGNPERF sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCRGNREVW sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCSTEP sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCSTEPORD sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCSTEPNM sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCSTEPTXT sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCDRVDIM sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCOPENCRT sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCALREOP sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCREQREVW sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCPAGE sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCRGNFID sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCRGNFCID sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCRGNFINF sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCRGNPDL sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCRGNRDL sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCRGNPERU sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCRGNREVU sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCCOUNT sy-vline
WA_/BI0/V0BPCBPFVPJ_STR-0BPCTOTPAGE sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.