<?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 Performance in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance/m-p/1588711#M265190</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can any one suggest performance tuning for this program?&lt;/P&gt;&lt;P&gt;It is taking long time to display the results. This is a batch program we have to run every night and check whole database. Especially it's taking long time with PERFORM get_doc_num_of_billing_doc when quering bsad table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  zpxv0_w_005&lt;/P&gt;&lt;P&gt;        NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;        MESSAGE-ID zw&lt;/P&gt;&lt;P&gt;        LINE-SIZE 170&lt;/P&gt;&lt;P&gt;        LINE-COUNT 58 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       zdepmgmt, "WRM Dependency Management&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        qmel    , "Quality Notification&lt;/P&gt;&lt;P&gt;        vbak    , "Sales Document: Header Data&lt;/P&gt;&lt;P&gt;        vbfa    , "Sales Document Flow&lt;/P&gt;&lt;P&gt;        vbuk    , "Sales Document: Header Status and Administrative Data&lt;/P&gt;&lt;P&gt;        vbrk    , "Billing Document: Header Data&lt;/P&gt;&lt;P&gt;        bsad    , "Accounting: Secondary Index for Customers (Cleared Items)&lt;/P&gt;&lt;P&gt;        bseg    . "Accounting Document Segment&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF iords OCCURS 0,&lt;/P&gt;&lt;P&gt;        aufnr    LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;P&gt;        phasenum LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;P&gt;        phase    LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;P&gt;        priority LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;P&gt;        ustat    LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;P&gt;        qmnum(20),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       qmnum    LIKE   qmel-qmnum,      "Notification Number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        vbeln    LIKE   qmel-vbeln,&lt;/P&gt;&lt;P&gt;        qmart    LIKE   qmel-qmart,      "Notification Type&lt;/P&gt;&lt;P&gt;        ernam    LIKE   qmel-ernam,      "Name of Person who Created the Object&lt;/P&gt;&lt;P&gt;      END OF iords.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*DATA : BEGIN OF del_tab OCCURS 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        bstnk(20),&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*END OF del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF idp_ords OCCURS 0,&lt;/P&gt;&lt;P&gt;        vbeln    LIKE   vbak-vbeln,&lt;/P&gt;&lt;P&gt;        bstnk    LIKE   vbak-bstnk,&lt;/P&gt;&lt;P&gt;        auart    LIKE   vbak-auart,&lt;/P&gt;&lt;P&gt;        netwr    LIKE   vbak-netwr,&lt;/P&gt;&lt;P&gt;        aufnr    LIKE   qmel-aufnr,&lt;/P&gt;&lt;P&gt;        qmnum    LIKE   vbak-qmnum,      "Notification Number&lt;/P&gt;&lt;P&gt;        qmart    LIKE   qmel-qmart,      "Notification Type&lt;/P&gt;&lt;P&gt;        ernam    LIKE   qmel-ernam,      "Name of Person who Created the Object&lt;/P&gt;&lt;P&gt;      END OF idp_ords.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF ibl_doc OCCURS 0,&lt;/P&gt;&lt;P&gt;        vbeln LIKE vbfa-vbeln,&lt;/P&gt;&lt;P&gt;        END OF ibl_doc.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF icl_doc OCCURS 0,&lt;/P&gt;&lt;P&gt;         vbeln LIKE vbrk-vbeln,&lt;/P&gt;&lt;P&gt;      END OF icl_doc.&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF inum_cl_doc OCCURS 0,&lt;/P&gt;&lt;P&gt;         augbl LIKE bsad-augbl,&lt;/P&gt;&lt;P&gt;         zuonr LIKE bsad-zuonr,&lt;/P&gt;&lt;P&gt;         vbeln LIKE bsad-vbeln,&lt;/P&gt;&lt;P&gt;       END OF inum_cl_doc.&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF iamt_cld OCCURS 0,&lt;/P&gt;&lt;P&gt;         vbeln LIKE bseg-vbeln,&lt;/P&gt;&lt;P&gt;         wrbtr LIKE bseg-wrbtr,&lt;/P&gt;&lt;P&gt;       END OF iamt_cld.&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF ilist OCCURS 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       aufnr    LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       phasenum LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       phase    LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       priority LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ustat    LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        qmnum(20),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       qmnum    LIKE   qmel-qmnum,      "Notification Number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        vbeln    LIKE   qmel-vbeln,&lt;/P&gt;&lt;P&gt;        qmart    LIKE   qmel-qmart,      "Notification Type&lt;/P&gt;&lt;P&gt;        ernam    LIKE   qmel-ernam,      "Name of Person who Created the Object&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       vbeln    LIKE   vbak-vbeln,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        bstnk    LIKE   vbak-bstnk,&lt;/P&gt;&lt;P&gt;        auart    LIKE   vbak-auart,&lt;/P&gt;&lt;P&gt;        netwr    LIKE   vbak-netwr,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       aufnr    LIKE   qmel-aufnr,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       qmnum    LIKE   vbak-qmnum,      "Notification Number&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       qmart    LIKE   qmel-qmart,      "Notification Type&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ernam    LIKE   qmel-ernam,      "Name of Person who Created the Object&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;END OF ilist.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM get_pm_orders.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM get_dp_orders.&lt;/P&gt;&lt;P&gt;  PERFORM get_bl_doc.&lt;/P&gt;&lt;P&gt;  PERFORM get_doc_num_of_billing_doc .&lt;/P&gt;&lt;P&gt;  PERFORM amount_cleared.&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 list_output.&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  get_pm_orders&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;      text&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&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 get_pm_orders .&lt;/P&gt;&lt;P&gt;  SELECT  a~aufnr&lt;/P&gt;&lt;P&gt;          a~phasenum&lt;/P&gt;&lt;P&gt;          a~phase&lt;/P&gt;&lt;P&gt;          a~priority&lt;/P&gt;&lt;P&gt;          a~ustat&lt;/P&gt;&lt;P&gt;          b~qmnum&lt;/P&gt;&lt;P&gt;          b~qmart&lt;/P&gt;&lt;P&gt;          b~ernam&lt;/P&gt;&lt;P&gt;          INTO TABLE iords&lt;/P&gt;&lt;P&gt;  FROM zdepmgmt AS a INNER JOIN  qmel AS b&lt;/P&gt;&lt;P&gt;  ON ( a&lt;SUB&gt;aufnr = b&lt;/SUB&gt;aufnr )&lt;/P&gt;&lt;P&gt;  WHERE a&lt;SUB&gt;aufnr = b&lt;/SUB&gt;aufnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT iords BY qmnum .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT iords.&lt;/P&gt;&lt;P&gt;    SHIFT iords-qmnum LEFT DELETING LEADING '0'. MODIFY iords.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_pm_orders&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  get_dp_orders&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;      text&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&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 get_dp_orders .&lt;/P&gt;&lt;P&gt;*Then look up the deposit order (vbak-vbeln) using the notification number (qmel-qmnum) where qmel-qmnum = vbak-bstnk (Customer Purchase Order).&lt;/P&gt;&lt;P&gt;  SELECT&lt;/P&gt;&lt;P&gt;        vbeln&lt;/P&gt;&lt;P&gt;        bstnk&lt;/P&gt;&lt;P&gt;        auart&lt;/P&gt;&lt;P&gt;        netwr&lt;/P&gt;&lt;P&gt;        qmnum&lt;/P&gt;&lt;P&gt;        FROM vbak&lt;/P&gt;&lt;P&gt;        INTO  TABLE idp_ords .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT idp_ords.&lt;/P&gt;&lt;P&gt;    SHIFT idp_ords-bstnk LEFT DELETING LEADING '0'. MODIFY idp_ords.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT idp_ords.&lt;/P&gt;&lt;P&gt;    READ TABLE iords WITH KEY qmnum = idp_ords-bstnk&lt;/P&gt;&lt;P&gt;                                              BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE iords-aufnr     TO ilist-aufnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE iords-phasenum  TO ilist-phasenum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE iords-phase     TO ilist-phase.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE iords-priority  TO ilist-priority.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE iords-ustat     TO ilist-ustat.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE iords-qmnum     TO ilist-qmnum.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MOVE idp_ords-vbeln  TO ilist-vbeln.&lt;/P&gt;&lt;P&gt;      MOVE idp_ords-qmart  TO ilist-qmart.&lt;/P&gt;&lt;P&gt;      MOVE idp_ords-ernam  TO ilist-ernam.&lt;/P&gt;&lt;P&gt;      MOVE idp_ords-bstnk  TO ilist-bstnk.&lt;/P&gt;&lt;P&gt;      MOVE idp_ords-auart  TO ilist-auart.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF ilist IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      APPEND ilist.&lt;/P&gt;&lt;P&gt;      CLEAR ilist.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT ilist BY vbeln .&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_dp_orders&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  get_bl_doc&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;      text&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&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 get_bl_doc .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT  vbeln FROM vbfa INTO TABLE ibl_doc .&lt;/P&gt;&lt;P&gt;  SORT ibl_doc BY vbeln .&lt;/P&gt;&lt;P&gt;  LOOP AT ilist.&lt;/P&gt;&lt;P&gt;    READ TABLE ibl_doc WITH KEY vbeln = ilist-vbeln&lt;/P&gt;&lt;P&gt;                            BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    CHECK sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;    DELETE ilist.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_bl_orders&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  get_doc_num_of_billing_doc&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;      text&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&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 get_doc_num_of_billing_doc .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT vbeln FROM vbrk INTO  TABLE icl_doc.&lt;/P&gt;&lt;P&gt;  SORT icl_doc BY vbeln .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT ilist.&lt;/P&gt;&lt;P&gt;    READ TABLE icl_doc WITH KEY vbeln = ilist-vbeln&lt;/P&gt;&lt;P&gt;                            BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    CHECK sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;    DELETE ilist.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT ilist.&lt;/P&gt;&lt;P&gt;    SHIFT ilist-vbeln LEFT DELETING LEADING '0'. MODIFY ilist.&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;  SELECT augbl zuonr FROM bsad INTO  TABLE inum_cl_doc.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             where vbeln ne ''.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DELETE inum_cl_doc WHERE vbeln = ''.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT inum_cl_doc BY zuonr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT inum_cl_doc.&lt;/P&gt;&lt;P&gt;    SHIFT inum_cl_doc-zuonr LEFT DELETING LEADING '0'. MODIFY inum_cl_doc.&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 ilist.&lt;/P&gt;&lt;P&gt;    READ TABLE inum_cl_doc WITH KEY zuonr = ilist-vbeln&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;      WRITE : 'BILLING DOCUMENT EXISTS IE BILLING DOCUMENT CLEARED'.&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;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_doc_num_of_billing_doc&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  amount_cleared&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;      text&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&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 amount_cleared .&lt;/P&gt;&lt;P&gt;  SELECT vbeln wrbtr FROM bseg INTO  TABLE iamt_cld .&lt;/P&gt;&lt;P&gt;  SORT iamt_cld BY vbeln .&lt;/P&gt;&lt;P&gt;  LOOP AT iamt_cld.&lt;/P&gt;&lt;P&gt;    SHIFT iamt_cld-vbeln LEFT DELETING LEADING '0'. MODIFY iamt_cld.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT ilist.&lt;/P&gt;&lt;P&gt;    READ TABLE iamt_cld WITH KEY vbeln = ilist-vbeln&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;      IF ilist-netwr EQ iamt_cld-wrbtr.&lt;/P&gt;&lt;P&gt;        WRITE : 'Engineering Advance sucess'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        WRITE : 'Engineering Advance Error'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;      write &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'nothing found'.&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;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " amount_cleared&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  list_output&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;      text&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&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 list_output .&lt;/P&gt;&lt;P&gt;  LOOP AT iords.&lt;/P&gt;&lt;P&gt;    WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt;&lt;/P&gt;&lt;P&gt;    iords-aufnr,&lt;/P&gt;&lt;P&gt;             iords-phasenum,&lt;/P&gt;&lt;P&gt;             iords-phase,&lt;/P&gt;&lt;P&gt;             iords-priority,&lt;/P&gt;&lt;P&gt;             iords-ustat,&lt;/P&gt;&lt;P&gt;             iords-qmnum,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            iords-bstkd_m,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;             iords-qmart,&lt;/P&gt;&lt;P&gt;             iords-ernam .&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SKIP. SKIP.&lt;/P&gt;&lt;P&gt;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; '&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; idp_ords &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;'.&lt;/P&gt;&lt;P&gt;  LOOP AT idp_ords.&lt;/P&gt;&lt;P&gt;    IF idp_ords-bstnk = '9809'.&lt;/P&gt;&lt;P&gt;      WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; idp_ords-vbeln,&lt;/P&gt;&lt;P&gt;               idp_ords-bstnk,&lt;/P&gt;&lt;P&gt;               idp_ords-auart.&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;  SKIP. SKIP.&lt;/P&gt;&lt;P&gt;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; '&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; ilist &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT ilist.&lt;/P&gt;&lt;P&gt;    WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'ilist',&lt;/P&gt;&lt;P&gt;              ilist-qmnum.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " list_output&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 09 Oct 2006 16:41:54 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2006-10-09T16:41:54Z</dc:date>
    <item>
      <title>Performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance/m-p/1588711#M265190</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can any one suggest performance tuning for this program?&lt;/P&gt;&lt;P&gt;It is taking long time to display the results. This is a batch program we have to run every night and check whole database. Especially it's taking long time with PERFORM get_doc_num_of_billing_doc when quering bsad table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  zpxv0_w_005&lt;/P&gt;&lt;P&gt;        NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;        MESSAGE-ID zw&lt;/P&gt;&lt;P&gt;        LINE-SIZE 170&lt;/P&gt;&lt;P&gt;        LINE-COUNT 58 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       zdepmgmt, "WRM Dependency Management&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        qmel    , "Quality Notification&lt;/P&gt;&lt;P&gt;        vbak    , "Sales Document: Header Data&lt;/P&gt;&lt;P&gt;        vbfa    , "Sales Document Flow&lt;/P&gt;&lt;P&gt;        vbuk    , "Sales Document: Header Status and Administrative Data&lt;/P&gt;&lt;P&gt;        vbrk    , "Billing Document: Header Data&lt;/P&gt;&lt;P&gt;        bsad    , "Accounting: Secondary Index for Customers (Cleared Items)&lt;/P&gt;&lt;P&gt;        bseg    . "Accounting Document Segment&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF iords OCCURS 0,&lt;/P&gt;&lt;P&gt;        aufnr    LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;P&gt;        phasenum LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;P&gt;        phase    LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;P&gt;        priority LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;P&gt;        ustat    LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;P&gt;        qmnum(20),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       qmnum    LIKE   qmel-qmnum,      "Notification Number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        vbeln    LIKE   qmel-vbeln,&lt;/P&gt;&lt;P&gt;        qmart    LIKE   qmel-qmart,      "Notification Type&lt;/P&gt;&lt;P&gt;        ernam    LIKE   qmel-ernam,      "Name of Person who Created the Object&lt;/P&gt;&lt;P&gt;      END OF iords.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*DATA : BEGIN OF del_tab OCCURS 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        bstnk(20),&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*END OF del_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF idp_ords OCCURS 0,&lt;/P&gt;&lt;P&gt;        vbeln    LIKE   vbak-vbeln,&lt;/P&gt;&lt;P&gt;        bstnk    LIKE   vbak-bstnk,&lt;/P&gt;&lt;P&gt;        auart    LIKE   vbak-auart,&lt;/P&gt;&lt;P&gt;        netwr    LIKE   vbak-netwr,&lt;/P&gt;&lt;P&gt;        aufnr    LIKE   qmel-aufnr,&lt;/P&gt;&lt;P&gt;        qmnum    LIKE   vbak-qmnum,      "Notification Number&lt;/P&gt;&lt;P&gt;        qmart    LIKE   qmel-qmart,      "Notification Type&lt;/P&gt;&lt;P&gt;        ernam    LIKE   qmel-ernam,      "Name of Person who Created the Object&lt;/P&gt;&lt;P&gt;      END OF idp_ords.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF ibl_doc OCCURS 0,&lt;/P&gt;&lt;P&gt;        vbeln LIKE vbfa-vbeln,&lt;/P&gt;&lt;P&gt;        END OF ibl_doc.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF icl_doc OCCURS 0,&lt;/P&gt;&lt;P&gt;         vbeln LIKE vbrk-vbeln,&lt;/P&gt;&lt;P&gt;      END OF icl_doc.&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF inum_cl_doc OCCURS 0,&lt;/P&gt;&lt;P&gt;         augbl LIKE bsad-augbl,&lt;/P&gt;&lt;P&gt;         zuonr LIKE bsad-zuonr,&lt;/P&gt;&lt;P&gt;         vbeln LIKE bsad-vbeln,&lt;/P&gt;&lt;P&gt;       END OF inum_cl_doc.&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF iamt_cld OCCURS 0,&lt;/P&gt;&lt;P&gt;         vbeln LIKE bseg-vbeln,&lt;/P&gt;&lt;P&gt;         wrbtr LIKE bseg-wrbtr,&lt;/P&gt;&lt;P&gt;       END OF iamt_cld.&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF ilist OCCURS 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       aufnr    LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       phasenum LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       phase    LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       priority LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ustat    LIKE   zdepmgmt-aufnr,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        qmnum(20),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       qmnum    LIKE   qmel-qmnum,      "Notification Number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        vbeln    LIKE   qmel-vbeln,&lt;/P&gt;&lt;P&gt;        qmart    LIKE   qmel-qmart,      "Notification Type&lt;/P&gt;&lt;P&gt;        ernam    LIKE   qmel-ernam,      "Name of Person who Created the Object&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       vbeln    LIKE   vbak-vbeln,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        bstnk    LIKE   vbak-bstnk,&lt;/P&gt;&lt;P&gt;        auart    LIKE   vbak-auart,&lt;/P&gt;&lt;P&gt;        netwr    LIKE   vbak-netwr,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       aufnr    LIKE   qmel-aufnr,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       qmnum    LIKE   vbak-qmnum,      "Notification Number&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       qmart    LIKE   qmel-qmart,      "Notification Type&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ernam    LIKE   qmel-ernam,      "Name of Person who Created the Object&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;END OF ilist.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM get_pm_orders.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM get_dp_orders.&lt;/P&gt;&lt;P&gt;  PERFORM get_bl_doc.&lt;/P&gt;&lt;P&gt;  PERFORM get_doc_num_of_billing_doc .&lt;/P&gt;&lt;P&gt;  PERFORM amount_cleared.&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 list_output.&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  get_pm_orders&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;      text&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&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 get_pm_orders .&lt;/P&gt;&lt;P&gt;  SELECT  a~aufnr&lt;/P&gt;&lt;P&gt;          a~phasenum&lt;/P&gt;&lt;P&gt;          a~phase&lt;/P&gt;&lt;P&gt;          a~priority&lt;/P&gt;&lt;P&gt;          a~ustat&lt;/P&gt;&lt;P&gt;          b~qmnum&lt;/P&gt;&lt;P&gt;          b~qmart&lt;/P&gt;&lt;P&gt;          b~ernam&lt;/P&gt;&lt;P&gt;          INTO TABLE iords&lt;/P&gt;&lt;P&gt;  FROM zdepmgmt AS a INNER JOIN  qmel AS b&lt;/P&gt;&lt;P&gt;  ON ( a&lt;SUB&gt;aufnr = b&lt;/SUB&gt;aufnr )&lt;/P&gt;&lt;P&gt;  WHERE a&lt;SUB&gt;aufnr = b&lt;/SUB&gt;aufnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT iords BY qmnum .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT iords.&lt;/P&gt;&lt;P&gt;    SHIFT iords-qmnum LEFT DELETING LEADING '0'. MODIFY iords.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_pm_orders&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  get_dp_orders&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;      text&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&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 get_dp_orders .&lt;/P&gt;&lt;P&gt;*Then look up the deposit order (vbak-vbeln) using the notification number (qmel-qmnum) where qmel-qmnum = vbak-bstnk (Customer Purchase Order).&lt;/P&gt;&lt;P&gt;  SELECT&lt;/P&gt;&lt;P&gt;        vbeln&lt;/P&gt;&lt;P&gt;        bstnk&lt;/P&gt;&lt;P&gt;        auart&lt;/P&gt;&lt;P&gt;        netwr&lt;/P&gt;&lt;P&gt;        qmnum&lt;/P&gt;&lt;P&gt;        FROM vbak&lt;/P&gt;&lt;P&gt;        INTO  TABLE idp_ords .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT idp_ords.&lt;/P&gt;&lt;P&gt;    SHIFT idp_ords-bstnk LEFT DELETING LEADING '0'. MODIFY idp_ords.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT idp_ords.&lt;/P&gt;&lt;P&gt;    READ TABLE iords WITH KEY qmnum = idp_ords-bstnk&lt;/P&gt;&lt;P&gt;                                              BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE iords-aufnr     TO ilist-aufnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE iords-phasenum  TO ilist-phasenum.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE iords-phase     TO ilist-phase.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE iords-priority  TO ilist-priority.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE iords-ustat     TO ilist-ustat.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MOVE iords-qmnum     TO ilist-qmnum.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MOVE idp_ords-vbeln  TO ilist-vbeln.&lt;/P&gt;&lt;P&gt;      MOVE idp_ords-qmart  TO ilist-qmart.&lt;/P&gt;&lt;P&gt;      MOVE idp_ords-ernam  TO ilist-ernam.&lt;/P&gt;&lt;P&gt;      MOVE idp_ords-bstnk  TO ilist-bstnk.&lt;/P&gt;&lt;P&gt;      MOVE idp_ords-auart  TO ilist-auart.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF ilist IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      APPEND ilist.&lt;/P&gt;&lt;P&gt;      CLEAR ilist.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT ilist BY vbeln .&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_dp_orders&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  get_bl_doc&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;      text&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&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 get_bl_doc .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT  vbeln FROM vbfa INTO TABLE ibl_doc .&lt;/P&gt;&lt;P&gt;  SORT ibl_doc BY vbeln .&lt;/P&gt;&lt;P&gt;  LOOP AT ilist.&lt;/P&gt;&lt;P&gt;    READ TABLE ibl_doc WITH KEY vbeln = ilist-vbeln&lt;/P&gt;&lt;P&gt;                            BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    CHECK sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;    DELETE ilist.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_bl_orders&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  get_doc_num_of_billing_doc&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;      text&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&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 get_doc_num_of_billing_doc .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT vbeln FROM vbrk INTO  TABLE icl_doc.&lt;/P&gt;&lt;P&gt;  SORT icl_doc BY vbeln .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT ilist.&lt;/P&gt;&lt;P&gt;    READ TABLE icl_doc WITH KEY vbeln = ilist-vbeln&lt;/P&gt;&lt;P&gt;                            BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    CHECK sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;    DELETE ilist.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT ilist.&lt;/P&gt;&lt;P&gt;    SHIFT ilist-vbeln LEFT DELETING LEADING '0'. MODIFY ilist.&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;  SELECT augbl zuonr FROM bsad INTO  TABLE inum_cl_doc.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             where vbeln ne ''.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DELETE inum_cl_doc WHERE vbeln = ''.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT inum_cl_doc BY zuonr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT inum_cl_doc.&lt;/P&gt;&lt;P&gt;    SHIFT inum_cl_doc-zuonr LEFT DELETING LEADING '0'. MODIFY inum_cl_doc.&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 ilist.&lt;/P&gt;&lt;P&gt;    READ TABLE inum_cl_doc WITH KEY zuonr = ilist-vbeln&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;      WRITE : 'BILLING DOCUMENT EXISTS IE BILLING DOCUMENT CLEARED'.&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;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_doc_num_of_billing_doc&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  amount_cleared&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;      text&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&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 amount_cleared .&lt;/P&gt;&lt;P&gt;  SELECT vbeln wrbtr FROM bseg INTO  TABLE iamt_cld .&lt;/P&gt;&lt;P&gt;  SORT iamt_cld BY vbeln .&lt;/P&gt;&lt;P&gt;  LOOP AT iamt_cld.&lt;/P&gt;&lt;P&gt;    SHIFT iamt_cld-vbeln LEFT DELETING LEADING '0'. MODIFY iamt_cld.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT ilist.&lt;/P&gt;&lt;P&gt;    READ TABLE iamt_cld WITH KEY vbeln = ilist-vbeln&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;      IF ilist-netwr EQ iamt_cld-wrbtr.&lt;/P&gt;&lt;P&gt;        WRITE : 'Engineering Advance sucess'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        WRITE : 'Engineering Advance Error'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;      write &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'nothing found'.&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;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " amount_cleared&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  list_output&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;      text&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&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 list_output .&lt;/P&gt;&lt;P&gt;  LOOP AT iords.&lt;/P&gt;&lt;P&gt;    WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt;&lt;/P&gt;&lt;P&gt;    iords-aufnr,&lt;/P&gt;&lt;P&gt;             iords-phasenum,&lt;/P&gt;&lt;P&gt;             iords-phase,&lt;/P&gt;&lt;P&gt;             iords-priority,&lt;/P&gt;&lt;P&gt;             iords-ustat,&lt;/P&gt;&lt;P&gt;             iords-qmnum,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            iords-bstkd_m,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;             iords-qmart,&lt;/P&gt;&lt;P&gt;             iords-ernam .&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SKIP. SKIP.&lt;/P&gt;&lt;P&gt;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; '&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; idp_ords &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;'.&lt;/P&gt;&lt;P&gt;  LOOP AT idp_ords.&lt;/P&gt;&lt;P&gt;    IF idp_ords-bstnk = '9809'.&lt;/P&gt;&lt;P&gt;      WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; idp_ords-vbeln,&lt;/P&gt;&lt;P&gt;               idp_ords-bstnk,&lt;/P&gt;&lt;P&gt;               idp_ords-auart.&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;  SKIP. SKIP.&lt;/P&gt;&lt;P&gt;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; '&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; ilist &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT ilist.&lt;/P&gt;&lt;P&gt;    WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'ilist',&lt;/P&gt;&lt;P&gt;              ilist-qmnum.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " list_output&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Oct 2006 16:41:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance/m-p/1588711#M265190</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-10-09T16:41:54Z</dc:date>
    </item>
    <item>
      <title>Re: Performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance/m-p/1588712#M265191</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Instead of looping at ilist 3 times, u can loop only once:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT vbeln FROM vbrk INTO TABLE icl_doc.&lt;/P&gt;&lt;P&gt;SORT icl_doc BY vbeln .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT augbl zuonr FROM bsad INTO TABLE inum_cl_doc.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;where vbeln ne ''.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DELETE inum_cl_doc WHERE vbeln = ''.&lt;/P&gt;&lt;P&gt;SORT inum_cl_doc BY zuonr.&lt;/P&gt;&lt;P&gt;LOOP AT inum_cl_doc.&lt;/P&gt;&lt;P&gt;SHIFT inum_cl_doc-zuonr LEFT DELETING LEADING '0'. MODIFY inum_cl_doc.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT ilist.&lt;/P&gt;&lt;P&gt;READ TABLE icl_doc WITH KEY vbeln = ilist-vbeln&lt;/P&gt;&lt;P&gt;BINARY SEARCH.&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;SHIFT ilist-vbeln LEFT DELETING LEADING '0'. MODIFY ilist.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE inum_cl_doc WITH KEY zuonr = ilist-vbeln&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;WRITE : 'BILLING DOCUMENT EXISTS IE BILLING DOCUMENT CLEARED'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;else.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;DELETE ilist.&lt;/P&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;Regards,&lt;/P&gt;&lt;P&gt;Prakash.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Oct 2006 16:48:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance/m-p/1588712#M265191</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-10-09T16:48:48Z</dc:date>
    </item>
  </channel>
</rss>

