<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Report on smartform.Replace select endselect with something to efficient it in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-on-smartform-replace-select-endselect-with-something-to-efficient-it/m-p/3994400#M954259</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi saswat mohanty ,&lt;/P&gt;&lt;P&gt;  &lt;/P&gt;&lt;P&gt;Welcome to SDN.  Ya your program takes lot of time to give the output becauase of more select endselects in  a loop.&lt;/P&gt;&lt;P&gt;You are hitting as  many times as the records in the ITAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Instead use "for all entries"   clause for fetching the complete data from a table atonce.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example: your itab is there.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Select *  from  xyz&lt;/P&gt;&lt;P&gt;   into table itab2&lt;/P&gt;&lt;P&gt;   for all entries in itab&lt;/P&gt;&lt;P&gt;where  field1 eq itab-field1&lt;/P&gt;&lt;P&gt;    and field2 eq itab-field2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After fetching the data you can populate the final table by looping through ITAB  and itab2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is best procedure to reduce the load on database.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Implement this in your program to improve performance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REWARD POINTS IF USEFUL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Venkat.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 13 Jun 2008 14:53:36 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-06-13T14:53:36Z</dc:date>
    <item>
      <title>Report on smartform.Replace select endselect with something to efficient it</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-on-smartform-replace-select-endselect-with-something-to-efficient-it/m-p/3994399#M954258</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;To make a smartform report efficient by removing all occurs &amp;amp; modify internal table statements.&lt;/P&gt;&lt;P&gt;What i have been given to do is to select all data from respective tables put them into one internal table &amp;amp; then finally making tab2 or tab3 in the report to be the final table.I am not sure which among these two i can make final table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;THE CODE is:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  zgr_note.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES : mseg,  "Document Segment : Material&lt;/P&gt;&lt;P&gt;         prps,  "WBS element master data&lt;/P&gt;&lt;P&gt;         proj,  "Project Definition&lt;/P&gt;&lt;P&gt;         mkpf,  "Header : Material Document&lt;/P&gt;&lt;P&gt;         lfa1,  "Vendor Master&lt;/P&gt;&lt;P&gt;         makt,  "Material Description&lt;/P&gt;&lt;P&gt;         aufk,  "Order Master Data&lt;/P&gt;&lt;P&gt;         afvc.  "Operation within an order&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : fname LIKE rs38l-name. "Name of Function Module&lt;/P&gt;&lt;P&gt;DATA: lf_fm_name            TYPE rs38l_fnam.&lt;/P&gt;&lt;P&gt;DATA: ls_control_param      TYPE ssfctrlop.&lt;/P&gt;&lt;P&gt;DATA: ls_composer_param     TYPE ssfcompop.&lt;/P&gt;&lt;P&gt;DATA: ls_recipient          TYPE swotobjid.&lt;/P&gt;&lt;P&gt;DATA: ls_sender             TYPE swotobjid.&lt;/P&gt;&lt;P&gt;DATA: lf_formname           TYPE tdsfname.&lt;/P&gt;&lt;P&gt;DATA: ls_addr_key           LIKE addr_key.&lt;/P&gt;&lt;P&gt;DATA: ls_dlv_land           LIKE vbrk-land1.&lt;/P&gt;&lt;P&gt;DATA: ls_job_info           TYPE ssfcrescl.&lt;/P&gt;&lt;P&gt;DATA: ls_otpt_opt           TYPE ssfcompop.&lt;/P&gt;&lt;P&gt;DATA: retcode TYPE sy-subrc.&lt;/P&gt;&lt;P&gt;DATA: cntr TYPE i VALUE 0.&lt;/P&gt;&lt;P&gt;DATA: cntr1 TYPE i .&lt;/P&gt;&lt;P&gt;DATA: number TYPE SSFCRESCL-SPOOLIDS. " OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: TSP01 type TABLE OF TSP01_SP0R.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF itab OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE mseg.&lt;/P&gt;&lt;P&gt;DATA : post1 LIKE proj-post1,           "Project Definition&lt;/P&gt;&lt;P&gt;       pspnr LIKE proj-pspnr,           "WBS element&lt;/P&gt;&lt;P&gt;       maktx LIKE makt-maktx,           "Material Description&lt;/P&gt;&lt;P&gt;       name1 LIKE lfa1-name1,           "Name of the supplier&lt;/P&gt;&lt;P&gt;       budat LIKE mkpf-budat,           "Posting date&lt;/P&gt;&lt;P&gt;       bldat LIKE mkpf-bldat,           "Document date&lt;/P&gt;&lt;P&gt;       cpudt LIKE mkpf-cpudt,           "Date on which account document was entered&lt;/P&gt;&lt;P&gt;       psphi LIKE prps-psphi,           "Current number of project&lt;/P&gt;&lt;P&gt;       post2 LIKE prps-post1,           "WBS Definition&lt;/P&gt;&lt;P&gt;       xblnr LIKE mkpf-xblnr,           "Reference number( in this case challan number)&lt;/P&gt;&lt;P&gt;       bktxt LIKE mkpf-bktxt,           "Header text&lt;/P&gt;&lt;P&gt;       ort01 LIKE lfa1-ort01,           "vendor city&lt;/P&gt;&lt;P&gt;       ktext LIKE aufk-ktext,           "network description&lt;/P&gt;&lt;P&gt;       ltxa1 LIKE afvc-ltxa1.           "operation short text&lt;/P&gt;&lt;P&gt;DATA : END OF itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF jtab OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE itab.&lt;/P&gt;&lt;P&gt;DATA : END OF jtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : itab1 LIKE itab OCCURS 0&lt;/P&gt;&lt;P&gt;      WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA :itab2 LIKE itab OCCURS 0&lt;/P&gt;&lt;P&gt;      WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: itab3 LIKE itab OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text_001.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS : gr_num FOR mseg-mblnr . "no INTERVALS.&lt;/P&gt;&lt;P&gt;PARAMETERS : gr_note LIKE itemset-xopsel RADIOBUTTON GROUP rad1.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN SKIP.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS : mat_num FOR mseg-mblnr . "no INTERVALS.&lt;/P&gt;&lt;P&gt;PARAMETERS : mat_slip LIKE itemset-xopsel RADIOBUTTON GROUP rad1.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CASE 'X'.&lt;/P&gt;&lt;P&gt;  WHEN gr_note.&lt;/P&gt;&lt;P&gt;    PERFORM gr_display.&lt;/P&gt;&lt;P&gt;  WHEN mat_slip.&lt;/P&gt;&lt;P&gt;    PERFORM mat_display.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM gr_display .&lt;/P&gt;&lt;P&gt;*break developer1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT mblnr mjahr matnr werks lgort lifnr menge meins&lt;/P&gt;&lt;P&gt;         erfmg bpmng ebeln ps_psp_pnr zeile lsmng erfme&lt;/P&gt;&lt;P&gt;  FROM mseg&lt;/P&gt;&lt;P&gt;  INTO CORRESPONDING FIELDS OF TABLE itab&lt;/P&gt;&lt;P&gt;   WHERE mblnr IN gr_num.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT itab.&lt;/P&gt;&lt;P&gt;    SELECT pspnr psphi post1 INTO CORRESPONDING FIELDS OF itab1&lt;/P&gt;&lt;P&gt;      FROM prps WHERE pspnr = itab-ps_psp_pnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      itab-psphi = itab1-psphi.&lt;/P&gt;&lt;P&gt;      itab-pspnr = itab1-pspnr.&lt;/P&gt;&lt;P&gt;      itab-post2 = itab1-post1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MODIFY itab TRANSPORTING psphi pspnr post2.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT post1 FROM proj INTO CORRESPONDING FIELDS OF itab2&lt;/P&gt;&lt;P&gt;    WHERE pspnr = itab-psphi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      itab-post1 = itab2-post1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MODIFY itab TRANSPORTING post1.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    REFRESH itab2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT maktx FROM makt INTO CORRESPONDING FIELDS OF itab2&lt;/P&gt;&lt;P&gt;      WHERE matnr = itab-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      itab-maktx = itab2-maktx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MODIFY itab TRANSPORTING maktx.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    REFRESH itab2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT name1 ort01 FROM lfa1 INTO CORRESPONDING FIELDS OF itab2&lt;/P&gt;&lt;P&gt;      WHERE lifnr = itab-lifnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      itab-name1 = itab2-name1.&lt;/P&gt;&lt;P&gt;      itab-ort01 = itab2-ort01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MODIFY itab TRANSPORTING name1 ort01.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    REFRESH itab2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT budat bldat cpudt xblnr bktxt FROM mkpf&lt;/P&gt;&lt;P&gt;      INTO CORRESPONDING FIELDS OF itab2&lt;/P&gt;&lt;P&gt;      WHERE mblnr = itab-mblnr.&lt;/P&gt;&lt;P&gt;      itab-budat = itab2-budat.&lt;/P&gt;&lt;P&gt;      itab-bldat = itab2-bldat.&lt;/P&gt;&lt;P&gt;      itab-cpudt = itab2-cpudt.&lt;/P&gt;&lt;P&gt;      itab-xblnr = itab2-xblnr.&lt;/P&gt;&lt;P&gt;      itab-bktxt = itab2-bktxt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MODIFY itab TRANSPORTING budat bldat cpudt xblnr bktxt.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT itab .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ON CHANGE OF itab-mblnr.&lt;/P&gt;&lt;P&gt;      itab3-mblnr = itab-mblnr.&lt;/P&gt;&lt;P&gt;      itab3-post1 = itab-post1.&lt;/P&gt;&lt;P&gt;      itab3-post2 = itab-post2.&lt;/P&gt;&lt;P&gt;      itab3-name1 = itab-name1.&lt;/P&gt;&lt;P&gt;      itab3-ort01 = itab-ort01.&lt;/P&gt;&lt;P&gt;      itab3-bldat = itab-bldat.&lt;/P&gt;&lt;P&gt;      APPEND itab3.&lt;/P&gt;&lt;P&gt;      CLEAR itab3.&lt;/P&gt;&lt;P&gt;    ENDON.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  jtab-mblnr = itab-mblnr.&lt;/P&gt;&lt;P&gt;  jtab-xblnr = itab-xblnr.&lt;/P&gt;&lt;P&gt;  jtab-budat = itab-budat.&lt;/P&gt;&lt;P&gt;  jtab-bktxt = itab-bktxt.&lt;/P&gt;&lt;P&gt;  jtab-lsmng = itab-lsmng.&lt;/P&gt;&lt;P&gt;  jtab-erfmg = itab-erfmg.&lt;/P&gt;&lt;P&gt;  jtab-erfme = itab-erfme.&lt;/P&gt;&lt;P&gt;  jtab-matnr = itab-matnr.&lt;/P&gt;&lt;P&gt;  jtab-maktx = itab-maktx.&lt;/P&gt;&lt;P&gt;  jtab-zeile = itab-zeile.&lt;/P&gt;&lt;P&gt;  APPEND jtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT itab3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR: itab2,itab2[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT itab WHERE mblnr = itab3-mblnr.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING itab TO itab2.&lt;/P&gt;&lt;P&gt;      APPEND itab2.&lt;/P&gt;&lt;P&gt;      CLEAR itab2.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        formname                 = 'ZMM_GOODS_RECEIPT1'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  VARIANT                  = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DIRECT_CALL              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;P&gt;       fm_name                  = fname&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_FORM                  = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_FUNCTION_MODULE       = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                   = 3&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              .&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;*break developer1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; PERFORM print_parameters.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION fname&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;       control_parameters         = ls_control_param&lt;/P&gt;&lt;P&gt;       output_options             = ls_otpt_opt&lt;/P&gt;&lt;P&gt;       user_settings              = 'X'&lt;/P&gt;&lt;P&gt;       gr_mseg_hdr                = itab3&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DOCUMENT_OUTPUT_INFO       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  JOB_OUTPUT_INFO            =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  JOB_OUTPUT_OPTIONS         =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        gr_mseg                    = itab2&lt;/P&gt;&lt;P&gt;     EXCEPTIONS&lt;/P&gt;&lt;P&gt;       formatting_error           = 1&lt;/P&gt;&lt;P&gt;       internal_error             = 2&lt;/P&gt;&lt;P&gt;       send_error                 = 3&lt;/P&gt;&lt;P&gt;       user_canceled              = 4&lt;/P&gt;&lt;P&gt;       OTHERS                     = 5&lt;/P&gt;&lt;P&gt;              .&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " GR_DISPLAY&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM mat_display .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT mblnr mjahr matnr werks lgort lifnr menge meins&lt;/P&gt;&lt;P&gt;         erfmg bpmng ebeln ps_psp_pnr zeile lsmng erfme&lt;/P&gt;&lt;P&gt;         mat_pspnr nplnr aufpl aplzl&lt;/P&gt;&lt;P&gt;  FROM mseg&lt;/P&gt;&lt;P&gt;  INTO CORRESPONDING FIELDS OF TABLE itab&lt;/P&gt;&lt;P&gt;   WHERE mblnr IN mat_num.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT ltxa1 FROM afvc INTO CORRESPONDING FIELDS OF itab1&lt;/P&gt;&lt;P&gt;      WHERE aufpl = itab-aufpl AND aplzl = itab-aplzl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      itab-ltxa1 = itab1-ltxa1.&lt;/P&gt;&lt;P&gt;      MODIFY itab TRANSPORTING ltxa1.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    REFRESH itab1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT ktext FROM aufk INTO CORRESPONDING FIELDS OF itab1&lt;/P&gt;&lt;P&gt;      WHERE aufnr = itab-nplnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      itab-ktext = itab1-ktext.&lt;/P&gt;&lt;P&gt;      MODIFY itab TRANSPORTING ktext.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    REFRESH itab1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT pspnr psphi post1 INTO CORRESPONDING FIELDS OF itab1&lt;/P&gt;&lt;P&gt;      FROM prps WHERE pspnr = itab-mat_pspnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      itab-psphi = itab1-psphi.&lt;/P&gt;&lt;P&gt;      itab-pspnr = itab1-pspnr.&lt;/P&gt;&lt;P&gt;      itab-post2 = itab1-post1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MODIFY itab TRANSPORTING psphi pspnr post2.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT post1 FROM proj INTO CORRESPONDING FIELDS OF itab2&lt;/P&gt;&lt;P&gt;    WHERE pspnr = itab-psphi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      itab-post1 = itab2-post1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MODIFY itab TRANSPORTING post1.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    REFRESH itab2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT maktx FROM makt INTO CORRESPONDING FIELDS OF itab2&lt;/P&gt;&lt;P&gt;      WHERE matnr = itab-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      itab-maktx = itab2-maktx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MODIFY itab TRANSPORTING maktx.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    REFRESH itab2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT name1 ort01 FROM lfa1 INTO CORRESPONDING FIELDS OF itab2&lt;/P&gt;&lt;P&gt;      WHERE lifnr = itab-lifnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      itab-name1 = itab2-name1.&lt;/P&gt;&lt;P&gt;      itab-ort01 = itab2-ort01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MODIFY itab TRANSPORTING name1 ort01.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    REFRESH itab2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT budat bldat cpudt xblnr bktxt FROM mkpf&lt;/P&gt;&lt;P&gt;      INTO CORRESPONDING FIELDS OF itab2&lt;/P&gt;&lt;P&gt;      WHERE mblnr = itab-mblnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      itab-budat = itab2-budat.&lt;/P&gt;&lt;P&gt;      itab-bldat = itab2-bldat.&lt;/P&gt;&lt;P&gt;      itab-cpudt = itab2-cpudt.&lt;/P&gt;&lt;P&gt;      itab-xblnr = itab2-xblnr.&lt;/P&gt;&lt;P&gt;      itab-bktxt = itab2-bktxt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     break developer1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      MODIFY itab TRANSPORTING budat bldat cpudt xblnr bktxt.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ON CHANGE OF itab-mblnr.&lt;/P&gt;&lt;P&gt;      itab3-mblnr = itab-mblnr.&lt;/P&gt;&lt;P&gt;      itab3-budat = itab-budat.&lt;/P&gt;&lt;P&gt;      itab3-bldat = itab-bldat.&lt;/P&gt;&lt;P&gt;      itab3-post1 = itab-post1.&lt;/P&gt;&lt;P&gt;      itab3-ktext = itab-ktext.&lt;/P&gt;&lt;P&gt;      APPEND itab3.&lt;/P&gt;&lt;P&gt;      CLEAR itab3.&lt;/P&gt;&lt;P&gt;    ENDON.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT itab3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR: itab2, itab2[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT itab WHERE mblnr EQ itab3-mblnr.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING itab TO itab2.&lt;/P&gt;&lt;P&gt;      APPEND itab2.&lt;/P&gt;&lt;P&gt;      CLEAR itab2.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        formname                 = 'ZMM_MAT_ISSUE_SLIP'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  VARIANT                  = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DIRECT_CALL              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;P&gt;       fm_name                  = fname&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_FORM                  = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_FUNCTION_MODULE       = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                   = 3&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              .&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ls_control_param-no_dialog = 'X'.&lt;/P&gt;&lt;P&gt;*ls_control_param-preview = 'X'.&lt;/P&gt;&lt;P&gt;*ls_control_param-getotf = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ls_otpt_opt-tdnoprev = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ls_otpt_opt-tdnewid = ''.&lt;/P&gt;&lt;P&gt;    ls_otpt_opt-tdimmed = 'X'.&lt;/P&gt;&lt;P&gt;    ls_otpt_opt-tddest  = 'LP01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION fname&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ARCHIVE_INDEX              =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ARCHIVE_INDEX_TAB          =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ARCHIVE_PARAMETERS         =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       control_parameters         = ls_control_param&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    MAIL_APPL_OBJ              =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    MAIL_RECIPIENT             =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    MAIL_SENDER                =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       output_options             = ls_otpt_opt&lt;/P&gt;&lt;P&gt;       user_settings              = 'X'&lt;/P&gt;&lt;P&gt;        mat_slip_hdr               = itab3&lt;/P&gt;&lt;P&gt;   IMPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    DOCUMENT_OUTPUT_INFO       =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     JOB_OUTPUT_INFO            = ls_job_info&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    JOB_OUTPUT_OPTIONS         =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        mat_slip                   = itab2&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    FORMATTING_ERROR           = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    INTERNAL_ERROR             = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    SEND_ERROR                 = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    USER_CANCELED              = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    OTHERS                     = 5&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              .&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 13 Jun 2008 06:40:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-on-smartform-replace-select-endselect-with-something-to-efficient-it/m-p/3994399#M954258</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-13T06:40:28Z</dc:date>
    </item>
    <item>
      <title>Re: Report on smartform.Replace select endselect with something to efficient it</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-on-smartform-replace-select-endselect-with-something-to-efficient-it/m-p/3994400#M954259</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi saswat mohanty ,&lt;/P&gt;&lt;P&gt;  &lt;/P&gt;&lt;P&gt;Welcome to SDN.  Ya your program takes lot of time to give the output becauase of more select endselects in  a loop.&lt;/P&gt;&lt;P&gt;You are hitting as  many times as the records in the ITAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Instead use "for all entries"   clause for fetching the complete data from a table atonce.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example: your itab is there.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Select *  from  xyz&lt;/P&gt;&lt;P&gt;   into table itab2&lt;/P&gt;&lt;P&gt;   for all entries in itab&lt;/P&gt;&lt;P&gt;where  field1 eq itab-field1&lt;/P&gt;&lt;P&gt;    and field2 eq itab-field2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After fetching the data you can populate the final table by looping through ITAB  and itab2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is best procedure to reduce the load on database.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Implement this in your program to improve performance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REWARD POINTS IF USEFUL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Venkat.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 13 Jun 2008 14:53:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-on-smartform-replace-select-endselect-with-something-to-efficient-it/m-p/3994400#M954259</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-13T14:53:36Z</dc:date>
    </item>
  </channel>
</rss>

