<?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: Performance tuning in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973265#M399128</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Again,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  As pointed out by &amp;lt;b&amp;gt;Rob Burbank&amp;lt;/b&amp;gt;, nested loops are a problem in the code. I have calculated the most optimal number of traversing in the above code. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;Though my code too has nested loops, but here the outer most loop has the least number of entries. Just replace your loops with mine and see it working fast.&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;Also, you can use field symbols to make it faster. Plus use binary search with read in one of my statements in above solution.&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope i provided you with appropiate solution. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and regards,&lt;/P&gt;&lt;P&gt;Ravi.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 19 Feb 2007 17:00:50 GMT</pubDate>
    <dc:creator>raviprakash</dc:creator>
    <dc:date>2007-02-19T17:00:50Z</dc:date>
    <item>
      <title>Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973261#M399124</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi guys!&lt;/P&gt;&lt;P&gt;I'll be always in favour to you if u could really help me this out.The program displays all the Sales order(RMA's) who's series starts with number 6 in our company ie for Return Manufacturing Authoriazation.What ever the orders which are returned back has a return reason text of more than 600 char long(for this i'm using FM read_text).The problem here is the we have around 6 fields in the selection screen and the end user only enters three fields ie Plant Org,Document Type(only two values ZORE and ZSRE) and the sales order creation date range.Now when i give a date range of four months it is taking 9 minutes to display the data.And the end user wants the date range of one year.When i give the range for 1 year it is running out of time and displays a runtime erro.Please find the solution for this to improve the performance.For your refrence i'm attaching my coding.Its really urgent.........................Please help..............................&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  z_rma_gr_report NO STANDARD PAGE HEADING  LINE-SIZE 700.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPE-POOLS: slis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES: ekko,&lt;/P&gt;&lt;P&gt;        ekkn,&lt;/P&gt;&lt;P&gt;        ekpo,&lt;/P&gt;&lt;P&gt;        ekbe,&lt;/P&gt;&lt;P&gt;        vbak,&lt;/P&gt;&lt;P&gt;        vbap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK rmd WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_org FOR vbak-vkorg OBLIGATORY, "PURCHASE ORG IMR928388&lt;/P&gt;&lt;P&gt;                s_pnt FOR ekbe-werks,   "PLANT&lt;/P&gt;&lt;P&gt;                s_doc FOR vbak-auart,   "DOCUMENT TYPE&lt;/P&gt;&lt;P&gt;                s_so FOR vbak-vbeln,    "RMA&lt;/P&gt;&lt;P&gt;                s_pno FOR ekko-ebeln,   "PURCHASE ORDER NUMBER&lt;/P&gt;&lt;P&gt;                s_pdate FOR ekbe-budat, "PURCHASE ORDER DATE&lt;/P&gt;&lt;P&gt;                s_cdate FOR vbak-erdat OBLIGATORY. "SO CREATION DATE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK rmd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF ty_itab,&lt;/P&gt;&lt;P&gt;       rma LIKE vbak-vbeln,&lt;/P&gt;&lt;P&gt;       enpointe_po LIKE ekkn-ebeln,&lt;/P&gt;&lt;P&gt;       po_line_item LIKE ekkn-ebelp,&lt;/P&gt;&lt;P&gt;       vendor_no LIKE vbap-zzp_lifnr,&lt;/P&gt;&lt;P&gt;       vendor_name LIKE lfa1-name1,&lt;/P&gt;&lt;P&gt;       material_doc LIKE ekbe-belnr,&lt;/P&gt;&lt;P&gt;       gr_rev_date  LIKE ekbe-budat,&lt;/P&gt;&lt;P&gt;       rma_return(600) TYPE c,&lt;/P&gt;&lt;P&gt;       END OF ty_itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_vbak,&lt;/P&gt;&lt;P&gt;       vbeln TYPE vbak-vbeln,&lt;/P&gt;&lt;P&gt;       erdat TYPE vbak-erdat,&lt;/P&gt;&lt;P&gt;       auart TYPE vbak-auart,&lt;/P&gt;&lt;P&gt;       END OF ty_vbak.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_vbap,&lt;/P&gt;&lt;P&gt;       vbeln TYPE vbap-vbeln,&lt;/P&gt;&lt;P&gt;       posnr TYPE vbap-posnr,&lt;/P&gt;&lt;P&gt;       vgbel TYPE vbap-vgbel,&lt;/P&gt;&lt;P&gt;       vgpos TYPE vbap-vgpos,&lt;/P&gt;&lt;P&gt;       zzp_lifnr TYPE vbap-zzp_lifnr,&lt;/P&gt;&lt;P&gt;       END OF ty_vbap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_ekkn,&lt;/P&gt;&lt;P&gt;       ebeln TYPE ekkn-ebeln,&lt;/P&gt;&lt;P&gt;       ebelp TYPE ekkn-ebelp,&lt;/P&gt;&lt;P&gt;       vbeln TYPE ekkn-vbeln,&lt;/P&gt;&lt;P&gt;       vbelp TYPE ekkn-vbelp,&lt;/P&gt;&lt;P&gt;       loekz TYPE ekkn-loekz,&lt;/P&gt;&lt;P&gt;       END OF ty_ekkn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_ekbe,&lt;/P&gt;&lt;P&gt;       ebeln TYPE ekbe-ebeln,&lt;/P&gt;&lt;P&gt;       ebelp TYPE ekbe-ebelp,&lt;/P&gt;&lt;P&gt;       belnr TYPE ekbe-belnr,&lt;/P&gt;&lt;P&gt;       bewtp TYPE ekbe-bewtp,&lt;/P&gt;&lt;P&gt;       bwart TYPE ekbe-bwart,&lt;/P&gt;&lt;P&gt;       budat TYPE ekbe-budat,&lt;/P&gt;&lt;P&gt;       END OF ty_ekbe.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_ekko,&lt;/P&gt;&lt;P&gt;       ebeln TYPE ekko-ebeln,&lt;/P&gt;&lt;P&gt;       lifnr TYPE ekko-lifnr,&lt;/P&gt;&lt;P&gt;       END OF ty_ekko.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_lfa1,&lt;/P&gt;&lt;P&gt;       lifnr LIKE lfa1-lifnr,&lt;/P&gt;&lt;P&gt;       name1 LIKE lfa1-name1,&lt;/P&gt;&lt;P&gt;       END OF ty_lfa1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: t_itab TYPE STANDARD TABLE OF ty_itab WITH NON-UNIQUE DEFAULT KEY&lt;/P&gt;&lt;P&gt;      INITIAL SIZE 10 WITH HEADER LINE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: w_fieldcat TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;DATA: t_fieldcat TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: t_vbak TYPE ty_vbak OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: t_vbap TYPE ty_vbap OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: t_ekko TYPE ty_ekko OCCURS 0 WITH HEADER LINE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: t_ekkn TYPE ty_ekkn OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: t_ekbe TYPE ty_ekbe OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: t_lfa1 TYPE ty_lfa1 OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_line OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE tline.&lt;/P&gt;&lt;P&gt;DATA: END OF t_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  PERFORM rma_sales.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM display_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  t_fieldcat&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Subroutine for fielcat and alv_list_display&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM display_data.&lt;/P&gt;&lt;P&gt;  PERFORM fieldcat.&lt;/P&gt;&lt;P&gt;  PERFORM alv_list_display.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "display_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fieldcat&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      For the output field Columns&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR w_fieldcat.&lt;/P&gt;&lt;P&gt;  w_fieldcat-col_pos      = '1'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-fieldname    = 'RMA'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-seltext_l     = 'RMA'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-ref_fieldname = 'VBELN'.&lt;/P&gt;&lt;P&gt;  APPEND w_fieldcat TO t_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR w_fieldcat.&lt;/P&gt;&lt;P&gt;  w_fieldcat-col_pos      = '2'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-fieldname    = 'ENPOINTE_PO'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-ref_fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-seltext_l  = 'ENPOINTE PO#'.&lt;/P&gt;&lt;P&gt;  APPEND w_fieldcat TO t_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR w_fieldcat.&lt;/P&gt;&lt;P&gt;  w_fieldcat-col_pos      = '3'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-fieldname    = 'PO_LINE_ITEM'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-ref_fieldname = 'EBELP'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-seltext_l  = 'PO Line Item'.&lt;/P&gt;&lt;P&gt;  APPEND w_fieldcat TO t_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR w_fieldcat.&lt;/P&gt;&lt;P&gt;  w_fieldcat-col_pos      = '4'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-fieldname    = 'VENDOR_NO'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-ref_fieldname = 'ZZP_LIFNR'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-seltext_l  = 'Vendor No'.&lt;/P&gt;&lt;P&gt;  APPEND w_fieldcat TO t_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR w_fieldcat.&lt;/P&gt;&lt;P&gt;  w_fieldcat-col_pos      = '5'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-fieldname    = 'VENDOR_NAME'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-ref_fieldname = 'NAME1'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-seltext_l  = 'Vendor Name'.&lt;/P&gt;&lt;P&gt;  APPEND w_fieldcat TO t_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR w_fieldcat.&lt;/P&gt;&lt;P&gt;  w_fieldcat-col_pos      = '6'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-fieldname    = 'MATERIAL_DOC'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-ref_fieldname = 'BELNR'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-seltext_l  = 'Material Do#(Reversal)'.&lt;/P&gt;&lt;P&gt;  APPEND w_fieldcat TO t_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR w_fieldcat.&lt;/P&gt;&lt;P&gt;  w_fieldcat-col_pos      = '7'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-fieldname    = 'GR_REV_DATE'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-ref_fieldname = 'BUDAT'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-seltext_l  = 'GR Reversal Date'.&lt;/P&gt;&lt;P&gt;  APPEND w_fieldcat TO t_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR w_fieldcat.&lt;/P&gt;&lt;P&gt;  w_fieldcat-col_pos      = '8'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-fieldname    = 'RMA_RETURN'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-outputlen    = 600.&lt;/P&gt;&lt;P&gt;  w_fieldcat-datatype     = 'CHAR'.&lt;/P&gt;&lt;P&gt;  w_fieldcat-seltext_l    = 'RMA(Return Reason Details)'.&lt;/P&gt;&lt;P&gt;  APPEND w_fieldcat TO t_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "fieldcat&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  alv_list_display&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Displaying the output&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM alv_list_display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_callback_program = sy-repid&lt;/P&gt;&lt;P&gt;      it_fieldcat        = t_fieldcat&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab           = t_itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "alv_list_display&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  rma_sales&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Queries for Getting the Sales order Number and its corresponding PO,&lt;/P&gt;&lt;P&gt;*Line Item,Material Doc and Reversal date values.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM rma_sales.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT vbeln&lt;/P&gt;&lt;P&gt;         erdat&lt;/P&gt;&lt;P&gt;         auart&lt;/P&gt;&lt;P&gt;         FROM vbak&lt;/P&gt;&lt;P&gt;         INTO TABLE t_vbak&lt;/P&gt;&lt;P&gt;         WHERE vbeln IN s_so   "Sales order&lt;/P&gt;&lt;P&gt;         AND erdat IN s_cdate  "Sales order creation date&lt;/P&gt;&lt;P&gt;         AND auart IN s_doc    "Document type&lt;/P&gt;&lt;P&gt;         AND vkorg IN s_org.                                "IMR928535&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT t_vbak BY vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT vbeln&lt;/P&gt;&lt;P&gt;             posnr&lt;/P&gt;&lt;P&gt;             vgbel&lt;/P&gt;&lt;P&gt;             vgpos&lt;/P&gt;&lt;P&gt;             zzp_lifnr&lt;/P&gt;&lt;P&gt;             FROM vbap&lt;/P&gt;&lt;P&gt;             INTO TABLE t_vbap&lt;/P&gt;&lt;P&gt;             FOR ALL ENTRIES IN t_vbak&lt;/P&gt;&lt;P&gt;             WHERE vbeln = t_vbak-vbeln&lt;/P&gt;&lt;P&gt;             AND werks IN s_pnt.                            "IMR928388&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT ebeln&lt;/P&gt;&lt;P&gt;               ebelp&lt;/P&gt;&lt;P&gt;               vbeln&lt;/P&gt;&lt;P&gt;               vbelp&lt;/P&gt;&lt;P&gt;               loekz&lt;/P&gt;&lt;P&gt;               FROM ekkn INTO TABLE t_ekkn&lt;/P&gt;&lt;P&gt;               FOR ALL ENTRIES IN t_vbap&lt;/P&gt;&lt;P&gt;               WHERE ebeln IN s_pno&lt;/P&gt;&lt;P&gt;               AND vbeln = t_vbap-vgbel&lt;/P&gt;&lt;P&gt;               AND vbelp   = t_vbap-vgpos.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            AND loekz = ' '.                               "IMR928535&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SORT t_ekkn BY ebeln ebelp.&lt;/P&gt;&lt;P&gt; DELETE ADJACENT DUPLICATES FROM t_ekkn COMPARING ebeln ebelp."IMR928405&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          SELECT ebeln&lt;/P&gt;&lt;P&gt;                 ebelp&lt;/P&gt;&lt;P&gt;                 belnr&lt;/P&gt;&lt;P&gt;                 bewtp&lt;/P&gt;&lt;P&gt;                 bwart&lt;/P&gt;&lt;P&gt;                 budat&lt;/P&gt;&lt;P&gt;                 FROM ekbe INTO TABLE t_ekbe&lt;/P&gt;&lt;P&gt;                 FOR ALL ENTRIES IN t_ekkn&lt;/P&gt;&lt;P&gt;                 WHERE ebeln = t_ekkn-ebeln&lt;/P&gt;&lt;P&gt;                 AND ebelp = t_ekkn-ebelp&lt;/P&gt;&lt;P&gt;                 AND bewtp   = 'E'&lt;/P&gt;&lt;P&gt;                 AND bwart = '122'&lt;/P&gt;&lt;P&gt;                 AND budat IN s_pdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_vbak.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT t_vbap WHERE vbeln = t_vbak-vbeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT t_ekkn WHERE vbeln = t_vbap-vgbel&lt;/P&gt;&lt;P&gt;                     AND   vbelp = t_vbap-vgpos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        LOOP AT t_ekbe WHERE ebeln = t_ekkn-ebeln           "IMR928405&lt;/P&gt;&lt;P&gt;                       AND   ebelp = t_ekkn-ebelp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          t_itab-rma = t_vbak-vbeln.&lt;/P&gt;&lt;P&gt;          t_itab-enpointe_po = t_ekkn-ebeln .&lt;/P&gt;&lt;P&gt;          t_itab-po_line_item = t_ekkn-ebelp .&lt;/P&gt;&lt;P&gt;          t_itab-material_doc = t_ekbe-belnr.&lt;/P&gt;&lt;P&gt;          t_itab-gr_rev_date = t_ekbe-budat .&lt;/P&gt;&lt;P&gt;          t_itab-vendor_no =  t_vbap-zzp_lifnr.&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;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PERFORM vendor_detail.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PERFORM rejection_reason.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM vendor_detail.                                  "IMR928442&lt;/P&gt;&lt;P&gt;    PERFORM rejection_reason.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT t_itab-rma IS INITIAL.&lt;/P&gt;&lt;P&gt;      APPEND t_itab.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR t_itab.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                   "rma_sales&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  vendor_details&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Subroutine for vendor name&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM vendor_detail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CLEAR t_lfa1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; REFRESH t_lfa1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT   lifnr&lt;/P&gt;&lt;P&gt;           name1 FROM lfa1&lt;/P&gt;&lt;P&gt;           INTO TABLE t_lfa1&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN t_vbap&lt;/P&gt;&lt;P&gt;           WHERE lifnr = t_vbap-zzp_lifnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT t_lfa1 BY lifnr.&lt;/P&gt;&lt;P&gt;    DELETE ADJACENT DUPLICATES FROM t_lfa1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MOVE t_vbap-zzp_lifnr TO t_lfa1-lifnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LOOP AT t_lfa1 WHERE lifnr = t_vbap-zzp_lifnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    READ TABLE t_lfa1 WITH&lt;/P&gt;&lt;P&gt;                      KEY lifnr = t_vbap-zzp_lifnr&lt;/P&gt;&lt;P&gt;                      BINARY SEARCH.                        "IMR928442&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MOVE t_lfa1-name1 TO t_itab-vendor_name.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    t_itab-vendor_name = t_lfa1-name1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "vendor_detail&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      form  rejection_reason&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Subroutine for Rma return reasons&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM rejection_reason.                                      "IMR928405&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: i_tdname TYPE thead-tdname.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; DATA: l_vbak(10) TYPE c VALUE '0000000000'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; DATA: l_vbap(6) TYPE c VALUE '000000'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: text1(132) TYPE c,&lt;/P&gt;&lt;P&gt;        text2(132) TYPE c,&lt;/P&gt;&lt;P&gt;        text3(132) TYPE c,&lt;/P&gt;&lt;P&gt;        text4(132) TYPE c,&lt;/P&gt;&lt;P&gt;        text5(132) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*REFRESH: t_line. "IMR928521&lt;/P&gt;&lt;P&gt;*CLEAR:  t_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; OVERLAY t_vbak-vbeln WITH l_vbak."IMR928521&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; OVERLAY t_vbap-posnr WITH l_vbap.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  CONCATENATE  t_vbak-vbeln t_vbap-posnr INTO i_tdname.&lt;/P&gt;&lt;P&gt;  CONDENSE i_tdname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'READ_TEXT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      id                      = 'Z010'&lt;/P&gt;&lt;P&gt;      language                = 'E'&lt;/P&gt;&lt;P&gt;      name                    = i_tdname&lt;/P&gt;&lt;P&gt;      object                  = 'VBBP'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      lines                   = t_line&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      id                      = 1&lt;/P&gt;&lt;P&gt;      language                = 2&lt;/P&gt;&lt;P&gt;      name                    = 3&lt;/P&gt;&lt;P&gt;      not_found               = 4&lt;/P&gt;&lt;P&gt;      object                  = 5&lt;/P&gt;&lt;P&gt;      reference_check         = 6&lt;/P&gt;&lt;P&gt;      wrong_access_to_archive = 7&lt;/P&gt;&lt;P&gt;      OTHERS                  = 8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: t_itab-rma_return.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE t_line INDEX 1.                              "IMR928442&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      text1 = t_line-tdline.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    READ TABLE t_line INDEX 2.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      text2 = t_line-tdline.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    READ TABLE t_line INDEX 3.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      text3 = t_line-tdline.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    READ TABLE t_line INDEX 4.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      text4 = t_line-tdline.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    READ TABLE t_line INDEX 5.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      text5 = t_line-tdline.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LOOP AT t_line.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF sy-tabix GT 5.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       EXIT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CONCATENATE t_itab-rma_return t_line-tdline INTO t_itab-rma_return.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE text1 text2 text3 text4 text5 INTO t_itab-rma_return.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "vendor_detail&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 12:53:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973261#M399124</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-19T12:53:01Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973262#M399125</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Your problem is int this portion of code:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
  LOOP AT t_vbak.


    LOOP AT t_vbap WHERE vbeln = t_vbak-vbeln.


      LOOP AT t_ekkn WHERE vbeln = t_vbap-vgbel
      AND vbelp = t_vbap-vgpos.

        LOOP AT t_ekbe WHERE ebeln = t_ekkn-ebeln           "IMR928405
        AND ebelp = t_ekkn-ebelp.

          t_itab-rma = t_vbak-vbeln.
          t_itab-enpointe_po = t_ekkn-ebeln .
          t_itab-po_line_item = t_ekkn-ebelp .
          t_itab-material_doc = t_ekbe-belnr.
          t_itab-gr_rev_date = t_ekbe-budat .
*t_itab-vendor_no = t_vbap-zzp_lifnr.

        ENDLOOP.

      ENDLOOP.

* PERFORM vendor_detail.
* PERFORM rejection_reason.
    ENDLOOP.

    PERFORM vendor_detail.                                  "IMR928442
    PERFORM rejection_reason.

    IF NOT t_itab-rma IS INITIAL.
      APPEND t_itab.
    ENDIF.
    CLEAR t_itab.
  ENDLOOP.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Nested loops are bad for performance. Triply nested loops will be far worse. This should give you an idea of how to fix the problem.:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;a href="/people/rob.burbank/blog/2006/02/07/performance-of-nested-loops"&amp;gt;The Performance of Nested Loops&amp;lt;/a&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 14:17:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973262#M399125</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-19T14:17:10Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973263#M399126</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just a very common idea: check out transaction SE30. It is very useful to determine, which part of your program is the slowest.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Tamá&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 14:37:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973263#M399126</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-19T14:37:57Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973264#M399127</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Younus,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  I went through your code. Its really good. I found out a huge performance problem at one place. Here is the description :-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In Sub-Routine RMA_SALES, the following code should be changed:-&lt;/P&gt;&lt;P&gt;LOOP AT t_vbak.&lt;/P&gt;&lt;P&gt;LOOP AT t_vbap WHERE vbeln = t_vbak-vbeln.&lt;/P&gt;&lt;P&gt;LOOP AT t_ekkn WHERE vbeln = t_vbap-vgbel&lt;/P&gt;&lt;P&gt;AND vbelp = t_vbap-vgpos.&lt;/P&gt;&lt;P&gt;LOOP AT t_ekbe WHERE ebeln = t_ekkn-ebeln "IMR928405&lt;/P&gt;&lt;P&gt;AND ebelp = t_ekkn-ebelp.&lt;/P&gt;&lt;P&gt;t_itab-rma = t_vbak-vbeln.&lt;/P&gt;&lt;P&gt;t_itab-enpointe_po = t_ekkn-ebeln .&lt;/P&gt;&lt;P&gt;t_itab-po_line_item = t_ekkn-ebelp .&lt;/P&gt;&lt;P&gt;t_itab-material_doc = t_ekbe-belnr.&lt;/P&gt;&lt;P&gt;t_itab-gr_rev_date = t_ekbe-budat .&lt;/P&gt;&lt;P&gt;t_itab-vendor_no = t_vbap-zzp_lifnr.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PERFORM vendor_detail.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PERFORM rejection_reason.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;*****************************&lt;STRONG&gt;NEW CODE would be as follows:-&lt;/STRONG&gt;***********************&lt;/P&gt;&lt;P&gt;loop at t_ekbe.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at t_ekkn where ebeln = t_ekbe-ebeln and ebelp = t_ekbe-ebelp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at t_vbap where vgbel = t_ekkn-vbeln and vgpos = t_ekkn-ebelp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      read table t_vbak with key vbeln = t_vbak-vbeln.&lt;/P&gt;&lt;P&gt;      if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	t_itab-rma = t_vbak-vbeln.&lt;/P&gt;&lt;P&gt;	t_itab-enpointe_po = t_ekkn-ebeln .&lt;/P&gt;&lt;P&gt;	t_itab-po_line_item = t_ekkn-ebelp .&lt;/P&gt;&lt;P&gt;	t_itab-material_doc = t_ekbe-belnr.&lt;/P&gt;&lt;P&gt;	t_itab-gr_rev_date = t_ekbe-budat .&lt;/P&gt;&lt;P&gt;	t_itab-vendor_no = t_vbap-zzp_lifnr.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      endif.&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;  endloop.&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;Try this it would work :).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOTE: Please award me appropiate points if the problem is solved :).&lt;/P&gt;&lt;P&gt;           Looking forward for more queries.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and regards,&lt;/P&gt;&lt;P&gt;Ravi &lt;SPAN __jive_emoticon_name="happy"&gt;&lt;/SPAN&gt;.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 16:55:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973264#M399127</guid>
      <dc:creator>raviprakash</dc:creator>
      <dc:date>2007-02-19T16:55:42Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973265#M399128</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Again,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  As pointed out by &amp;lt;b&amp;gt;Rob Burbank&amp;lt;/b&amp;gt;, nested loops are a problem in the code. I have calculated the most optimal number of traversing in the above code. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;Though my code too has nested loops, but here the outer most loop has the least number of entries. Just replace your loops with mine and see it working fast.&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;Also, you can use field symbols to make it faster. Plus use binary search with read in one of my statements in above solution.&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope i provided you with appropiate solution. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and regards,&lt;/P&gt;&lt;P&gt;Ravi.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 17:00:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973265#M399128</guid>
      <dc:creator>raviprakash</dc:creator>
      <dc:date>2007-02-19T17:00:50Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973266#M399129</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ravi - you really need to use the binary search option (followed by some sort of indexed READ) instead of LOOPs in all cases. When you say "LOOP AT ... WHERE", it will have to loop through every line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 17:10:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973266#M399129</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-19T17:10:20Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973267#M399130</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Rob,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  Ya you are true, but in the above senario, as i read the code, i found out that there would be multiple rows for each loop and not just one. So i have to use LOOPS for the outer loops. But as told by you, i have put a READ in the innermost loop. And yes, that should have a BINARY SEARCH with it, as pointed out by you. Thanks a lot, Rob.&lt;/P&gt;&lt;P&gt;Thus the new code would be like :-&lt;/P&gt;&lt;P&gt;*****************************&lt;STRONG&gt;NEW CODE would be as follows:-&lt;/STRONG&gt;***********************&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;SORT t_vbak by vbeln.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at t_ekbe.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at t_ekkn where ebeln = t_ekbe-ebeln and ebelp = t_ekbe-ebelp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at t_vbap where vgbel = t_ekkn-vbeln and vgpos = t_ekkn-ebelp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;read table t_vbak with key vbeln = t_vbak-vbeln BINARY SEARCH.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;t_itab-rma = t_vbak-vbeln.&lt;/P&gt;&lt;P&gt;t_itab-enpointe_po = t_ekkn-ebeln .&lt;/P&gt;&lt;P&gt;t_itab-po_line_item = t_ekkn-ebelp .&lt;/P&gt;&lt;P&gt;t_itab-material_doc = t_ekbe-belnr.&lt;/P&gt;&lt;P&gt;t_itab-gr_rev_date = t_ekbe-budat .&lt;/P&gt;&lt;P&gt;t_itab-vendor_no = t_vbap-zzp_lifnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&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;endloop.&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;&lt;/P&gt;&lt;P&gt;Since the rest three loops has to return more than 1 entries, i can't use READ there. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;NOTE: If you still find any issues then please do tell me Rob, it would be of &lt;/P&gt;&lt;P&gt;           immense help to me.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and regards &lt;SPAN __jive_emoticon_name="happy"&gt;&lt;/SPAN&gt;,&lt;/P&gt;&lt;P&gt;Ravi &lt;SPAN __jive_emoticon_name="happy"&gt;&lt;/SPAN&gt;.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 17:20:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973267#M399130</guid>
      <dc:creator>raviprakash</dc:creator>
      <dc:date>2007-02-19T17:20:25Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973268#M399131</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I would have only one loop - the outer one. Everything else should be replaced by a binary search followed by indexed reads.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 17:25:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973268#M399131</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-19T17:25:13Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973269#M399132</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Rob,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  How would you do that? From what i read from the program, &lt;/P&gt;&lt;P&gt;a) for each single entry of&amp;lt;b&amp;gt; t_ekbe&amp;lt;/b&amp;gt; there would be multiple entries of &amp;lt;b&amp;gt;t_ekkn&amp;lt;/b&amp;gt; based on keys.&lt;/P&gt;&lt;P&gt;b) for each single entry of&amp;lt;b&amp;gt; t_ekkn&amp;lt;/b&amp;gt; there would be multiple entries of &amp;lt;b&amp;gt;t_vbap&amp;lt;/b&amp;gt; based on keys.&lt;/P&gt;&lt;P&gt;c) for each single entry of &amp;lt;b&amp;gt;t_vbap&amp;lt;/b&amp;gt; there would be multiple entries of &amp;lt;b&amp;gt;t_vbak&amp;lt;/b&amp;gt; based on keys.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Also note: VBAK contains all the key entries from which the entries for VBAP EKKN and EKBE is derived.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If possible can you please throw some lights as on how would it be possible to achieve this using only one loop and several reads.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and regards,&lt;/P&gt;&lt;P&gt;Ravi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;NOTE: Please am asking this out of utter curiousity. Please dont mind :).&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 17:38:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973269#M399132</guid>
      <dc:creator>raviprakash</dc:creator>
      <dc:date>2007-02-19T17:38:21Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973270#M399133</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Heve you checked the BLOG?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'll try to get back a little later with how I would re-write the code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 17:40:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973270#M399133</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-19T17:40:40Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973271#M399134</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;OK - I end up with:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
FORM rma_sales.

*
*
*

  PERFORM do_reads.

*  LOOP AT t_vbak.
*
*
*    LOOP AT t_vbap WHERE vbeln = t_vbak-vbeln.
*
*
*      LOOP AT t_ekkn WHERE vbeln = t_vbap-vgbel
*      AND vbelp = t_vbap-vgpos.
*
*        LOOP AT t_ekbe WHERE ebeln = t_ekkn-ebeln           "IMR928405
*        AND ebelp = t_ekkn-ebelp.
*
*          t_itab-rma = t_vbak-vbeln.
*          t_itab-enpointe_po = t_ekkn-ebeln .
*          t_itab-po_line_item = t_ekkn-ebelp .
*          t_itab-material_doc = t_ekbe-belnr.
*          t_itab-gr_rev_date = t_ekbe-budat .
**t_itab-vendor_no = t_vbap-zzp_lifnr.
*
*        ENDLOOP.
*
*      ENDLOOP.
*
** PERFORM vendor_detail.
** PERFORM rejection_reason.
*    ENDLOOP.
*
*    PERFORM vendor_detail.                                  "IMR928442
*    PERFORM rejection_reason.
*
*    IF NOT t_itab-rma IS INITIAL.
*      APPEND t_itab.
*    ENDIF.
*    CLEAR t_itab.
*  ENDLOOP.

ENDFORM. "rma_sales

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  do_reads
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM do_reads .

  DATA: vbak_index LIKE sy-tabix,
        vbap_index LIKE sy-tabix,
        ekkn_index LIKE sy-tabix,
        ekbe_index LIKE sy-tabix.

  SORT: t_vbak BY vbeln,
        t_vbap BY vbeln,
        t_ekkn BY vbeln vbelp,
        t_ekbe BY ebeln ebelp.

  PERFORM get_all_vendors.

  LOOP AT t_vbak.

    READ TABLE t_vbap WITH KEY
      vbeln = t_vbak-vbeln
      BINARY SEARCH.
    IF sy-subrc = 0.
      vbap_index = sy-tabix.
      WHILE sy-subrc = 0.

        READ TABLE t_ekkn WITH KEY
          vbeln = t_vbap-vgbel
          vbelp = t_vbap-vgpos
          BINARY SEARCH.
        IF sy-subrc = 0.
          ekkn_index = sy-tabix.
          WHILE sy-subrc = 0.

            READ TABLE t_ekbe WITH KEY
              ebeln = t_ekkn-ebeln
              ebelp = t_ekkn-ebelp
              BINARY SEARCH.
            IF sy-subrc = 0.
              ekbe_index = sy-tabix.
              WHILE sy-subrc = 0.
                t_itab-rma          = t_vbak-vbeln.
                t_itab-enpointe_po  = t_ekkn-ebeln .
                t_itab-po_line_item = t_ekkn-ebelp .
                t_itab-material_doc = t_ekbe-belnr.
                t_itab-gr_rev_date  = t_ekbe-budat .
                PERFORM: vendor_detail,
                         rejection_reason.
                APPEND t_itab.                           " ????

                ekbe_index = ekbe_index + 1.
                READ TABLE t_ekbe INDEX ekbe_index.
                IF sy-subrc = 0.
                  IF t_ekbe-ebeln &amp;lt;&amp;gt; t_ekkn-ebeln OR
                     t_ekbe-ebelp &amp;lt;&amp;gt; t_ekkn-ebelp.
                    sy-subrc = 9.
                  ENDIF.
                ENDIF.
              ENDWHILE.
            ENDIF.

            ekkn_index = ekkn_index + 1.
            READ TABLE t_ekkn INDEX ekkn_index.
            IF sy-subrc = 0.
              IF t_ekkn-vbeln &amp;lt;&amp;gt; t_vbap-vgbel OR
                 t_ekkn-vbelp &amp;lt;&amp;gt; t_vbap-vgpos.
                sy-subrc = 9.
              ENDIF.
            ENDIF.
          ENDWHILE.
        ENDIF.

        vbap_index = vbap_index + 1.
        READ TABLE t_vbap INDEX vbap_index.
        IF sy-subrc = 0.
          IF t_vbap-vbeln &amp;lt;&amp;gt; t_vbak-vbeln.
            sy-subrc = 9.
          ENDIF.
        ENDIF.
      ENDWHILE.
    ENDIF.

    LOOP AT t_vbap WHERE vbeln = t_vbak-vbeln.

      LOOP AT t_ekkn WHERE vbeln = t_vbap-vgbel
      AND vbelp = t_vbap-vgpos.

        LOOP AT t_ekbe WHERE ebeln = t_ekkn-ebeln           "IMR928405
        AND ebelp = t_ekkn-ebelp.

          t_itab-rma = t_vbak-vbeln.
          t_itab-enpointe_po = t_ekkn-ebeln .
          t_itab-po_line_item = t_ekkn-ebelp .
          t_itab-material_doc = t_ekbe-belnr.
          t_itab-gr_rev_date = t_ekbe-budat .

        ENDLOOP.

      ENDLOOP.

    ENDLOOP.

    PERFORM vendor_detail.                                  "IMR928442
    PERFORM rejection_reason.

    IF NOT t_itab-rma IS INITIAL.
      APPEND t_itab.
    ENDIF.
    CLEAR t_itab.
  ENDLOOP.


ENDFORM.                    " do_reads

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  get_all_vendors
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM get_all_vendors .

  SELECT lifnr
  name1 FROM lfa1
  INTO TABLE t_lfa1.

  SORT t_lfa1 BY lifnr.

ENDFORM.                    " get_all_vendors

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp; Form vendor_details
*&amp;amp;--------------------------------------------------------------------*
*Subroutine for vendor name
*---------------------------------------------------------------------*
FORM vendor_detail.

  READ TABLE t_lfa1 WITH
  KEY lifnr = t_vbap-zzp_lifnr
  BINARY SEARCH.

  t_itab-vendor_name = t_lfa1-name1.

ENDFORM. "vendor_detail
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is &amp;lt;b&amp;gt;untested&amp;lt;/b&amp;gt; and should just be a model. In addition, getting vendor details needed some work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 19:47:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973271#M399134</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-19T19:47:46Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973272#M399135</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hai Ravi!&lt;/P&gt;&lt;P&gt;Thanks a hundred times for going through my query thats really nice of you for your reply.But there are few conditions where the changed loops are not working particularly at  loop at ekkn table.Any ways the problem is solved with the answer given by Rob even though all give u points on the issue worked&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Feb 2007 07:24:30 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973272#M399135</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-20T07:24:30Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973273#M399136</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hai Rob!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We made it Rob thanks soooo much its working fine with single loop.I thought its not possible initially because as said by Ravi we have multiple PO's for each RMA's(sales order here).I started it with a doubt but really works fine but let me get through the it in testing with lots of values and check the performance.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Feb 2007 09:15:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973273#M399136</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-20T09:15:09Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973274#M399137</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hai Rob!&lt;/P&gt;&lt;P&gt;I'm facing the same problem in QAS after changing the coding.It triggers at the same point after runtime error(takes time and points out at select statement for EKKN table in my coding).Which was the same case previously when i give the date range of one year in the selection screen.And more over if i reduce the date range of 6 months it displays the output after 7minutes.This has improved  from the previous time of 11 minutes.And when i give a date range for 8 or 9 months it goes into runtime error yet again now at different location it points out at subroutine Concatenate t_vbak t_vbap to t_itdname.This was the same case previously too before changing the nested loops.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;More over when i give the date range for 1 year after one  minute its jumping on to runtime error and points the problem at Select query for table EKKN.Where in it displays the output upto the date range of 6 months why this is happing i'm not able to understand.Please help we have a production probelm.The coding i've changed is instead of nested loops i've replaced it with one loop for t_vbak like u've forwarded the code(i just copied it and uncoded the previous one)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Feb 2007 06:13:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973274#M399137</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-21T06:13:29Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973275#M399138</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Rob!&lt;/P&gt;&lt;P&gt;Previously i've used the subroutine for vendor_details(and included the select statement and read statement in the same subroutine) in the loop of t_vbak but did'nt used another subroutine which u've created called get_all_vendor(which u used it before the loop at t_vbak) when i used it the time taken for the object LFA1 in ST05(number of iterations has reduced) has reduced but the object STHX which is the table for text(return rejection resons ie RMA return reasons text table) duration is increasing and when i try writing the READ_TEXT function out of the loop of t_vbak its not displaying the text for the concern t_vbak and t_vbeln ie for the concern text ID of 16 digit for example '0060000204000010'.I've tried various ways but one thing or the other thing is eating my performance&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Feb 2007 12:14:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973275#M399138</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-21T12:14:43Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973276#M399139</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You mention EKKN and LFA1, but I don't see these tables being used in this program. (Ignore this. I was looking at something else.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I changed the way the vendor details are retrieved. Did you check that?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Has ST05 shoown you an area to look at?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        Rob Burbank&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        Rob Burbank&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Feb 2007 16:18:30 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973276#M399139</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-21T16:18:30Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973277#M399140</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This code:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
      SELECT ebeln
      ebelp
      vbeln
      vbelp
      loekz
      FROM ekkn INTO TABLE t_ekkn
      FOR ALL ENTRIES IN t_vbap
      WHERE ebeln IN s_pno
      AND vbeln = t_vbap-vgbel
      AND vbelp = t_vbap-vgpos.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;will probably have problems finding an index, particularly if s_pno is empty. Try taking that out of the select (VBELN and VBELP are a secondary index) and then remove entries from the internal table that are not in s_pno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Feb 2007 17:41:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973277#M399140</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-21T17:41:17Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973278#M399141</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Rob!&lt;/P&gt;&lt;P&gt;Which field or which condition should i take out from the select statement.Even if we dont provide any thing in the s_po as you know it will go up with dynamic select statements and find the required index and in this case as the transparent table itself has secondary index V(index name).I know the root cause for killing my time is this select statement(as i've seen in ST05 this cross the time and takes large duration and no other select statement takes as much as time this does).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Coming back to  ur answer how can i take that fields out of select statement(if its vbeln and vbelp then we cannot display the output bcoz it does'nt satisfy my conditions) and if it is Ebeln then there is not much difference.Be specific please&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Feb 2007 11:00:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973278#M399141</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-22T11:00:03Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973279#M399142</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Instead of nested loop use only one loop and read the next internal table using the key field.Check sy-subrc equal to zero,move the data into final internal table itab.&lt;/P&gt;&lt;P&gt;This will improves the performance of the program.Even use if not t_vbak[] is initial.&lt;/P&gt;&lt;P&gt;select vbeln posnr vgbel zzp_lifnr from vbap&lt;/P&gt;&lt;P&gt;into table t_vbap&lt;/P&gt;&lt;P&gt;for all entries in t_vbak&lt;/P&gt;&lt;P&gt;where vbeln = tvbak-vbeln&lt;/P&gt;&lt;P&gt;and werks in s_pnt.&lt;/P&gt;&lt;P&gt;if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;message e000 'no data found'.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Feb 2007 11:57:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973279#M399142</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-22T11:57:34Z</dc:date>
    </item>
    <item>
      <title>Re: Performance tuning</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973280#M399143</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;please go through my coding  and the chain of my questions.The problem regarding the nested loops is solved and the problem here is not with the select statement in t_vbap but in the select statement mentioned above this is having huge data and the problem is the date range mentioned above is not accomidating that memory of 62MB(which it displays in the runtime error and points that the problem is in the above select statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The problem here is purely based on resource management(Memory our operating system has called Malloc(Roll Area Memory distribution done by the Administrator) and time management(this we call as performance as u know).Both are inversly proportional in SAP.So this is tough time for me out here,any ways please go through the Page 1 and 2 and help me out again.Thanks soooo much for spending time.........(this is itself is more to me)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Feb 2007 12:40:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-tuning/m-p/1973280#M399143</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-22T12:40:21Z</dc:date>
    </item>
  </channel>
</rss>

