ABAP Select data from SAP table VIMI17 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 VIMI17 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 VIMI17. 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 VIMI17 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_VIMI17 TYPE STANDARD TABLE OF VIMI17, WA_VIMI17 TYPE VIMI17, 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: <VIMI17> TYPE VIMI17. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_VIMI17. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM VIMI17 INTO TABLE IT_VIMI17. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM VIMI17 * INTO TABLE @DATA(IT_VIMI172). *--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_VIMI17 INDEX 1 INTO DATA(WA_VIMI172). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_VIMI17 ASSIGNING <VIMI17>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<VIMI17>-MANDT = 1.
<VIMI17>-BUKRS = 1.
<VIMI17>-DGUELAB = 1.
<VIMI17>-SANPNR = 1.
<VIMI17>-XIDENT = 1.
ENDLOOP. LOOP AT IT_VIMI17 INTO WA_VIMI17. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_VIMI17-DBATCH, sy-vline,
WA_VIMI17-TUHRBAT, sy-vline,
WA_VIMI17-BUSAB, sy-vline,
WA_VIMI17-BERHABS, sy-vline,
WA_VIMI17-WAERS, sy-vline,
WA_VIMI17-FEINS, sy-vline.
ENDLOOP. *Add any further fields from structure WA_VIMI17 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_VIMI17 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_VIMI17 INTO WA_VIMI17. *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 CUNIT, internal->external for field FEINS CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_VIMI17-FEINS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VIMI17-FEINS.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field AUFNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_VIMI17-AUFNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VIMI17-AUFNR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ABPSP, internal->external for field PS_PSP_PNR CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_VIMI17-PS_PSP_PNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VIMI17-PS_PSP_PNR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit SWENR, internal->external for field WBSWENR CALL FUNCTION 'CONVERSION_EXIT_SWENR_OUTPUT' EXPORTING input = WA_VIMI17-WBSWENR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_VIMI17-WBSWENR.
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_VIMI17_STR,
MANDT TYPE STRING,
BUKRS TYPE STRING,
DGUELAB TYPE STRING,
SANPNR TYPE STRING,
XIDENT TYPE STRING,
DBATCH TYPE STRING,
TUHRBAT TYPE STRING,
BUSAB TYPE STRING,
BERHABS TYPE STRING,
WAERS TYPE STRING,
FEINS TYPE STRING,
PERHREL TYPE STRING,
NSPONR TYPE STRING,
BGESBMP TYPE STRING,
BGESBMI TYPE STRING,
BJMZUGBM TYPE STRING,
BMANPBM TYPE STRING,
BQMANPBM TYPE STRING,
RGESWF TYPE STRING,
AUFNR TYPE STRING,
PS_PSP_PNR TYPE STRING,
SABRG TYPE STRING,
DBEGBM TYPE STRING,
DANZWO TYPE STRING,
XBEZBM TYPE STRING,
DENDBM TYPE STRING,
DBEGBMI TYPE STRING,
DENDBMI TYPE STRING,
SIHMA TYPE STRING,
JZUSCH TYPE STRING,
SKOART TYPE STRING,
JFUTANP TYPE STRING,
JZUSTPFL TYPE STRING,
JOHNEZUS TYPE STRING,
BRDBRTKD TYPE STRING,
JORTSUEB TYPE STRING,
BERHGES TYPE STRING,
JBASOUE TYPE STRING,
JANPOB TYPE STRING,
SBSANPCH TYPE STRING,
JANPMZR TYPE STRING,
JSENKMZR TYPE STRING,
VVABBLN TYPE STRING,
PROTNAME TYPE STRING,
SADJRSN TYPE STRING,
SGUTA TYPE STRING,
JCHBASMOD TYPE STRING,
JCHBASBMR TYPE STRING,
BNEUMIET TYPE STRING,
BNEUABS TYPE STRING,
DZUBIS TYPE STRING,
SDICNAME TYPE STRING,
JCHSNKRUL TYPE STRING,
SANPME TYPE STRING,
WBSWENR TYPE STRING,
WBDATUM TYPE STRING,
JADJSRCMV TYPE STRING,
JADJSRCME TYPE STRING,
JADJSRCAL TYPE STRING,
JCUTMEVAL TYPE STRING,
JNEWCONMV TYPE STRING,
JNEWCONME TYPE STRING,
JADJME_NE TYPE STRING,
JADJME_NA TYPE STRING,
JADJME_LK TYPE STRING,
SWBNR TYPE STRING,
SWBIND TYPE STRING,
DWBBIS TYPE STRING,END OF T_EKKO_STR. DATA: WA_VIMI17_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_VIMI17_STR-MANDT sy-vline
WA_VIMI17_STR-BUKRS sy-vline
WA_VIMI17_STR-DGUELAB sy-vline
WA_VIMI17_STR-SANPNR sy-vline
WA_VIMI17_STR-XIDENT sy-vline
WA_VIMI17_STR-DBATCH sy-vline
WA_VIMI17_STR-TUHRBAT sy-vline
WA_VIMI17_STR-BUSAB sy-vline
WA_VIMI17_STR-BERHABS sy-vline
WA_VIMI17_STR-WAERS sy-vline
WA_VIMI17_STR-FEINS sy-vline
WA_VIMI17_STR-PERHREL sy-vline
WA_VIMI17_STR-NSPONR sy-vline
WA_VIMI17_STR-BGESBMP sy-vline
WA_VIMI17_STR-BGESBMI sy-vline
WA_VIMI17_STR-BJMZUGBM sy-vline
WA_VIMI17_STR-BMANPBM sy-vline
WA_VIMI17_STR-BQMANPBM sy-vline
WA_VIMI17_STR-RGESWF sy-vline
WA_VIMI17_STR-AUFNR sy-vline
WA_VIMI17_STR-PS_PSP_PNR sy-vline
WA_VIMI17_STR-SABRG sy-vline
WA_VIMI17_STR-DBEGBM sy-vline
WA_VIMI17_STR-DANZWO sy-vline
WA_VIMI17_STR-XBEZBM sy-vline
WA_VIMI17_STR-DENDBM sy-vline
WA_VIMI17_STR-DBEGBMI sy-vline
WA_VIMI17_STR-DENDBMI sy-vline
WA_VIMI17_STR-SIHMA sy-vline
WA_VIMI17_STR-JZUSCH sy-vline
WA_VIMI17_STR-SKOART sy-vline
WA_VIMI17_STR-JFUTANP sy-vline
WA_VIMI17_STR-JZUSTPFL sy-vline
WA_VIMI17_STR-JOHNEZUS sy-vline
WA_VIMI17_STR-BRDBRTKD sy-vline
WA_VIMI17_STR-JORTSUEB sy-vline
WA_VIMI17_STR-BERHGES sy-vline
WA_VIMI17_STR-JBASOUE sy-vline
WA_VIMI17_STR-JANPOB sy-vline
WA_VIMI17_STR-SBSANPCH sy-vline
WA_VIMI17_STR-JANPMZR sy-vline
WA_VIMI17_STR-JSENKMZR sy-vline
WA_VIMI17_STR-VVABBLN sy-vline
WA_VIMI17_STR-PROTNAME sy-vline
WA_VIMI17_STR-SADJRSN sy-vline
WA_VIMI17_STR-SGUTA sy-vline
WA_VIMI17_STR-JCHBASMOD sy-vline
WA_VIMI17_STR-JCHBASBMR sy-vline
WA_VIMI17_STR-BNEUMIET sy-vline
WA_VIMI17_STR-BNEUABS sy-vline
WA_VIMI17_STR-DZUBIS sy-vline
WA_VIMI17_STR-SDICNAME sy-vline
WA_VIMI17_STR-JCHSNKRUL sy-vline
WA_VIMI17_STR-SANPME sy-vline
WA_VIMI17_STR-WBSWENR sy-vline
WA_VIMI17_STR-WBDATUM sy-vline
WA_VIMI17_STR-JADJSRCMV sy-vline
WA_VIMI17_STR-JADJSRCME sy-vline
WA_VIMI17_STR-JADJSRCAL sy-vline
WA_VIMI17_STR-JCUTMEVAL sy-vline
WA_VIMI17_STR-JNEWCONMV sy-vline
WA_VIMI17_STR-JNEWCONME sy-vline
WA_VIMI17_STR-JADJME_NE sy-vline
WA_VIMI17_STR-JADJME_NA sy-vline
WA_VIMI17_STR-JADJME_LK sy-vline
WA_VIMI17_STR-SWBNR sy-vline
WA_VIMI17_STR-SWBIND sy-vline
WA_VIMI17_STR-DWBBIS sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.