ABAP Select data from SAP table IRESVNDOCITM 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 IRESVNDOCITM 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 IRESVNDOCITM. 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 IRESVNDOCITM 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_IRESVNDOCITM TYPE STANDARD TABLE OF IRESVNDOCITM, WA_IRESVNDOCITM TYPE IRESVNDOCITM, 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: <IRESVNDOCITM> TYPE IRESVNDOCITM. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_IRESVNDOCITM. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM IRESVNDOCITM INTO TABLE IT_IRESVNDOCITM. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM IRESVNDOCITM * INTO TABLE @DATA(IT_IRESVNDOCITM2). *--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_IRESVNDOCITM INDEX 1 INTO DATA(WA_IRESVNDOCITM2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_IRESVNDOCITM ASSIGNING <IRESVNDOCITM>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<IRESVNDOCITM>-MANDT = 1.
<IRESVNDOCITM>-RESERVATION = 1.
<IRESVNDOCITM>-RESERVATIONITEM = 1.
<IRESVNDOCITM>-RECORDTYPE = 1.
<IRESVNDOCITM>-PLANT = 1.
ENDLOOP. LOOP AT IT_IRESVNDOCITM INTO WA_IRESVNDOCITM. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_IRESVNDOCITM-STORAGELOCATION, sy-vline,
WA_IRESVNDOCITM-PRODUCT, sy-vline,
WA_IRESVNDOCITM-BATCH, sy-vline,
WA_IRESVNDOCITM-INVENTORYSPECIALSTOCKTYPE, sy-vline,
WA_IRESVNDOCITM-GOODSMOVEMENTTYPE, sy-vline,
WA_IRESVNDOCITM-REQUIREMENTTYPE, sy-vline.
ENDLOOP. *Add any further fields from structure WA_IRESVNDOCITM 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_IRESVNDOCITM 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_IRESVNDOCITM INTO WA_IRESVNDOCITM. *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 MATN1, internal->external for field PRODUCT CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_IRESVNDOCITM-PRODUCT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_IRESVNDOCITM-PRODUCT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit NUMCV, internal->external for field MANUFACTURINGORDEROPERATION CALL FUNCTION 'CONVERSION_EXIT_NUMCV_OUTPUT' EXPORTING input = WA_IRESVNDOCITM-MANUFACTURINGORDEROPERATION IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_IRESVNDOCITM-MANUFACTURINGORDEROPERATION.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field BASEUNIT CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_IRESVNDOCITM-BASEUNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_IRESVNDOCITM-BASEUNIT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field GLACCOUNT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_IRESVNDOCITM-GLACCOUNT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_IRESVNDOCITM-GLACCOUNT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field ENTRYUNIT CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_IRESVNDOCITM-ENTRYUNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_IRESVNDOCITM-ENTRYUNIT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field PURCHASINGDOCUMENT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_IRESVNDOCITM-PURCHASINGDOCUMENT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_IRESVNDOCITM-PURCHASINGDOCUMENT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field SUPPLIER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_IRESVNDOCITM-SUPPLIER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_IRESVNDOCITM-SUPPLIER.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field SERVICEDOCUMENT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_IRESVNDOCITM-SERVICEDOCUMENT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_IRESVNDOCITM-SERVICEDOCUMENT.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field RESVNITMSRVCDOCASACCTASGT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_IRESVNDOCITM-RESVNITMSRVCDOCASACCTASGT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_IRESVNDOCITM-RESVNITMSRVCDOCASACCTASGT.
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_IRESVNDOCITM_STR,
MANDT TYPE STRING,
RESERVATION TYPE STRING,
RESERVATIONITEM TYPE STRING,
RECORDTYPE TYPE STRING,
PLANT TYPE STRING,
STORAGELOCATION TYPE STRING,
PRODUCT TYPE STRING,
BATCH TYPE STRING,
INVENTORYSPECIALSTOCKTYPE TYPE STRING,
GOODSMOVEMENTTYPE TYPE STRING,
REQUIREMENTTYPE TYPE STRING,
RESERVATIONITEMCREATIONCODE TYPE STRING,
MATLCOMPREQUIREMENTDATE TYPE STRING,
MANUFACTURINGORDEROPERATION TYPE STRING,
GOODSMOVEMENTISALLOWED TYPE STRING,
DEBITCREDITCODE TYPE STRING,
BASEUNIT TYPE STRING,
GLACCOUNT TYPE STRING,
RESVNACCOUNTISENTEREDMANUALLY TYPE STRING,
ENTRYUNIT TYPE STRING,
QUANTITYISFIXED TYPE STRING,
COMPANYCODECURRENCY TYPE STRING,
ISSUINGORRECEIVINGPLANT TYPE STRING,
ISSUINGORRECEIVINGSTORAGELOC TYPE STRING,
PURCHASINGDOCUMENT TYPE STRING,
PURCHASINGDOCUMENTITEM TYPE STRING,
RESVNITMREQUIREDQTYINBASEUNIT TYPE STRING,
CONFDQTYFORATPINBASEUOM TYPE STRING,
RESERVATIONITEMISFINALLYISSUED TYPE STRING,
RESERVATIONITMISMARKEDFORDELTN TYPE STRING,
RESVNITMREQUIREDQTYINENTRYUNIT TYPE STRING,
RESVNITMWITHDRAWNQTYINBASEUNIT TYPE STRING,
RESVNITMWITHDRAWNAMTINCCCRCY TYPE STRING,
SUPPLIER TYPE STRING,
MATERIALGROUP TYPE STRING,
GOODSRECIPIENTNAME TYPE STRING,
UNLOADINGPOINTNAME TYPE STRING,
RESERVATIONITEMTEXT TYPE STRING,
RECIPIENTLOCATIONCODE TYPE STRING,
SERVICEOBJECTTYPE TYPE STRING,
SERVICEDOCUMENT TYPE STRING,
SERVICEDOCUMENTITEM TYPE STRING,
RESVNITMSRVCDOCTYPEASACCTASGT TYPE STRING,
RESVNITMSRVCDOCASACCTASGT TYPE STRING,
RESVNITMSRVCDOCITMASACCTASGT TYPE STRING,END OF T_EKKO_STR. DATA: WA_IRESVNDOCITM_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_IRESVNDOCITM_STR-MANDT sy-vline
WA_IRESVNDOCITM_STR-RESERVATION sy-vline
WA_IRESVNDOCITM_STR-RESERVATIONITEM sy-vline
WA_IRESVNDOCITM_STR-RECORDTYPE sy-vline
WA_IRESVNDOCITM_STR-PLANT sy-vline
WA_IRESVNDOCITM_STR-STORAGELOCATION sy-vline
WA_IRESVNDOCITM_STR-PRODUCT sy-vline
WA_IRESVNDOCITM_STR-BATCH sy-vline
WA_IRESVNDOCITM_STR-INVENTORYSPECIALSTOCKTYPE sy-vline
WA_IRESVNDOCITM_STR-GOODSMOVEMENTTYPE sy-vline
WA_IRESVNDOCITM_STR-REQUIREMENTTYPE sy-vline
WA_IRESVNDOCITM_STR-RESERVATIONITEMCREATIONCODE sy-vline
WA_IRESVNDOCITM_STR-MATLCOMPREQUIREMENTDATE sy-vline
WA_IRESVNDOCITM_STR-MANUFACTURINGORDEROPERATION sy-vline
WA_IRESVNDOCITM_STR-GOODSMOVEMENTISALLOWED sy-vline
WA_IRESVNDOCITM_STR-DEBITCREDITCODE sy-vline
WA_IRESVNDOCITM_STR-BASEUNIT sy-vline
WA_IRESVNDOCITM_STR-GLACCOUNT sy-vline
WA_IRESVNDOCITM_STR-RESVNACCOUNTISENTEREDMANUALLY sy-vline
WA_IRESVNDOCITM_STR-ENTRYUNIT sy-vline
WA_IRESVNDOCITM_STR-QUANTITYISFIXED sy-vline
WA_IRESVNDOCITM_STR-COMPANYCODECURRENCY sy-vline
WA_IRESVNDOCITM_STR-ISSUINGORRECEIVINGPLANT sy-vline
WA_IRESVNDOCITM_STR-ISSUINGORRECEIVINGSTORAGELOC sy-vline
WA_IRESVNDOCITM_STR-PURCHASINGDOCUMENT sy-vline
WA_IRESVNDOCITM_STR-PURCHASINGDOCUMENTITEM sy-vline
WA_IRESVNDOCITM_STR-RESVNITMREQUIREDQTYINBASEUNIT sy-vline
WA_IRESVNDOCITM_STR-CONFDQTYFORATPINBASEUOM sy-vline
WA_IRESVNDOCITM_STR-RESERVATIONITEMISFINALLYISSUED sy-vline
WA_IRESVNDOCITM_STR-RESERVATIONITMISMARKEDFORDELTN sy-vline
WA_IRESVNDOCITM_STR-RESVNITMREQUIREDQTYINENTRYUNIT sy-vline
WA_IRESVNDOCITM_STR-RESVNITMWITHDRAWNQTYINBASEUNIT sy-vline
WA_IRESVNDOCITM_STR-RESVNITMWITHDRAWNAMTINCCCRCY sy-vline
WA_IRESVNDOCITM_STR-SUPPLIER sy-vline
WA_IRESVNDOCITM_STR-MATERIALGROUP sy-vline
WA_IRESVNDOCITM_STR-GOODSRECIPIENTNAME sy-vline
WA_IRESVNDOCITM_STR-UNLOADINGPOINTNAME sy-vline
WA_IRESVNDOCITM_STR-RESERVATIONITEMTEXT sy-vline
WA_IRESVNDOCITM_STR-RECIPIENTLOCATIONCODE sy-vline
WA_IRESVNDOCITM_STR-SERVICEOBJECTTYPE sy-vline
WA_IRESVNDOCITM_STR-SERVICEDOCUMENT sy-vline
WA_IRESVNDOCITM_STR-SERVICEDOCUMENTITEM sy-vline
WA_IRESVNDOCITM_STR-RESVNITMSRVCDOCTYPEASACCTASGT sy-vline
WA_IRESVNDOCITM_STR-RESVNITMSRVCDOCASACCTASGT sy-vline
WA_IRESVNDOCITM_STR-RESVNITMSRVCDOCITMASACCTASGT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.