ABAP Select data from SAP table K7100003 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 K7100003 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 K7100003. 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 K7100003 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_K7100003 TYPE STANDARD TABLE OF K7100003,
      WA_K7100003 TYPE K7100003,
      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: <K7100003> TYPE K7100003.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM K7100003
*  INTO TABLE @DATA(IT_K71000032).
*--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_K7100003 INDEX 1 INTO DATA(WA_K71000032).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_K7100003 ASSIGNING <K7100003>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<K7100003>-GJAHR = 1.
<K7100003>-PERIV = 1.
<K7100003>-PERIO = 1.
<K7100003>-WRTTP = 1.
<K7100003>-VERSI = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_K7100003-VRGAR, sy-vline,
WA_K7100003-CURTYPE, sy-vline,
WA_K7100003-VALUTYP, sy-vline,
WA_K7100003-ARTNR, sy-vline,
WA_K7100003-BRSCH, sy-vline,
WA_K7100003-BUKRS, sy-vline.
ENDLOOP. *Add any further fields from structure WA_K7100003 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_K7100003 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_K7100003 INTO WA_K7100003. *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 GJAHR, internal->external for field GJAHR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_K7100003-GJAHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_K7100003-GJAHR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit PERI7, internal->external for field PERIO CALL FUNCTION 'CONVERSION_EXIT_PERI7_OUTPUT' EXPORTING input = WA_K7100003-PERIO IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_K7100003-PERIO.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit MATN1, internal->external for field ARTNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_K7100003-ARTNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_K7100003-ARTNR.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit CUNIT, internal->external for field VVOQT_ME CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_K7100003-VVOQT_ME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_K7100003-VVOQT_ME.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field VVIQT_ME CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_K7100003-VVIQT_ME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_K7100003-VVIQT_ME.
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_K7100003_STR,
GJAHR TYPE STRING,
PERIV TYPE STRING,
PERIO TYPE STRING,
WRTTP TYPE STRING,
VERSI TYPE STRING,
VRGAR TYPE STRING,
CURTYPE TYPE STRING,
VALUTYP TYPE STRING,
ARTNR TYPE STRING,
BRSCH TYPE STRING,
BUKRS TYPE STRING,
GSBER TYPE STRING,
KOKRS TYPE STRING,
KNDNR TYPE STRING,
BZIRK TYPE STRING,
KDGRP TYPE STRING,
KUKLA TYPE STRING,
LAND1 TYPE STRING,
WWPRC TYPE STRING,
PRCTR TYPE STRING,
REGIO TYPE STRING,
SPART TYPE STRING,
WWSBU TYPE STRING,
VKORG TYPE STRING,
VKGRP TYPE STRING,
VRTNR TYPE STRING,
VTWEG TYPE STRING,
MATKL TYPE STRING,
WERKS TYPE STRING,
VVOQT_ME TYPE STRING,
VVIQT_ME TYPE STRING,
REC_WAERS TYPE STRING,
VV100 TYPE STRING,
VV110 TYPE STRING,
VV350 TYPE STRING,
VV090 TYPE STRING,
VV220 TYPE STRING,
VV230 TYPE STRING,
VV010 TYPE STRING,
VVIQT TYPE STRING,
VV170 TYPE STRING,
VV180 TYPE STRING,
VV420 TYPE STRING,
VV240 TYPE STRING,
VV160 TYPE STRING,
VV340 TYPE STRING,
VVOQT TYPE STRING,
VV030 TYPE STRING,
VV320 TYPE STRING,
VV380 TYPE STRING,
VV410 TYPE STRING,
VV200 TYPE STRING,
VV210 TYPE STRING,
VV150 TYPE STRING,
VV250 TYPE STRING,
VV040 TYPE STRING,
VV300 TYPE STRING,
VV310 TYPE STRING,
VV020 TYPE STRING,
VV364 TYPE STRING,
VV290 TYPE STRING,
VV365 TYPE STRING,
VV400 TYPE STRING,
VV190 TYPE STRING,
VV075 TYPE STRING,
VV070 TYPE STRING,
VV360 TYPE STRING,
VV280 TYPE STRING,
VV060 TYPE STRING,
VV330 TYPE STRING,
VV130 TYPE STRING,
VV120 TYPE STRING,
VV390 TYPE STRING,
VV270 TYPE STRING,
VV370 TYPE STRING,
VV260 TYPE STRING,
VV145 TYPE STRING,
VV140 TYPE STRING,
VV480 TYPE STRING,END OF T_EKKO_STR. DATA: WA_K7100003_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_K7100003_STR-GJAHR sy-vline
WA_K7100003_STR-PERIV sy-vline
WA_K7100003_STR-PERIO sy-vline
WA_K7100003_STR-WRTTP sy-vline
WA_K7100003_STR-VERSI sy-vline
WA_K7100003_STR-VRGAR sy-vline
WA_K7100003_STR-CURTYPE sy-vline
WA_K7100003_STR-VALUTYP sy-vline
WA_K7100003_STR-ARTNR sy-vline
WA_K7100003_STR-BRSCH sy-vline
WA_K7100003_STR-BUKRS sy-vline
WA_K7100003_STR-GSBER sy-vline
WA_K7100003_STR-KOKRS sy-vline
WA_K7100003_STR-KNDNR sy-vline
WA_K7100003_STR-BZIRK sy-vline
WA_K7100003_STR-KDGRP sy-vline
WA_K7100003_STR-KUKLA sy-vline
WA_K7100003_STR-LAND1 sy-vline
WA_K7100003_STR-WWPRC sy-vline
WA_K7100003_STR-PRCTR sy-vline
WA_K7100003_STR-REGIO sy-vline
WA_K7100003_STR-SPART sy-vline
WA_K7100003_STR-WWSBU sy-vline
WA_K7100003_STR-VKORG sy-vline
WA_K7100003_STR-VKGRP sy-vline
WA_K7100003_STR-VRTNR sy-vline
WA_K7100003_STR-VTWEG sy-vline
WA_K7100003_STR-MATKL sy-vline
WA_K7100003_STR-WERKS sy-vline
WA_K7100003_STR-VVOQT_ME sy-vline
WA_K7100003_STR-VVIQT_ME sy-vline
WA_K7100003_STR-REC_WAERS sy-vline
WA_K7100003_STR-VV100 sy-vline
WA_K7100003_STR-VV110 sy-vline
WA_K7100003_STR-VV350 sy-vline
WA_K7100003_STR-VV090 sy-vline
WA_K7100003_STR-VV220 sy-vline
WA_K7100003_STR-VV230 sy-vline
WA_K7100003_STR-VV010 sy-vline
WA_K7100003_STR-VVIQT sy-vline
WA_K7100003_STR-VV170 sy-vline
WA_K7100003_STR-VV180 sy-vline
WA_K7100003_STR-VV420 sy-vline
WA_K7100003_STR-VV240 sy-vline
WA_K7100003_STR-VV160 sy-vline
WA_K7100003_STR-VV340 sy-vline
WA_K7100003_STR-VVOQT sy-vline
WA_K7100003_STR-VV030 sy-vline
WA_K7100003_STR-VV320 sy-vline
WA_K7100003_STR-VV380 sy-vline
WA_K7100003_STR-VV410 sy-vline
WA_K7100003_STR-VV200 sy-vline
WA_K7100003_STR-VV210 sy-vline
WA_K7100003_STR-VV150 sy-vline
WA_K7100003_STR-VV250 sy-vline
WA_K7100003_STR-VV040 sy-vline
WA_K7100003_STR-VV300 sy-vline
WA_K7100003_STR-VV310 sy-vline
WA_K7100003_STR-VV020 sy-vline
WA_K7100003_STR-VV364 sy-vline
WA_K7100003_STR-VV290 sy-vline
WA_K7100003_STR-VV365 sy-vline
WA_K7100003_STR-VV400 sy-vline
WA_K7100003_STR-VV190 sy-vline
WA_K7100003_STR-VV075 sy-vline
WA_K7100003_STR-VV070 sy-vline
WA_K7100003_STR-VV360 sy-vline
WA_K7100003_STR-VV280 sy-vline
WA_K7100003_STR-VV060 sy-vline
WA_K7100003_STR-VV330 sy-vline
WA_K7100003_STR-VV130 sy-vline
WA_K7100003_STR-VV120 sy-vline
WA_K7100003_STR-VV390 sy-vline
WA_K7100003_STR-VV270 sy-vline
WA_K7100003_STR-VV370 sy-vline
WA_K7100003_STR-VV260 sy-vline
WA_K7100003_STR-VV145 sy-vline
WA_K7100003_STR-VV140 sy-vline
WA_K7100003_STR-VV480 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.