ABAP Select data from SAP table VDBLSS 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 VDBLSS 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 VDBLSS. 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 VDBLSS 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_VDBLSS TYPE STANDARD TABLE OF VDBLSS,
      WA_VDBLSS TYPE VDBLSS,
      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: <VDBLSS> TYPE VDBLSS.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM VDBLSS
*  INTO TABLE @DATA(IT_VDBLSS2).
*--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_VDBLSS INDEX 1 INTO DATA(WA_VDBLSS2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_VDBLSS ASSIGNING <VDBLSS>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<VDBLSS>-MANDT = 1.
<VDBLSS>-RBLNR = 1.
<VDBLSS>-RERF = 1.
<VDBLSS>-DERF = 1.
<VDBLSS>-TERF = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_VDBLSS-REHER, sy-vline,
WA_VDBLSS-RBEAR, sy-vline,
WA_VDBLSS-DBEAR, sy-vline,
WA_VDBLSS-TBEAR, sy-vline,
WA_VDBLSS-RBHER, sy-vline,
WA_VDBLSS-PABLENT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_VDBLSS 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_VDBLSS 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_VDBLSS INTO WA_VDBLSS. *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.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_VDBLSS_STR,
MANDT TYPE STRING,
RBLNR TYPE STRING,
RERF TYPE STRING,
DERF TYPE STRING,
TERF TYPE STRING,
REHER TYPE STRING,
RBEAR TYPE STRING,
DBEAR TYPE STRING,
TBEAR TYPE STRING,
RBHER TYPE STRING,
PABLENT TYPE STRING,
PABZINS TYPE STRING,
PABFAK TYPE STRING,
PAFAG TYPE STRING,
PAFAS TYPE STRING,
AGARAGE TYPE STRING,
ASTELL TYPE STRING,
PAUSER TYPE STRING,
PBAUNK TYPE STRING,
BERMIN TYPE STRING,
BBAUWERT TYPE STRING,
BBAUOERB TYPE STRING,
PBBAUT TYPE STRING,
BBODEMIN TYPE STRING,
BBODEN TYPE STRING,
BBODOERB TYPE STRING,
FGESAMT TYPE STRING,
BGPREIS TYPE STRING,
AJRND TYPE STRING,
AJMRND TYPE STRING,
AJRLFZ TYPE STRING,
SZUSTAND TYPE STRING,
PMAFABAU TYPE STRING,
BNEUAUS TYPE STRING,
BNEUBK TYPE STRING,
BNEUBNK TYPE STRING,
BNEUBS TYPE STRING,
BNEUBT TYPE STRING,
BNEUG TYPE STRING,
BNEURBK TYPE STRING,
BNEUST TYPE STRING,
BSTEH TYPE STRING,
BGEH TYPE STRING,
PSWIND TYPE STRING,
PSIAB TYPE STRING,
BSIAB TYPE STRING,
BZWBK TYPE STRING,
BZWAER TYPE STRING,
BZWBNK TYPE STRING,
BZWBWS TYPE STRING,
BZWBT TYPE STRING,
BZWG TYPE STRING,
BZWRBK TYPE STRING,
BZWST TYPE STRING,
BSZWGT TYPE STRING,
BSNEUGT TYPE STRING,
JSIAB TYPE STRING,
JNEUBT TYPE STRING,
JNEUAUS TYPE STRING,
JNEUBNK TYPE STRING,END OF T_EKKO_STR. DATA: WA_VDBLSS_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_VDBLSS_STR-MANDT sy-vline
WA_VDBLSS_STR-RBLNR sy-vline
WA_VDBLSS_STR-RERF sy-vline
WA_VDBLSS_STR-DERF sy-vline
WA_VDBLSS_STR-TERF sy-vline
WA_VDBLSS_STR-REHER sy-vline
WA_VDBLSS_STR-RBEAR sy-vline
WA_VDBLSS_STR-DBEAR sy-vline
WA_VDBLSS_STR-TBEAR sy-vline
WA_VDBLSS_STR-RBHER sy-vline
WA_VDBLSS_STR-PABLENT sy-vline
WA_VDBLSS_STR-PABZINS sy-vline
WA_VDBLSS_STR-PABFAK sy-vline
WA_VDBLSS_STR-PAFAG sy-vline
WA_VDBLSS_STR-PAFAS sy-vline
WA_VDBLSS_STR-AGARAGE sy-vline
WA_VDBLSS_STR-ASTELL sy-vline
WA_VDBLSS_STR-PAUSER sy-vline
WA_VDBLSS_STR-PBAUNK sy-vline
WA_VDBLSS_STR-BERMIN sy-vline
WA_VDBLSS_STR-BBAUWERT sy-vline
WA_VDBLSS_STR-BBAUOERB sy-vline
WA_VDBLSS_STR-PBBAUT sy-vline
WA_VDBLSS_STR-BBODEMIN sy-vline
WA_VDBLSS_STR-BBODEN sy-vline
WA_VDBLSS_STR-BBODOERB sy-vline
WA_VDBLSS_STR-FGESAMT sy-vline
WA_VDBLSS_STR-BGPREIS sy-vline
WA_VDBLSS_STR-AJRND sy-vline
WA_VDBLSS_STR-AJMRND sy-vline
WA_VDBLSS_STR-AJRLFZ sy-vline
WA_VDBLSS_STR-SZUSTAND sy-vline
WA_VDBLSS_STR-PMAFABAU sy-vline
WA_VDBLSS_STR-BNEUAUS sy-vline
WA_VDBLSS_STR-BNEUBK sy-vline
WA_VDBLSS_STR-BNEUBNK sy-vline
WA_VDBLSS_STR-BNEUBS sy-vline
WA_VDBLSS_STR-BNEUBT sy-vline
WA_VDBLSS_STR-BNEUG sy-vline
WA_VDBLSS_STR-BNEURBK sy-vline
WA_VDBLSS_STR-BNEUST sy-vline
WA_VDBLSS_STR-BSTEH sy-vline
WA_VDBLSS_STR-BGEH sy-vline
WA_VDBLSS_STR-PSWIND sy-vline
WA_VDBLSS_STR-PSIAB sy-vline
WA_VDBLSS_STR-BSIAB sy-vline
WA_VDBLSS_STR-BZWBK sy-vline
WA_VDBLSS_STR-BZWAER sy-vline
WA_VDBLSS_STR-BZWBNK sy-vline
WA_VDBLSS_STR-BZWBWS sy-vline
WA_VDBLSS_STR-BZWBT sy-vline
WA_VDBLSS_STR-BZWG sy-vline
WA_VDBLSS_STR-BZWRBK sy-vline
WA_VDBLSS_STR-BZWST sy-vline
WA_VDBLSS_STR-BSZWGT sy-vline
WA_VDBLSS_STR-BSNEUGT sy-vline
WA_VDBLSS_STR-JSIAB sy-vline
WA_VDBLSS_STR-JNEUBT sy-vline
WA_VDBLSS_STR-JNEUAUS sy-vline
WA_VDBLSS_STR-JNEUBNK sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.