ABAP Select data from SAP table VNKSD 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 VNKSD 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 VNKSD. 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 VNKSD 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_VNKSD TYPE STANDARD TABLE OF VNKSD,
      WA_VNKSD TYPE VNKSD,
      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: <VNKSD> TYPE VNKSD.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM VNKSD
*  INTO TABLE @DATA(IT_VNKSD2).
*--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_VNKSD INDEX 1 INTO DATA(WA_VNKSD2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_VNKSD ASSIGNING <VNKSD>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<VNKSD>-MANDT = 1.
<VNKSD>-BELNR = 1.
<VNKSD>-KURAT = 1.
<VNKSD>-PRAEV = 1.
<VNKSD>-HILFE = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_VNKSD-LSRKZ, sy-vline,
WA_VNKSD-ABOKZ, sy-vline,
WA_VNKSD-HAHKZ, sy-vline,
WA_VNKSD-MAKKZ, sy-vline,
WA_VNKSD-BMVKZ, sy-vline,
WA_VNKSD-MVDAT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_VNKSD 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_VNKSD 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_VNKSD INTO WA_VNKSD. *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 BELNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_VNKSD-BELNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VNKSD-BELNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

*Conversion exit ALPHA, internal->external for field EXCAT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_VNKSD-EXCAT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VNKSD-EXCAT.
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_VNKSD_STR,
MANDT TYPE STRING,
BELNR TYPE STRING,
KURAT TYPE STRING,
PRAEV TYPE STRING,
HILFE TYPE STRING,
LSRKZ TYPE STRING,
ABOKZ TYPE STRING,
HAHKZ TYPE STRING,
MAKKZ TYPE STRING,
BMVKZ TYPE STRING,
MVDAT TYPE STRING,
ENTBT TYPE STRING,
BFEKZ TYPE STRING,
FEDAT TYPE STRING,
AUNKZ TYPE STRING,
SUNKZ TYPE STRING,
VSLKZ TYPE STRING,
UADAT TYPE STRING,
BEHAR TYPE STRING,
FACHG TYPE STRING,
AUFLS TYPE STRING,
LG1KZ TYPE STRING,
KONSU TYPE STRING,
LG2KZ TYPE STRING,
MWBEH TYPE STRING,
LG3KZ TYPE STRING,
ARBUN TYPE STRING,
GLTVK TYPE STRING,
VORLD TYPE STRING,
BEHTX TYPE STRING,
LG4KZ TYPE STRING,
WARZT TYPE STRING,
ASTDT TYPE STRING,
BELEG TYPE STRING,
ABRGT TYPE STRING,
PERKR TYPE STRING,
GLTVN TYPE STRING,
GLTBS TYPE STRING,
SKTTX TYPE STRING,
PSYKZ TYPE STRING,
PSYDT TYPE STRING,
PSYDT1 TYPE STRING,
PSYDT2 TYPE STRING,
SOURS TYPE STRING,
VERBS TYPE STRING,
VERAR TYPE STRING,
INITIATOR TYPE STRING,
EXCEPTINDIC TYPE STRING,
INDICATION TYPE STRING,
ALT_PLZ TYPE STRING,
ABRKZ TYPE STRING,
GENERATED TYPE STRING,
CARETYPE TYPE STRING,
SERVICEGRA11 TYPE STRING,
QUANTGRA11 TYPE STRING,
QUANTBIL11 TYPE STRING,
STARTTREAT11 TYPE STRING,
SERVICEGRA12 TYPE STRING,
QUANTGRA12 TYPE STRING,
QUANTBIL12 TYPE STRING,
STARTTREAT12 TYPE STRING,
SERVICEGRA13 TYPE STRING,
QUANTGRA13 TYPE STRING,
QUANTBIL13 TYPE STRING,
STARTTREAT13 TYPE STRING,
SERVICEGRA14 TYPE STRING,
QUANTGRA14 TYPE STRING,
QUANTBIL14 TYPE STRING,
STARTTREAT14 TYPE STRING,
SERVICEGRA21 TYPE STRING,
QUANTGRA21 TYPE STRING,
QUANTBIL21 TYPE STRING,
STARTTREAT21 TYPE STRING,
SERVICEGRA22 TYPE STRING,
QUANTGRA22 TYPE STRING,
QUANTBIL22 TYPE STRING,
STARTTREAT22 TYPE STRING,
SERVICEGRA23 TYPE STRING,
QUANTGRA23 TYPE STRING,
QUANTBIL23 TYPE STRING,
STARTTREAT23 TYPE STRING,
SERVICEGRA24 TYPE STRING,
QUANTGRA24 TYPE STRING,
QUANTBIL24 TYPE STRING,
STARTTREAT24 TYPE STRING,
SERVICEGRA31 TYPE STRING,
QUANTGRA31 TYPE STRING,
QUANTBIL31 TYPE STRING,
STARTTREAT31 TYPE STRING,
SERVICEGRA32 TYPE STRING,
QUANTGRA32 TYPE STRING,
QUANTBIL32 TYPE STRING,
STARTTREAT32 TYPE STRING,
SERVICEGRA33 TYPE STRING,
QUANTGRA33 TYPE STRING,
QUANTBIL33 TYPE STRING,
STARTTREAT33 TYPE STRING,
SERVICEGRA34 TYPE STRING,
QUANTGRA34 TYPE STRING,
QUANTBIL34 TYPE STRING,
STARTTREAT34 TYPE STRING,
PSYAPPLDT1 TYPE STRING,
PSYAPPLDT2 TYPE STRING,
PSYAPPLDT3 TYPE STRING,
COPAYIND TYPE STRING,
LANRINITIATOR TYPE STRING,
UEXID TYPE STRING,
EXCAT TYPE STRING,
EXCOD TYPE STRING,
PFDAT TYPE STRING,
TCPRI TYPE STRING,
PFMOD TYPE STRING,
TCLAS TYPE STRING,
RETRI TYPE STRING,
EXPID TYPE STRING,
APSTATE TYPE STRING,
EDIPROC TYPE STRING,
BOKDT TYPE STRING,
SKTCMNT TYPE STRING,
LG5KZ TYPE STRING,
DIATXT TYPE STRING,
LG6KZ TYPE STRING,
FIND_MED TYPE STRING,
LG7KZ TYPE STRING,
ESSKZ TYPE STRING,
KZ TYPE STRING,END OF T_EKKO_STR. DATA: WA_VNKSD_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_VNKSD_STR-MANDT sy-vline
WA_VNKSD_STR-BELNR sy-vline
WA_VNKSD_STR-KURAT sy-vline
WA_VNKSD_STR-PRAEV sy-vline
WA_VNKSD_STR-HILFE sy-vline
WA_VNKSD_STR-LSRKZ sy-vline
WA_VNKSD_STR-ABOKZ sy-vline
WA_VNKSD_STR-HAHKZ sy-vline
WA_VNKSD_STR-MAKKZ sy-vline
WA_VNKSD_STR-BMVKZ sy-vline
WA_VNKSD_STR-MVDAT sy-vline
WA_VNKSD_STR-ENTBT sy-vline
WA_VNKSD_STR-BFEKZ sy-vline
WA_VNKSD_STR-FEDAT sy-vline
WA_VNKSD_STR-AUNKZ sy-vline
WA_VNKSD_STR-SUNKZ sy-vline
WA_VNKSD_STR-VSLKZ sy-vline
WA_VNKSD_STR-UADAT sy-vline
WA_VNKSD_STR-BEHAR sy-vline
WA_VNKSD_STR-FACHG sy-vline
WA_VNKSD_STR-AUFLS sy-vline
WA_VNKSD_STR-LG1KZ sy-vline
WA_VNKSD_STR-KONSU sy-vline
WA_VNKSD_STR-LG2KZ sy-vline
WA_VNKSD_STR-MWBEH sy-vline
WA_VNKSD_STR-LG3KZ sy-vline
WA_VNKSD_STR-ARBUN sy-vline
WA_VNKSD_STR-GLTVK sy-vline
WA_VNKSD_STR-VORLD sy-vline
WA_VNKSD_STR-BEHTX sy-vline
WA_VNKSD_STR-LG4KZ sy-vline
WA_VNKSD_STR-WARZT sy-vline
WA_VNKSD_STR-ASTDT sy-vline
WA_VNKSD_STR-BELEG sy-vline
WA_VNKSD_STR-ABRGT sy-vline
WA_VNKSD_STR-PERKR sy-vline
WA_VNKSD_STR-GLTVN sy-vline
WA_VNKSD_STR-GLTBS sy-vline
WA_VNKSD_STR-SKTTX sy-vline
WA_VNKSD_STR-PSYKZ sy-vline
WA_VNKSD_STR-PSYDT sy-vline
WA_VNKSD_STR-PSYDT1 sy-vline
WA_VNKSD_STR-PSYDT2 sy-vline
WA_VNKSD_STR-SOURS sy-vline
WA_VNKSD_STR-VERBS sy-vline
WA_VNKSD_STR-VERAR sy-vline
WA_VNKSD_STR-INITIATOR sy-vline
WA_VNKSD_STR-EXCEPTINDIC sy-vline
WA_VNKSD_STR-INDICATION sy-vline
WA_VNKSD_STR-ALT_PLZ sy-vline
WA_VNKSD_STR-ABRKZ sy-vline
WA_VNKSD_STR-GENERATED sy-vline
WA_VNKSD_STR-CARETYPE sy-vline
WA_VNKSD_STR-SERVICEGRA11 sy-vline
WA_VNKSD_STR-QUANTGRA11 sy-vline
WA_VNKSD_STR-QUANTBIL11 sy-vline
WA_VNKSD_STR-STARTTREAT11 sy-vline
WA_VNKSD_STR-SERVICEGRA12 sy-vline
WA_VNKSD_STR-QUANTGRA12 sy-vline
WA_VNKSD_STR-QUANTBIL12 sy-vline
WA_VNKSD_STR-STARTTREAT12 sy-vline
WA_VNKSD_STR-SERVICEGRA13 sy-vline
WA_VNKSD_STR-QUANTGRA13 sy-vline
WA_VNKSD_STR-QUANTBIL13 sy-vline
WA_VNKSD_STR-STARTTREAT13 sy-vline
WA_VNKSD_STR-SERVICEGRA14 sy-vline
WA_VNKSD_STR-QUANTGRA14 sy-vline
WA_VNKSD_STR-QUANTBIL14 sy-vline
WA_VNKSD_STR-STARTTREAT14 sy-vline
WA_VNKSD_STR-SERVICEGRA21 sy-vline
WA_VNKSD_STR-QUANTGRA21 sy-vline
WA_VNKSD_STR-QUANTBIL21 sy-vline
WA_VNKSD_STR-STARTTREAT21 sy-vline
WA_VNKSD_STR-SERVICEGRA22 sy-vline
WA_VNKSD_STR-QUANTGRA22 sy-vline
WA_VNKSD_STR-QUANTBIL22 sy-vline
WA_VNKSD_STR-STARTTREAT22 sy-vline
WA_VNKSD_STR-SERVICEGRA23 sy-vline
WA_VNKSD_STR-QUANTGRA23 sy-vline
WA_VNKSD_STR-QUANTBIL23 sy-vline
WA_VNKSD_STR-STARTTREAT23 sy-vline
WA_VNKSD_STR-SERVICEGRA24 sy-vline
WA_VNKSD_STR-QUANTGRA24 sy-vline
WA_VNKSD_STR-QUANTBIL24 sy-vline
WA_VNKSD_STR-STARTTREAT24 sy-vline
WA_VNKSD_STR-SERVICEGRA31 sy-vline
WA_VNKSD_STR-QUANTGRA31 sy-vline
WA_VNKSD_STR-QUANTBIL31 sy-vline
WA_VNKSD_STR-STARTTREAT31 sy-vline
WA_VNKSD_STR-SERVICEGRA32 sy-vline
WA_VNKSD_STR-QUANTGRA32 sy-vline
WA_VNKSD_STR-QUANTBIL32 sy-vline
WA_VNKSD_STR-STARTTREAT32 sy-vline
WA_VNKSD_STR-SERVICEGRA33 sy-vline
WA_VNKSD_STR-QUANTGRA33 sy-vline
WA_VNKSD_STR-QUANTBIL33 sy-vline
WA_VNKSD_STR-STARTTREAT33 sy-vline
WA_VNKSD_STR-SERVICEGRA34 sy-vline
WA_VNKSD_STR-QUANTGRA34 sy-vline
WA_VNKSD_STR-QUANTBIL34 sy-vline
WA_VNKSD_STR-STARTTREAT34 sy-vline
WA_VNKSD_STR-PSYAPPLDT1 sy-vline
WA_VNKSD_STR-PSYAPPLDT2 sy-vline
WA_VNKSD_STR-PSYAPPLDT3 sy-vline
WA_VNKSD_STR-COPAYIND sy-vline
WA_VNKSD_STR-LANRINITIATOR sy-vline
WA_VNKSD_STR-UEXID sy-vline
WA_VNKSD_STR-EXCAT sy-vline
WA_VNKSD_STR-EXCOD sy-vline
WA_VNKSD_STR-PFDAT sy-vline
WA_VNKSD_STR-TCPRI sy-vline
WA_VNKSD_STR-PFMOD sy-vline
WA_VNKSD_STR-TCLAS sy-vline
WA_VNKSD_STR-RETRI sy-vline
WA_VNKSD_STR-EXPID sy-vline
WA_VNKSD_STR-APSTATE sy-vline
WA_VNKSD_STR-EDIPROC sy-vline
WA_VNKSD_STR-BOKDT sy-vline
WA_VNKSD_STR-SKTCMNT sy-vline
WA_VNKSD_STR-LG5KZ sy-vline
WA_VNKSD_STR-DIATXT sy-vline
WA_VNKSD_STR-LG6KZ sy-vline
WA_VNKSD_STR-FIND_MED sy-vline
WA_VNKSD_STR-LG7KZ sy-vline
WA_VNKSD_STR-ESSKZ sy-vline
WA_VNKSD_STR-KZ sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.