ABAP Select data from SAP table /BI0/V0BPCBPFVPH 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/V0BPCBPFVPH 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/V0BPCBPFVPH. 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/V0BPCBPFVPH 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/V0BPCBPFVPH TYPE STANDARD TABLE OF /BI0/V0BPCBPFVPH, WA_/BI0/V0BPCBPFVPH TYPE /BI0/V0BPCBPFVPH, 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/V0BPCBPFVPH> TYPE /BI0/V0BPCBPFVPH. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_/BI0/V0BPCBPFVPH. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM /BI0/V0BPCBPFVPH INTO TABLE IT_/BI0/V0BPCBPFVPH. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM /BI0/V0BPCBPFVPH * INTO TABLE @DATA(IT_/BI0/V0BPCBPFVPH2). *--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/V0BPCBPFVPH INDEX 1 INTO DATA(WA_/BI0/V0BPCBPFVPH2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_/BI0/V0BPCBPFVPH ASSIGNING </BI0/V0BPCBPFVPH>.*To update a field value using a field symbol simply change the value via the field symbol pointer
</BI0/V0BPCBPFVPH>-0CHNGID = 1.
</BI0/V0BPCBPFVPH>-0RECORDTP = 1.
</BI0/V0BPCBPFVPH>-0REQUID = 1.
</BI0/V0BPCBPFVPH>-0BPCAPPSET = 1.
</BI0/V0BPCBPFVPH>-0BPCTMPL = 1.
ENDLOOP. LOOP AT IT_/BI0/V0BPCBPFVPH INTO WA_/BI0/V0BPCBPFVPH. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_/BI0/V0BPCBPFVPH-0BPCTMPLVER, sy-vline,
WA_/BI0/V0BPCBPFVPH-0BPCTMPLSTA, sy-vline,
WA_/BI0/V0BPCBPFVPH-0BPCISVALID, sy-vline,
WA_/BI0/V0BPCBPFVPH-0BPCTXTLG, sy-vline,
WA_/BI0/V0BPCBPFVPH-0BPCINST, sy-vline,
WA_/BI0/V0BPCBPFVPH-0BPCINSTNM, sy-vline.
ENDLOOP. *Add any further fields from structure WA_/BI0/V0BPCBPFVPH 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/V0BPCBPFVPH 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/V0BPCBPFVPH INTO WA_/BI0/V0BPCBPFVPH. *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/V0BPCBPFVPH-0REQUID IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/BI0/V0BPCBPFVPH-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/V0BPCBPFVPH_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,
HID_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/V0BPCBPFVPH_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/V0BPCBPFVPH_STR-0CHNGID sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0RECORDTP sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0REQUID sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCAPPSET sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCTMPL sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCTMPLVER sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCTMPLSTA sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCISVALID sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCTXTLG sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCINST sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCINSTNM sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCINSTSTA sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCUSER sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCINSTIDN sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCSTDATE sy-vline
WA_/BI0/V0BPCBPFVPH_STR-HID_0BPCSTDATE sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCSTTIME sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCRGN sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCRGNORD sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCRGNSTA sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCDRVMBR sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCDRVMBRT sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCRGNPERF sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCRGNREVW sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCSTEP sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCSTEPORD sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCSTEPNM sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCSTEPTXT sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCDRVDIM sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCOPENCRT sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCALREOP sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCREQREVW sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCPAGE sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCRGNFID sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCRGNFCID sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCRGNFINF sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCRGNPDL sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCRGNRDL sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCRGNPERU sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCRGNREVU sy-vline
WA_/BI0/V0BPCBPFVPH_STR-0BPCCOUNT sy-vline
WA_/BI0/V0BPCBPFVPH_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.