ABAP Select data from SAP table VDSCRIPT 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 VDSCRIPT 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 VDSCRIPT. 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 VDSCRIPT 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_VDSCRIPT TYPE STANDARD TABLE OF VDSCRIPT,
      WA_VDSCRIPT TYPE VDSCRIPT,
      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: <VDSCRIPT> TYPE VDSCRIPT.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM VDSCRIPT
*  INTO TABLE @DATA(IT_VDSCRIPT2).
*--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_VDSCRIPT INDEX 1 INTO DATA(WA_VDSCRIPT2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_VDSCRIPT ASSIGNING <VDSCRIPT>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<VDSCRIPT>-RANL = 1.
<VDSCRIPT>-BZUSAGE = 1.
<VDSCRIPT>-BZHLGNET = 1.
<VDSCRIPT>-BZHLGBRT = 1.
<VDSCRIPT>-BAUSB = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_VDSCRIPT-BNWHR, sy-vline,
WA_VDSCRIPT-SANTWHR, sy-vline,
WA_VDSCRIPT-SNWHR, sy-vline,
WA_VDSCRIPT-KZAHLUNG, sy-vline,
WA_VDSCRIPT-PKOND, sy-vline,
WA_VDSCRIPT-PNOMZINS, sy-vline.
ENDLOOP. *Add any further fields from structure WA_VDSCRIPT 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_VDSCRIPT 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_VDSCRIPT INTO WA_VDSCRIPT. *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 RANL CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_VDSCRIPT-RANL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VDSCRIPT-RANL.
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_VDSCRIPT_STR,
RANL TYPE STRING,
BZUSAGE TYPE STRING,
BZHLGNET TYPE STRING,
BZHLGBRT TYPE STRING,
BAUSB TYPE STRING,
BNWHR TYPE STRING,
SANTWHR TYPE STRING,
SNWHR TYPE STRING,
KZAHLUNG TYPE STRING,
PKOND TYPE STRING,
PNOMZINS TYPE STRING,
PNOMZIDR TYPE STRING,
PEFFZINS TYPE STRING,
PEFFZIDR TYPE STRING,
PTILG TYPE STRING,
PTILGDR TYPE STRING,
PBEREIT TYPE STRING,
PBEREITDR TYPE STRING,
DBEREIT TYPE STRING,
BANNU TYPE STRING,
DAUSZ TYPE STRING,
DELFZ TYPE STRING,
DFAELL TYPE STRING,
DVERTBIS TYPE STRING,
DORDER TYPE STRING,
DALLGEM TYPE STRING,
DBFSZ TYPE STRING,
DEFSZ TYPE STRING,
XTITEL TYPE STRING,
XEMITT TYPE STRING,
XBRIEF TYPE STRING,
XPART TYPE STRING,
XLWORTL TYPE STRING,
BANKN TYPE STRING,
BANKA TYPE STRING,
ORT01 TYPE STRING,
HKONTO TYPE STRING,
HBLZ TYPE STRING,
HBANK TYPE STRING,
SINTNR TYPE STRING,
BWUNSKAP TYPE STRING,
DRESBIS TYPE STRING,
DANTRAG TYPE STRING,
ANSPRP TYPE STRING,
NAME1 TYPE STRING,
ABTLG TYPE STRING,
TELNR TYPE STRING,
TELFX TYPE STRING,
OBJADR TYPE STRING,
XGBVON TYPE STRING,
XGBAMT TYPE STRING,
SOBJEKT TYPE STRING,
NBANDNR TYPE STRING,
NBLATTNR TYPE STRING,END OF T_EKKO_STR. DATA: WA_VDSCRIPT_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_VDSCRIPT_STR-RANL sy-vline
WA_VDSCRIPT_STR-BZUSAGE sy-vline
WA_VDSCRIPT_STR-BZHLGNET sy-vline
WA_VDSCRIPT_STR-BZHLGBRT sy-vline
WA_VDSCRIPT_STR-BAUSB sy-vline
WA_VDSCRIPT_STR-BNWHR sy-vline
WA_VDSCRIPT_STR-SANTWHR sy-vline
WA_VDSCRIPT_STR-SNWHR sy-vline
WA_VDSCRIPT_STR-KZAHLUNG sy-vline
WA_VDSCRIPT_STR-PKOND sy-vline
WA_VDSCRIPT_STR-PNOMZINS sy-vline
WA_VDSCRIPT_STR-PNOMZIDR sy-vline
WA_VDSCRIPT_STR-PEFFZINS sy-vline
WA_VDSCRIPT_STR-PEFFZIDR sy-vline
WA_VDSCRIPT_STR-PTILG sy-vline
WA_VDSCRIPT_STR-PTILGDR sy-vline
WA_VDSCRIPT_STR-PBEREIT sy-vline
WA_VDSCRIPT_STR-PBEREITDR sy-vline
WA_VDSCRIPT_STR-DBEREIT sy-vline
WA_VDSCRIPT_STR-BANNU sy-vline
WA_VDSCRIPT_STR-DAUSZ sy-vline
WA_VDSCRIPT_STR-DELFZ sy-vline
WA_VDSCRIPT_STR-DFAELL sy-vline
WA_VDSCRIPT_STR-DVERTBIS sy-vline
WA_VDSCRIPT_STR-DORDER sy-vline
WA_VDSCRIPT_STR-DALLGEM sy-vline
WA_VDSCRIPT_STR-DBFSZ sy-vline
WA_VDSCRIPT_STR-DEFSZ sy-vline
WA_VDSCRIPT_STR-XTITEL sy-vline
WA_VDSCRIPT_STR-XEMITT sy-vline
WA_VDSCRIPT_STR-XBRIEF sy-vline
WA_VDSCRIPT_STR-XPART sy-vline
WA_VDSCRIPT_STR-XLWORTL sy-vline
WA_VDSCRIPT_STR-BANKN sy-vline
WA_VDSCRIPT_STR-BANKA sy-vline
WA_VDSCRIPT_STR-ORT01 sy-vline
WA_VDSCRIPT_STR-HKONTO sy-vline
WA_VDSCRIPT_STR-HBLZ sy-vline
WA_VDSCRIPT_STR-HBANK sy-vline
WA_VDSCRIPT_STR-SINTNR sy-vline
WA_VDSCRIPT_STR-BWUNSKAP sy-vline
WA_VDSCRIPT_STR-DRESBIS sy-vline
WA_VDSCRIPT_STR-DANTRAG sy-vline
WA_VDSCRIPT_STR-ANSPRP sy-vline
WA_VDSCRIPT_STR-NAME1 sy-vline
WA_VDSCRIPT_STR-ABTLG sy-vline
WA_VDSCRIPT_STR-TELNR sy-vline
WA_VDSCRIPT_STR-TELFX sy-vline
WA_VDSCRIPT_STR-OBJADR sy-vline
WA_VDSCRIPT_STR-XGBVON sy-vline
WA_VDSCRIPT_STR-XGBAMT sy-vline
WA_VDSCRIPT_STR-SOBJEKT sy-vline
WA_VDSCRIPT_STR-NBANDNR sy-vline
WA_VDSCRIPT_STR-NBLATTNR sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.