<?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 problem in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/3627135#M873833</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I hope not, but just for the case, that you declared your internal tables with header line...: DON´T DO THAT, THIS IS VERY OUT-DATED!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 10 Apr 2008 07:36:49 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-04-10T07:36:49Z</dc:date>
    <item>
      <title>Performance problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/3627132#M873830</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Gurus,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In a report I have a performance issue. When I do runtime analysis, it says ABAP takes 85 %. Data base 12 %.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Below routine takes maximum time (12 min). Can you suggest possibilities of improvement in it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM select_other_details .&lt;/P&gt;&lt;P&gt;  DATA: lf_uprice TYPE konv-kwert,&lt;/P&gt;&lt;P&gt;        lf_sdisc  TYPE konv-kwert,&lt;/P&gt;&lt;P&gt;        lf_bdisc  TYPE konv-kwert,&lt;/P&gt;&lt;P&gt;        lf_fright1 TYPE konv-kwert,&lt;/P&gt;&lt;P&gt;        lf_fright2 TYPE konv-kwert,&lt;/P&gt;&lt;P&gt;        lf_bomdisc TYPE konv-kwert.&lt;/P&gt;&lt;P&gt;  DATA: lf_bmeng TYPE vbep-bmeng,&lt;/P&gt;&lt;P&gt;        lf_webaz LIKE marc-webaz,&lt;/P&gt;&lt;P&gt;        lf_plifz LIKE marc-plifz,&lt;/P&gt;&lt;P&gt;        lf_loadtg LIKE tvst-loadtg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH: gt_vbfa, gt_konv.&lt;/P&gt;&lt;P&gt;  IF NOT gt_sail_ord[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT vbelv posnv vbeln posnn vbtyp_n&lt;/P&gt;&lt;P&gt;           FROM vbfa&lt;/P&gt;&lt;P&gt;           INTO TABLE gt_vbfa&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN gt_sail_ord&lt;/P&gt;&lt;P&gt;           WHERE vbelv = gt_sail_ord-vbeln&lt;/P&gt;&lt;P&gt;             AND posnv = gt_sail_ord-posnr.&lt;/P&gt;&lt;P&gt;    SORT gt_vbfa BY vbelv posnv vbtyp_n.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT knumv kposn kschl kwert kbetr&lt;/P&gt;&lt;P&gt;              FROM konv&lt;/P&gt;&lt;P&gt;              INTO TABLE gt_konv&lt;/P&gt;&lt;P&gt;              FOR ALL ENTRIES IN gt_sail_ord&lt;/P&gt;&lt;P&gt;              WHERE knumv = gt_sail_ord-knumv&lt;/P&gt;&lt;P&gt;                AND kposn = gt_sail_ord-posnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DELETE gt_konv WHERE NOT kschl IN r_kschl.&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;           etenr&lt;/P&gt;&lt;P&gt;           edatu&lt;/P&gt;&lt;P&gt;           lifsp&lt;/P&gt;&lt;P&gt;           banfn&lt;/P&gt;&lt;P&gt;           bmeng&lt;/P&gt;&lt;P&gt;           FROM vbep&lt;/P&gt;&lt;P&gt;           INTO CORRESPONDING FIELDS OF TABLE gt_vbep&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN gt_sail_ord&lt;/P&gt;&lt;P&gt;           WHERE vbeln = gt_sail_ord-vbeln AND&lt;/P&gt;&lt;P&gt;                 posnr = gt_sail_ord-posnr.&lt;/P&gt;&lt;P&gt;    SORT gt_vbep BY vbeln posnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT matnr&lt;/P&gt;&lt;P&gt;           werks&lt;/P&gt;&lt;P&gt;           webaz&lt;/P&gt;&lt;P&gt;           plifz&lt;/P&gt;&lt;P&gt;           FROM marc&lt;/P&gt;&lt;P&gt;           INTO TABLE gt_marc&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN gt_sail_ord&lt;/P&gt;&lt;P&gt;           WHERE matnr = gt_sail_ord-matnr AND&lt;/P&gt;&lt;P&gt;                 werks = gt_sail_ord-werks.&lt;/P&gt;&lt;P&gt;    SORT gt_marc BY matnr werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    REFRESH gt_vstel.&lt;/P&gt;&lt;P&gt;    gt_vstel[] = gt_sail_ord[].&lt;/P&gt;&lt;P&gt;    SORT gt_vstel BY vstel.&lt;/P&gt;&lt;P&gt;    DELETE ADJACENT DUPLICATES FROM gt_vstel COMPARING vstel.&lt;/P&gt;&lt;P&gt;    IF NOT gt_vstel[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      SELECT vstel&lt;/P&gt;&lt;P&gt;             loadtg&lt;/P&gt;&lt;P&gt;             FROM tvst&lt;/P&gt;&lt;P&gt;             INTO TABLE gt_tvst&lt;/P&gt;&lt;P&gt;             FOR ALL ENTRIES IN gt_vstel&lt;/P&gt;&lt;P&gt;             WHERE vstel = gt_vstel-vstel.&lt;/P&gt;&lt;P&gt;      SORT gt_tvst BY vstel.&lt;/P&gt;&lt;P&gt;    ENDIF.&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;           kalab&lt;/P&gt;&lt;P&gt;           FROM mska&lt;/P&gt;&lt;P&gt;           INTO TABLE gt_mska&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN gt_sail_ord&lt;/P&gt;&lt;P&gt;           WHERE vbeln = gt_sail_ord-vbeln AND&lt;/P&gt;&lt;P&gt;                 posnr = gt_sail_ord-posnr.&lt;/P&gt;&lt;P&gt;    SORT gt_mska BY vbeln posnr.&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;  IF NOT gt_vbfa[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT vbeln&lt;/P&gt;&lt;P&gt;           posnr&lt;/P&gt;&lt;P&gt;           lfimg&lt;/P&gt;&lt;P&gt;           FROM lips&lt;/P&gt;&lt;P&gt;           INTO TABLE gt_lips&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN gt_vbfa&lt;/P&gt;&lt;P&gt;           WHERE vbeln = gt_vbfa-vbeln AND&lt;/P&gt;&lt;P&gt;                 posnr = gt_vbfa-posnn.&lt;/P&gt;&lt;P&gt;    SORT gt_lips BY vbeln posnr.&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;           fkimg&lt;/P&gt;&lt;P&gt;           FROM vbrp&lt;/P&gt;&lt;P&gt;           INTO TABLE gt_vbrp&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN gt_vbfa&lt;/P&gt;&lt;P&gt;           WHERE vbeln = gt_vbfa-vbeln AND&lt;/P&gt;&lt;P&gt;                 posnr = gt_vbfa-posnn.&lt;/P&gt;&lt;P&gt;    SORT gt_vbrp BY vbeln posnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT vbeln&lt;/P&gt;&lt;P&gt;           fkdat&lt;/P&gt;&lt;P&gt;           FROM vbrk&lt;/P&gt;&lt;P&gt;           INTO TABLE gt_vbrk&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN gt_vbfa&lt;/P&gt;&lt;P&gt;           WHERE vbeln = gt_vbfa-vbeln.&lt;/P&gt;&lt;P&gt;    SORT gt_vbrk BY vbeln.&lt;/P&gt;&lt;P&gt;    DELETE ADJACENT DUPLICATES FROM gt_vbrk COMPARING vbeln.&lt;/P&gt;&lt;P&gt;&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;Performance&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Parallel cursor mechanism&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT gt_sail_ord BY knumv posnr.&lt;/P&gt;&lt;P&gt;  SORT gt_konv BY knumv kposn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT gt_sail_ord INTO wa_sail_ord.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR: wa_vbfa, lf_bmeng.&lt;/P&gt;&lt;P&gt;**Delivery Quantity&lt;/P&gt;&lt;P&gt;    READ TABLE gt_vbfa INTO wa_vbfa WITH KEY&lt;/P&gt;&lt;P&gt;                              vbelv = wa_sail_ord-vbeln&lt;/P&gt;&lt;P&gt;                              posnv = wa_sail_ord-posnr&lt;/P&gt;&lt;P&gt;                              vbtyp_n = 'J'&lt;/P&gt;&lt;P&gt;                              BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      CLEAR gs_lips.&lt;/P&gt;&lt;P&gt;      READ TABLE gt_lips INTO gs_lips&lt;/P&gt;&lt;P&gt;                         WITH KEY vbeln = wa_vbfa-vbeln&lt;/P&gt;&lt;P&gt;                                  posnr = wa_vbfa-posnn&lt;/P&gt;&lt;P&gt;                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        wa_sail_ord-lfimg = gs_lips-lfimg.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR: wa_vbfa.&lt;/P&gt;&lt;P&gt;    READ TABLE gt_vbfa INTO wa_vbfa WITH KEY&lt;/P&gt;&lt;P&gt;                              vbelv = wa_sail_ord-vbeln&lt;/P&gt;&lt;P&gt;                              posnv = wa_sail_ord-posnr&lt;/P&gt;&lt;P&gt;                              vbtyp_n = 'M'&lt;/P&gt;&lt;P&gt;                              BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;***Billed Quantity&lt;/P&gt;&lt;P&gt;      CLEAR gs_vbrp.&lt;/P&gt;&lt;P&gt;      READ TABLE gt_vbrp INTO gs_vbrp&lt;/P&gt;&lt;P&gt;                         WITH KEY vbeln = wa_vbfa-vbeln&lt;/P&gt;&lt;P&gt;                                  posnr = wa_vbfa-posnn&lt;/P&gt;&lt;P&gt;                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        wa_sail_ord-fkimg = gs_vbrp-fkimg.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;***Billing Date&lt;/P&gt;&lt;P&gt;      CLEAR gs_vbrk.&lt;/P&gt;&lt;P&gt;      READ TABLE gt_vbrk INTO gs_vbrk&lt;/P&gt;&lt;P&gt;                         WITH KEY vbeln = wa_vbfa-vbeln&lt;/P&gt;&lt;P&gt;                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        wa_sail_ord-fkdat = gs_vbrk-fkdat.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;**Balance Quantity&lt;/P&gt;&lt;P&gt;    wa_sail_ord-balqty = wa_sail_ord-kwmeng -&lt;/P&gt;&lt;P&gt;                         wa_sail_ord-fkimg.&lt;/P&gt;&lt;P&gt;**customer Request Date&lt;/P&gt;&lt;P&gt;    CLEAR gs_vbep.&lt;/P&gt;&lt;P&gt;    READ TABLE gt_vbep INTO gs_vbep&lt;/P&gt;&lt;P&gt;                       WITH KEY vbeln = wa_sail_ord-vbeln&lt;/P&gt;&lt;P&gt;                                posnr = wa_sail_ord-posnr&lt;/P&gt;&lt;P&gt;                                BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      wa_sail_ord-edatu = gs_vbep-edatu.&lt;/P&gt;&lt;P&gt;      wa_sail_ord-banfn = gs_vbep-banfn.&lt;/P&gt;&lt;P&gt;      wa_sail_ord-lifsp = gs_vbep-lifsp.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;**Status&lt;/P&gt;&lt;P&gt;    IF wa_sail_ord-fkimg = wa_sail_ord-kwmeng.&lt;/P&gt;&lt;P&gt;      wa_sail_ord-stat = 'Completed'.&lt;/P&gt;&lt;P&gt;    ELSEIF wa_sail_ord-lfimg = 0 .&lt;/P&gt;&lt;P&gt;      wa_sail_ord-stat = 'Open'.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      wa_sail_ord-stat = 'Partially Processed'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF wa_sail_ord-abgru &amp;lt;&amp;gt; space.&lt;/P&gt;&lt;P&gt;      CLEAR wa_sail_ord-stat.&lt;/P&gt;&lt;P&gt;      wa_sail_ord-stat = 'Completed'.&lt;/P&gt;&lt;P&gt;      CLEAR wa_abgru_text.&lt;/P&gt;&lt;P&gt;      READ TABLE gt_abgru_text INTO wa_abgru_text&lt;/P&gt;&lt;P&gt;                 WITH KEY abgru = wa_sail_ord-abgru&lt;/P&gt;&lt;P&gt;                          BINARY SEARCH.&lt;/P&gt;&lt;P&gt;      wa_sail_ord-abgru_text = wa_abgru_text-bezei.&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;**Confirmation Date&lt;/P&gt;&lt;P&gt;    CLEAR gs_vbep.&lt;/P&gt;&lt;P&gt;    LOOP AT gt_vbep INTO gs_vbep&lt;/P&gt;&lt;P&gt;                    WHERE vbeln = wa_sail_ord-vbeln AND&lt;/P&gt;&lt;P&gt;                          posnr = wa_sail_ord-posnr.&lt;/P&gt;&lt;P&gt;      lf_bmeng = lf_bmeng + gs_vbep-bmeng.&lt;/P&gt;&lt;P&gt;      wa_sail_ord-cnfdt = gs_vbep-edatu.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Performance !!!&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    DELETE gt_vbep WHERE vbeln = wa_sail_ord-vbeln AND&lt;/P&gt;&lt;P&gt;                         posnr = wa_sail_ord-posnr.&lt;/P&gt;&lt;P&gt;**if confirmation quantity is 0 no need to display&lt;/P&gt;&lt;P&gt;**the confirmation date.&lt;/P&gt;&lt;P&gt;    IF lf_bmeng IS INITIAL.&lt;/P&gt;&lt;P&gt;      CLEAR wa_sail_ord-cnfdt.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**Promised Date&lt;/P&gt;&lt;P&gt;    IF wa_sail_ord-cnfdt IS INITIAL OR&lt;/P&gt;&lt;P&gt;       lf_bmeng NE wa_sail_ord-kwmeng.&lt;/P&gt;&lt;P&gt;      wa_sail_ord-vdatu = wa_sail_ord-/rbc2/yv_prodat.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR: lf_uprice, lf_sdisc, lf_bdisc,&lt;/P&gt;&lt;P&gt;           lf_fright1, lf_fright2, wa_konv,&lt;/P&gt;&lt;P&gt;           lf_bomdisc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT gt_konv INTO wa_konv&lt;/P&gt;&lt;P&gt;                    FROM gf_index1&lt;/P&gt;&lt;P&gt;                    WHERE knumv = wa_sail_ord-knumv&lt;/P&gt;&lt;P&gt;                      AND kposn = wa_sail_ord-posnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR gf_index1.&lt;/P&gt;&lt;P&gt;      gf_index1 = sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF wa_konv-kschl = 'ZPSP' OR&lt;/P&gt;&lt;P&gt;         wa_konv-kschl = 'ZOSP' OR&lt;/P&gt;&lt;P&gt;         wa_konv-kschl = 'ZPNN' OR&lt;/P&gt;&lt;P&gt;         wa_konv-kschl = 'ZPNP' OR&lt;/P&gt;&lt;P&gt;         wa_konv-kschl = 'ZDOO'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF wa_sail_ord-waerk = 'JPY'.&lt;/P&gt;&lt;P&gt;          wa_konv-kwert = wa_konv-kwert * 100.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        lf_uprice = lf_uprice + wa_konv-kwert.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF wa_konv-kschl = 'ZBOM'.&lt;/P&gt;&lt;P&gt;        lf_bomdisc = wa_konv-kwert.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF wa_sail_ord-waerk = 'JPY'.&lt;/P&gt;&lt;P&gt;          lf_bomdisc = lf_bomdisc * 100.&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;      IF wa_konv-kschl = 'ZSPD'.&lt;/P&gt;&lt;P&gt;        lf_sdisc = wa_konv-kwert.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF wa_sail_ord-waerk = 'JPY'.&lt;/P&gt;&lt;P&gt;          lf_sdisc = lf_sdisc * 100.&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;      IF wa_konv-kschl = 'ZBOO'.&lt;/P&gt;&lt;P&gt;        lf_bdisc = wa_konv-kwert.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF wa_sail_ord-waerk = 'JPY'.&lt;/P&gt;&lt;P&gt;          lf_bdisc = lf_bdisc * 100.&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;      IF wa_konv-kschl = 'ZF01'.&lt;/P&gt;&lt;P&gt;        lf_fright1 = wa_konv-kwert.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF wa_sail_ord-waerk = 'JPY'.&lt;/P&gt;&lt;P&gt;          lf_fright1 = lf_fright1 * 100.&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;      IF wa_konv-kschl = 'ZF02'.&lt;/P&gt;&lt;P&gt;        lf_fright2 = wa_konv-kwert.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF wa_sail_ord-waerk = 'JPY'.&lt;/P&gt;&lt;P&gt;          lf_fright2 = lf_fright2 * 100.&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;    ENDLOOP.&lt;/P&gt;&lt;P&gt;***Unit Price&lt;/P&gt;&lt;P&gt;    IF wa_sail_ord-kwmeng IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      wa_sail_ord-u_price = lf_uprice / wa_sail_ord-kwmeng .&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF wa_sail_ord-waerk = 'JPY'.&lt;/P&gt;&lt;P&gt;      PERFORM round USING wa_sail_ord-u_price gf_price.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;***Special Discount&lt;/P&gt;&lt;P&gt;    IF wa_sail_ord-kwmeng IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      wa_sail_ord-s_disc = ( lf_sdisc / wa_sail_ord-kwmeng ) *&lt;/P&gt;&lt;P&gt;                              wa_sail_ord-balqty  + lf_bomdisc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF wa_sail_ord-waerk = 'JPY'.&lt;/P&gt;&lt;P&gt;        PERFORM round USING wa_sail_ord-s_disc gf_price.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;***Bonus Discount&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      wa_sail_ord-b_disc = ( lf_bdisc / wa_sail_ord-kwmeng ) *&lt;/P&gt;&lt;P&gt;                              wa_sail_ord-balqty .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF wa_sail_ord-waerk = 'JPY'.&lt;/P&gt;&lt;P&gt;        PERFORM round USING wa_sail_ord-b_disc gf_price.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;***Freight1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      wa_sail_ord-fright1 = ( lf_fright1 / wa_sail_ord-kwmeng ) *&lt;/P&gt;&lt;P&gt;                              wa_sail_ord-balqty .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF wa_sail_ord-waerk = 'JPY'.&lt;/P&gt;&lt;P&gt;        PERFORM round USING wa_sail_ord-fright1 gf_price.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;***Freight2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      wa_sail_ord-fright2 = ( lf_fright2 / wa_sail_ord-kwmeng ) *&lt;/P&gt;&lt;P&gt;                              wa_sail_ord-balqty .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF wa_sail_ord-waerk = 'JPY'.&lt;/P&gt;&lt;P&gt;        PERFORM round USING wa_sail_ord-fright2 gf_price.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;***Total Amount for Balance Quantity&lt;/P&gt;&lt;P&gt;    wa_sail_ord-amt_bal_qty = ( wa_sail_ord-u_price  *&lt;/P&gt;&lt;P&gt;                                wa_sail_ord-balqty ) +&lt;/P&gt;&lt;P&gt;                                wa_sail_ord-s_disc   +&lt;/P&gt;&lt;P&gt;                                wa_sail_ord-b_disc   +&lt;/P&gt;&lt;P&gt;                                wa_sail_ord-fright1  +&lt;/P&gt;&lt;P&gt;                                wa_sail_ord-fright2  .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT wa_sail_ord-/rbc2/yv_prodat IS INITIAL.&lt;/P&gt;&lt;P&gt;      IF wa_sail_ord-edatu = wa_sail_ord-/rbc2/yv_prodat AND&lt;/P&gt;&lt;P&gt;         wa_sail_ord-auart = 'ZSO'.&lt;/P&gt;&lt;P&gt;        wa_sail_ord-crd = 'Y'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        wa_sail_ord-crd = 'N'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      CLEAR : lf_webaz,lf_plifz,lf_loadtg, gs_marc.&lt;/P&gt;&lt;P&gt;      READ TABLE gt_marc INTO gs_marc&lt;/P&gt;&lt;P&gt;                         WITH KEY matnr = wa_sail_ord-matnr&lt;/P&gt;&lt;P&gt;                                  werks = wa_sail_ord-werks&lt;/P&gt;&lt;P&gt;                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        lf_webaz = gs_marc-webaz.&lt;/P&gt;&lt;P&gt;        lf_plifz = gs_marc-plifz.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;loading time&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CLEAR gs_tvst.&lt;/P&gt;&lt;P&gt;      READ TABLE gt_tvst INTO gs_tvst&lt;/P&gt;&lt;P&gt;                         WITH KEY vstel = wa_sail_ord-vstel&lt;/P&gt;&lt;P&gt;                                  BINARY SEARCH.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        lf_loadtg = gs_tvst-loadtg.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM get_promised_date&lt;/P&gt;&lt;P&gt;              USING lf_webaz&lt;/P&gt;&lt;P&gt;                    lf_plifz&lt;/P&gt;&lt;P&gt;                    lf_loadtg&lt;/P&gt;&lt;P&gt;                    wa_sail_ord-audat&lt;/P&gt;&lt;P&gt;                    wa_sail_ord-/rbc2/yv_prodat.&lt;/P&gt;&lt;P&gt;      IF wa_sail_ord-edatu GE wa_sail_ord-/rbc2/yv_prodat AND&lt;/P&gt;&lt;P&gt;         wa_sail_ord-auart = 'ZSO'.&lt;/P&gt;&lt;P&gt;        wa_sail_ord-crd = 'Y'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        wa_sail_ord-crd = 'N'.&lt;/P&gt;&lt;P&gt;      ENDIF.&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;    CLEAR: wa_vbfa.&lt;/P&gt;&lt;P&gt;    READ TABLE gt_vbfa INTO wa_vbfa WITH KEY&lt;/P&gt;&lt;P&gt;                              vbelv = wa_sail_ord-vbeln&lt;/P&gt;&lt;P&gt;                              posnv = wa_sail_ord-posnr&lt;/P&gt;&lt;P&gt;                              vbtyp_n = 'V'&lt;/P&gt;&lt;P&gt;                              BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      wa_sail_ord-po_number = wa_vbfa-vbeln.&lt;/P&gt;&lt;P&gt;      wa_sail_ord-posnn = wa_vbfa-posnn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR gf_elikz.&lt;/P&gt;&lt;P&gt;      PERFORM convertion USING wa_sail_ord-po_number.&lt;/P&gt;&lt;P&gt;      PERFORM convertion USING wa_sail_ord-posnn.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE elikz&lt;/P&gt;&lt;P&gt;             FROM ekpo&lt;/P&gt;&lt;P&gt;             INTO gf_elikz&lt;/P&gt;&lt;P&gt;             WHERE ebeln = wa_sail_ord-po_number AND&lt;/P&gt;&lt;P&gt;                   ebelp = wa_sail_ord-posnn.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0 AND&lt;/P&gt;&lt;P&gt;         gf_elikz = 'X'.&lt;/P&gt;&lt;P&gt;        wa_sail_ord-elikz = 'Y'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Customer short name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR wa_kunnr_name.&lt;/P&gt;&lt;P&gt;    READ TABLE gt_kunnr_name INTO wa_kunnr_name&lt;/P&gt;&lt;P&gt;                             WITH KEY kunnr = wa_sail_ord-kunnr&lt;/P&gt;&lt;P&gt;                                      BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      wa_sail_ord-sortl = wa_kunnr_name-sortl.&lt;/P&gt;&lt;P&gt;    ENDIF.&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;Sales order stock&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR : wa_sail_ord-kalab,gs_mska.&lt;/P&gt;&lt;P&gt;    READ TABLE gt_mska INTO gs_mska&lt;/P&gt;&lt;P&gt;                       WITH KEY vbeln = wa_sail_ord-vbeln&lt;/P&gt;&lt;P&gt;                                posnr = wa_sail_ord-posnr&lt;/P&gt;&lt;P&gt;                                BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      wa_sail_ord-kalab = gs_mska-kalab.&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;    MODIFY gt_sail_ord FROM wa_sail_ord&lt;/P&gt;&lt;P&gt;              TRANSPORTING lfimg fkimg balqty edatu lifsp stat&lt;/P&gt;&lt;P&gt;                           abgru_text cnfdt&lt;/P&gt;&lt;P&gt;                           u_price s_disc b_disc fright1 fright2&lt;/P&gt;&lt;P&gt;                           amt_bal_qty fkdat banfn crd vdatu&lt;/P&gt;&lt;P&gt;                           po_number posnn kalab elikz sortl.&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;helpful answers will be rewarded.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Apr 2008 07:18:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/3627132#M873830</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-10T07:18:10Z</dc:date>
    </item>
    <item>
      <title>Re: Performance problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/3627133#M873831</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I guess you are executing this FORM.routine while looping over the records contained in global internal table gt_sail_ord, right?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If so, you have to be aware of the fact, that for each records processed (gt_sail_ord), several critical SELECT statements are executed. Sorry, but this just can´t be high-performance: Let´s assume you have 10000 records in gt_sail_ord, this means, that 10000 times 10 SELECT statements have to be executed by the ABAP processor and the database!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please, make use of internal tables, which keep all the data you are now retrieving from database directly, and read the requested data from these internal tables! Internal table (with good keys) are much quicker than selecting all the data from database&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Apr 2008 07:32:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/3627133#M873831</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-10T07:32:07Z</dc:date>
    </item>
    <item>
      <title>Re: Performance problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/3627134#M873832</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Another aspect:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the internal tables you are already using do not seem to have a good key, perhaps these tables are even standard tables. Please make use of at least SORTED of even HASHED tables!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Apr 2008 07:34:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/3627134#M873832</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-10T07:34:33Z</dc:date>
    </item>
    <item>
      <title>Re: Performance problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/3627135#M873833</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I hope not, but just for the case, that you declared your internal tables with header line...: DON´T DO THAT, THIS IS VERY OUT-DATED!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Apr 2008 07:36:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/3627135#M873833</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-10T07:36:49Z</dc:date>
    </item>
    <item>
      <title>Re: Performance problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/3627136#M873834</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mike,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry, this form is not in any loop. Therefore all the expensive SELECT statements are outside the loop on GT_SAIL_ORD&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Apr 2008 08:37:38 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/3627136#M873834</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-10T08:37:38Z</dc:date>
    </item>
    <item>
      <title>Re: Performance problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/3627137#M873835</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;OK, sorry, my fault!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Anyway: I found the statement&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;READ TABLE gt_vbfa INTO wa_vbfa WITH KEY
vbelv = wa_sail_ord-vbeln
posnv = wa_sail_ord-posnr
vbtyp_n = 'J'
BINARY SEARCH.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How about using a sorted or hashed table? Reading accesses againts sorted or hashed tables are much quicker than reading from a standard table without a real table key! I am talking about an performance improvement of factor 10 or higher at least!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Another suggestion: The usage of SQL JOINs instead of FOR ALL ENTRIES IN&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Mike Schernbeck on Apr 10, 2008 10:58 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Apr 2008 08:57:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/3627137#M873835</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-10T08:57:02Z</dc:date>
    </item>
    <item>
      <title>Re: Performance problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/3627138#M873836</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;When i went thru the code i found some minor glitches..let me explain...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select queries...&lt;/P&gt;&lt;P&gt;1.IF NOT gt_sail_ord[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT vbelv posnv vbeln posnn vbtyp_n&lt;/P&gt;&lt;P&gt;FROM vbfa&lt;/P&gt;&lt;P&gt;INTO TABLE gt_vbfa&lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN gt_sail_ord&lt;/P&gt;&lt;P&gt;WHERE vbelv = gt_sail_ord-vbeln&lt;/P&gt;&lt;P&gt;AND posnv = gt_sail_ord-posnr.&lt;/P&gt;&lt;P&gt;SORT gt_vbfa BY vbelv posnv vbtyp_n.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;then again using gt_vbfa u r getting values from tableS lips and vbrp&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT gt_vbfa[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT vbeln&lt;/P&gt;&lt;P&gt;posnr&lt;/P&gt;&lt;P&gt;lfimg&lt;/P&gt;&lt;P&gt;FROM lips&lt;/P&gt;&lt;P&gt;INTO TABLE gt_lips&lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN gt_vbfa&lt;/P&gt;&lt;P&gt;WHERE vbeln = gt_vbfa-vbeln AND&lt;/P&gt;&lt;P&gt;posnr = gt_vbfa-posnn.&lt;/P&gt;&lt;P&gt;SORT gt_lips BY vbeln posnr.&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;fkimg&lt;/P&gt;&lt;P&gt;FROM vbrp&lt;/P&gt;&lt;P&gt;INTO TABLE gt_vbrp&lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN gt_vbfa&lt;/P&gt;&lt;P&gt;WHERE vbeln = gt_vbfa-vbeln AND&lt;/P&gt;&lt;P&gt;posnr = gt_vbfa-posnn.&lt;/P&gt;&lt;P&gt;SORT gt_vbrp BY vbeln posnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;so these three can be reduced to 2 select queries....like &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;first join vbfa &amp;amp; lips&lt;/P&gt;&lt;P&gt;select vbeln&lt;/P&gt;&lt;P&gt;posnr&lt;/P&gt;&lt;P&gt;lfimg&lt;/P&gt;&lt;P&gt;from vbfa as vb inner join lips as lp&lt;/P&gt;&lt;P&gt;on lp&lt;SUB&gt;vbeln = vb&lt;/SUB&gt;vbeln and&lt;/P&gt;&lt;P&gt;   lp&lt;SUB&gt;posnr = vb&lt;/SUB&gt;posnr&lt;/P&gt;&lt;P&gt;into table gt_lips&lt;/P&gt;&lt;P&gt;for all entries in gt_sail_ord&lt;/P&gt;&lt;P&gt;where vb~vbeln = gt_sail_ord-vbeln AND&lt;/P&gt;&lt;P&gt;vb~posnr = gt_sail_ord-posnn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;similarly join vbrp and vbfa ...as i can see in below code u r doing some processing...Now,,&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------" /&gt;&lt;P&gt;ur code----&lt;/P&gt;&lt;HR originaltext="-------------------" /&gt;&lt;P&gt;READ TABLE gt_vbfa INTO wa_vbfa WITH KEY&lt;/P&gt;&lt;P&gt;vbelv = wa_sail_ord-vbeln&lt;/P&gt;&lt;P&gt;posnv = wa_sail_ord-posnr&lt;/P&gt;&lt;P&gt;vbtyp_n = 'J'&lt;/P&gt;&lt;P&gt;BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;CLEAR gs_lips.&lt;/P&gt;&lt;P&gt;endif.. &lt;/P&gt;&lt;P&gt;READ TABLE gt_lips INTO gs_lips&lt;/P&gt;&lt;P&gt;WITH KEY vbeln = wa_vbfa-vbeln&lt;/P&gt;&lt;P&gt;posnr = wa_vbfa-posnn&lt;/P&gt;&lt;P&gt;BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;wa_sail_ord-lfimg = gs_lips-lfimg.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="------------------------------------" /&gt;&lt;P&gt;This can be reduced like....&lt;/P&gt;&lt;P&gt;READ TABLE gt_lips INTO gs_lips&lt;/P&gt;&lt;P&gt;WITH KEY vbeln = wa_vbfa-vbeln&lt;/P&gt;&lt;P&gt;posnr = wa_vbfa-posnn&lt;/P&gt;&lt;P&gt;BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;wa_sail_ord-lfimg = gs_lips-lfimg.&lt;/P&gt;&lt;P&gt;ENDIF. .....sINCE in gt_lips we only have unique records from the select query using join&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;similarly the below code can also be changed like....&lt;/P&gt;&lt;P&gt;READ TABLE gt_vbrp INTO gs_vbrp&lt;/P&gt;&lt;P&gt;WITH KEY vbeln = wa_vbfa-vbeln&lt;/P&gt;&lt;P&gt;posnr = wa_vbfa-posnn&lt;/P&gt;&lt;P&gt;BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;wa_sail_ord-fkimg = gs_vbrp-fkimg.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try this out ..and rearrange ur code, in this u will definitely find a solution....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if found useful.....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;ABAPer 007.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Apr 2008 09:40:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/3627138#M873836</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-10T09:40:26Z</dc:date>
    </item>
  </channel>
</rss>

