<?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: system performance in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/system-performance/m-p/3642429#M877166</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Just a few pointers:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Try to use some INNER JOINS in stead of selecting all the fields from ONE table at a time.&lt;/P&gt;&lt;P&gt;2. Try to get to SELECT out of the LOOP.&lt;/P&gt;&lt;P&gt;3. Declare (all) your internal tables like this: TYPE SORTED / HASHED TABLE of TY_type (create your own type like this) WITH (NON-)UNIQUE KEY ....&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;opbal LIKE bseg-dmbtr,&lt;/P&gt;&lt;P&gt;END OF ty_lfa1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If lifnr is unique, then use WITH UNIQUE KEY lifnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try and do this for all internal tables and where possible use the UNIQUE key(s).&lt;/P&gt;&lt;P&gt;The key fields are the fields you need when reading the internal table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But to be honest, you are trying to select loads and loads of data especially when you are not using all of the select options in your screen. try and make at least one field mandatory or something like that.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good luck.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 19 Apr 2008 10:57:04 GMT</pubDate>
    <dc:creator>Sm1tje</dc:creator>
    <dc:date>2008-04-19T10:57:04Z</dc:date>
    <item>
      <title>system performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/system-performance/m-p/3642427#M877164</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;i have a problem . this program is taking so much time .&lt;/P&gt;&lt;P&gt;can we reduce the execution time?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pls help me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;code is&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; Report  ZTEST11&lt;/P&gt;&lt;P&gt;*&amp;amp;&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;&lt;/P&gt;&lt;P&gt;*&amp;amp;&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;&lt;/P&gt;&lt;P&gt;REPORT  ZTEST11 NO STANDARD PAGE HEADING LINE-SIZE 191&lt;/P&gt;&lt;P&gt;                                       LINE-COUNT 65&lt;/P&gt;&lt;P&gt;                                   MESSAGE-ID zfimsg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- table declarations&lt;/P&gt;&lt;P&gt;TABLES: bkpf,&lt;/P&gt;&lt;P&gt;        bseg,&lt;/P&gt;&lt;P&gt;        t001,&lt;/P&gt;&lt;P&gt;        lfa1,&lt;/P&gt;&lt;P&gt;        t003t,&lt;/P&gt;&lt;P&gt;        payr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- internal table declarations&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF i_lfa1 OCCURS 0,&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;     opbal LIKE bseg-dmbtr,&lt;/P&gt;&lt;P&gt;     END OF i_lfa1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF i_bkpf OCCURS 0,&lt;/P&gt;&lt;P&gt;     belnr LIKE bkpf-belnr,&lt;/P&gt;&lt;P&gt;     blart LIKE bkpf-blart,&lt;/P&gt;&lt;P&gt;     gjahr LIKE bkpf-gjahr,&lt;/P&gt;&lt;P&gt;     budat LIKE bkpf-budat,&lt;/P&gt;&lt;P&gt;     bldat LIKE bkpf-bldat,&lt;/P&gt;&lt;P&gt;     xblnr LIKE bkpf-xblnr,&lt;/P&gt;&lt;P&gt;     END OF i_bkpf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF i_bseg OCCURS 0,&lt;/P&gt;&lt;P&gt;     belnr LIKE bseg-belnr,    " Document no&lt;/P&gt;&lt;P&gt;     koart LIKE bseg-koart,    " Account type&lt;/P&gt;&lt;P&gt;     shkzg LIKE bseg-shkzg,    " Debit/Credit Indicator&lt;/P&gt;&lt;P&gt;     ktosl LIKE bseg-ktosl,    " Transaction&lt;/P&gt;&lt;P&gt;     hkont LIKE bseg-hkont,    " GL Account&lt;/P&gt;&lt;P&gt;     sgtxt LIKE bseg-sgtxt,    " Item Text&lt;/P&gt;&lt;P&gt;     END OF i_bseg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF i_t003t OCCURS 0,&lt;/P&gt;&lt;P&gt;     spras LIKE t003t-spras,&lt;/P&gt;&lt;P&gt;     blart LIKE t003t-blart,   " Document Type&lt;/P&gt;&lt;P&gt;     ltext LIKE t003t-ltext,   " Doc Type Desc&lt;/P&gt;&lt;P&gt;     END OF i_t003t,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     BEGIN OF i_skat OCCURS 0,&lt;/P&gt;&lt;P&gt;     saknr LIKE skat-saknr,    " gl account&lt;/P&gt;&lt;P&gt;     txt20 LIKE skat-txt20,    " gl account text&lt;/P&gt;&lt;P&gt;     END OF i_skat,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     BEGIN OF i_payr OCCURS 0,&lt;/P&gt;&lt;P&gt;     zbukr like payr-zbukr,&lt;/P&gt;&lt;P&gt;     vblnr LIKE payr-vblnr,&lt;/P&gt;&lt;P&gt;     chect LIKE payr-chect,&lt;/P&gt;&lt;P&gt;     laufd LIKE payr-laufd,&lt;/P&gt;&lt;P&gt;     END OF i_payr,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     BEGIN OF itab OCCURS 0,&lt;/P&gt;&lt;P&gt;     bukrs LIKE bkpf-bukrs,&lt;/P&gt;&lt;P&gt;     gjahr LIKE bkpf-gjahr,&lt;/P&gt;&lt;P&gt;     lifnr LIKE lfa1-lifnr,&lt;/P&gt;&lt;P&gt;     budat LIKE bkpf-budat,&lt;/P&gt;&lt;P&gt;     name1 LIKE lfa1-name1,&lt;/P&gt;&lt;P&gt;     opbal LIKE bseg-dmbtr,&lt;/P&gt;&lt;P&gt;     belnr LIKE bkpf-belnr,&lt;/P&gt;&lt;P&gt;     blart LIKE bkpf-blart,&lt;/P&gt;&lt;P&gt;     debit LIKE bseg-dmbtr,&lt;/P&gt;&lt;P&gt;     credit LIKE bseg-dmbtr,&lt;/P&gt;&lt;P&gt;     sgtxt LIKE bseg-sgtxt,&lt;/P&gt;&lt;P&gt;     bldat LIKE bkpf-bldat,&lt;/P&gt;&lt;P&gt;     xblnr LIKE bkpf-xblnr,&lt;/P&gt;&lt;P&gt;     wt_qbshh LIKE with_item-wt_qbshh,&lt;/P&gt;&lt;P&gt;     ltext LIKE t003t-ltext,&lt;/P&gt;&lt;P&gt;     chect LIKE payr-chect,&lt;/P&gt;&lt;P&gt;     laufd LIKE payr-laufd,&lt;/P&gt;&lt;P&gt;     txt20 like skat-txt20,&lt;/P&gt;&lt;P&gt;     saknr like skat-saknr,&lt;/P&gt;&lt;P&gt;     balance like bseg-dmbtr,&lt;/P&gt;&lt;P&gt;     hkont  like bseg-hkont,&lt;/P&gt;&lt;P&gt;     END OF itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF i_witem OCCURS 0,&lt;/P&gt;&lt;P&gt;     belnr TYPE with_item-belnr,&lt;/P&gt;&lt;P&gt;     buzei TYPE with_item-buzei,&lt;/P&gt;&lt;P&gt;     wt_qbshh TYPE with_item-wt_qbshh,&lt;/P&gt;&lt;P&gt;     END OF i_witem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:itab_key_bal LIKE bapi3007_3 OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA:ibal LIKE itab_key_bal OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA : v_butxt LIKE t001-butxt.&lt;/P&gt;&lt;P&gt;*-- work variables&lt;/P&gt;&lt;P&gt;DATA: w_gjahr1 LIKE bkpf-gjahr,&lt;/P&gt;&lt;P&gt;      w_gjahr2 LIKE bkpf-gjahr,                             "#EC *&lt;/P&gt;&lt;P&gt;      w_pdate LIKE bkpf-budat,&lt;/P&gt;&lt;P&gt;      w_name1 LIKE lfa1-name1,&lt;/P&gt;&lt;P&gt;      w_opbal LIKE bseg-dmbtr,&lt;/P&gt;&lt;P&gt;      w_cbal  LIKE bseg-dmbtr,&lt;/P&gt;&lt;P&gt;      w_cfbal LIKE bseg-dmbtr,&lt;/P&gt;&lt;P&gt;      w_sbal  LIKE bseg-dmbtr,&lt;/P&gt;&lt;P&gt;      w_ftotal LIKE bseg-dmbtr,&lt;/P&gt;&lt;P&gt;      w_cftotal LIKE bseg-dmbtr,&lt;/P&gt;&lt;P&gt;      w_ctot LIKE bseg-dmbtr,&lt;/P&gt;&lt;P&gt;      w_dtot LIKE bseg-dmbtr,&lt;/P&gt;&lt;P&gt;      balance like bseg-dmbtr,&lt;/P&gt;&lt;P&gt;      total like bseg-dmbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- selection screen&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE tit.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_bukrs LIKE bkpf-bukrs OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr,&lt;/P&gt;&lt;P&gt;                s_belnr FOR bkpf-belnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="-------------------" /&gt;CHANGE CODE ( ADD PROFIT CENTER)--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS : S_PRCTR FOR BSEG-PRCTR.&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="----------------------" /&gt;END CHANGE--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters: p_gjahr like bkpf-gjahr OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_budat FOR bkpf-budat OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK blk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- initialization&lt;/P&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;  tit = 'Selection Block'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- at selection screen&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON s_budat.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_COMPANYCODE_GET_PERIOD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      companycodeid       = p_bukrs&lt;/P&gt;&lt;P&gt;      posting_date        = s_budat-low&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      fiscal_year         = w_gjahr1&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FISCAL_PERIOD       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  RETURN              =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              .&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_COMPANYCODE_GET_PERIOD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      companycodeid       = p_bukrs&lt;/P&gt;&lt;P&gt;      posting_date        = s_budat-high&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      fiscal_year         = w_gjahr2&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FISCAL_PERIOD       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  RETURN              =&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 p_gjahr NE '' AND p_gjahr NE w_gjahr1.&lt;/P&gt;&lt;P&gt;    MESSAGE e000 WITH 'Enter valid dates'.                  "#EC *&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- start of selection&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;*data: burks type p_burks.&lt;/P&gt;&lt;P&gt;  SELECT single butxt&lt;/P&gt;&lt;P&gt;               FROM t001&lt;/P&gt;&lt;P&gt;               INTO v_butxt&lt;/P&gt;&lt;P&gt;               WHERE bukrs = p_bukrs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;  SELECT lifnr name1&lt;/P&gt;&lt;P&gt;    FROM lfa1&lt;/P&gt;&lt;P&gt;    INTO CORRESPONDING FIELDS OF TABLE i_lfa1&lt;/P&gt;&lt;P&gt;   WHERE lifnr IN s_lifnr.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;*-- getting the opening balances for all vendors&lt;/P&gt;&lt;P&gt;  PERFORM openingbalances.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select belnr&lt;/P&gt;&lt;P&gt;       gjahr&lt;/P&gt;&lt;P&gt;       budat&lt;/P&gt;&lt;P&gt;       blart&lt;/P&gt;&lt;P&gt;       BLDAT&lt;/P&gt;&lt;P&gt;       XBLNR&lt;/P&gt;&lt;P&gt;  from bkpf&lt;/P&gt;&lt;P&gt;  into corresponding fields of table i_bkpf&lt;/P&gt;&lt;P&gt; where gjahr = p_gjahr and&lt;/P&gt;&lt;P&gt;       budat in s_budat and&lt;/P&gt;&lt;P&gt;       bukrs = p_bukrs and&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      blart = 'KZ' and&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       bstat = ''.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT belnr&lt;/P&gt;&lt;P&gt;         koart&lt;/P&gt;&lt;P&gt;         shkzg&lt;/P&gt;&lt;P&gt;         ktosl&lt;/P&gt;&lt;P&gt;         hkont&lt;/P&gt;&lt;P&gt;         sgtxt&lt;/P&gt;&lt;P&gt;    FROM bseg&lt;/P&gt;&lt;P&gt;    INTO TABLE i_bseg&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN i_bkpf&lt;/P&gt;&lt;P&gt;    WHERE belnr = i_bkpf-belnr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="--------------------" /&gt;CHANGE CODE--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="--------------------" /&gt;&lt;P&gt;    AND PRCTR IN S_PRCTR&lt;/P&gt;&lt;P&gt;*--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="-----------------" /&gt;ENDCHANGE--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    and koart in ('K').&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select BELNR&lt;/P&gt;&lt;P&gt;       BUZEI&lt;/P&gt;&lt;P&gt;       WT_QBSHH&lt;/P&gt;&lt;P&gt;       from with_item&lt;/P&gt;&lt;P&gt;       into table i_witem&lt;/P&gt;&lt;P&gt;       for all entries in i_bkpf&lt;/P&gt;&lt;P&gt;       where belnr = i_bkpf-belnr AND&lt;/P&gt;&lt;P&gt;             GJAHR = I_BKPF-GJAHR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select zbukr&lt;/P&gt;&lt;P&gt;       vblnr&lt;/P&gt;&lt;P&gt;       chect&lt;/P&gt;&lt;P&gt;       laufd&lt;/P&gt;&lt;P&gt;  from payr&lt;/P&gt;&lt;P&gt;  into table i_payr&lt;/P&gt;&lt;P&gt;  for all entries in i_bkpf&lt;/P&gt;&lt;P&gt;  where zbukr = p_bukrs and&lt;/P&gt;&lt;P&gt;        vblnr = i_bkpf-belnr.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;DEL&gt;&lt;STRONG&gt;picking GL Account Details&lt;/STRONG&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;P&gt;  SELECT saknr&lt;/P&gt;&lt;P&gt;         txt20&lt;/P&gt;&lt;P&gt;    FROM skat&lt;/P&gt;&lt;P&gt;    INTO TABLE i_skat&lt;/P&gt;&lt;P&gt;     FOR ALL ENTRIES IN i_bseg&lt;/P&gt;&lt;P&gt;   WHERE saknr EQ i_bseg-hkont&lt;/P&gt;&lt;P&gt;     AND spras EQ sy-langu&lt;/P&gt;&lt;P&gt;     AND ktopl EQ p_bukrs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;DEL&gt;&lt;STRONG&gt;picking Document Details&lt;/STRONG&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;P&gt;  SELECT spras&lt;/P&gt;&lt;P&gt;         blart&lt;/P&gt;&lt;P&gt;         ltext&lt;/P&gt;&lt;P&gt;         FROM t003t&lt;/P&gt;&lt;P&gt;         INTO TABLE i_t003t&lt;/P&gt;&lt;P&gt;         FOR ALL ENTRIES IN i_bkpf&lt;/P&gt;&lt;P&gt;         WHERE blart = i_bkpf-blart&lt;/P&gt;&lt;P&gt;         AND spras = 'EN'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT i_bkpf.&lt;/P&gt;&lt;P&gt;    SELECT *&lt;/P&gt;&lt;P&gt;      FROM bseg&lt;/P&gt;&lt;P&gt;     WHERE belnr = i_bkpf-belnr AND&lt;/P&gt;&lt;P&gt;           gjahr = i_bkpf-gjahr AND&lt;/P&gt;&lt;P&gt;           bukrs = p_bukrs AND&lt;/P&gt;&lt;P&gt;           koart = 'K' AND&lt;/P&gt;&lt;P&gt;           lifnr IN s_lifnr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------" /&gt;&lt;P&gt;           and prctr in s_prctr&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------------------" /&gt;&lt;P&gt;           .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      itab-bukrs = p_bukrs.&lt;/P&gt;&lt;P&gt;      itab-gjahr = i_bkpf-gjahr.&lt;/P&gt;&lt;P&gt;      itab-lifnr = bseg-lifnr.&lt;/P&gt;&lt;P&gt;      itab-bldat = i_bkpf-bldat.&lt;/P&gt;&lt;P&gt;      itab-xblnr = i_bkpf-xblnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE i_witem INTO i_witem WITH KEY belnr = i_bkpf-belnr.&lt;/P&gt;&lt;P&gt;      IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;        itab-wt_qbshh = i_witem-wt_qbshh.&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;      READ TABLE i_lfa1 WITH KEY lifnr = bseg-lifnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        itab-name1 = i_lfa1-name1.&lt;/P&gt;&lt;P&gt;        itab-opbal = i_lfa1-opbal.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      itab-budat = i_bkpf-budat.&lt;/P&gt;&lt;P&gt;      itab-belnr = i_bkpf-belnr.&lt;/P&gt;&lt;P&gt;      itab-blart = i_bkpf-blart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF bseg-shkzg = 'S'.&lt;/P&gt;&lt;P&gt;        itab-debit = bseg-dmbtr.&lt;/P&gt;&lt;P&gt;        itab-credit = 0.&lt;/P&gt;&lt;P&gt;      ELSEIF bseg-shkzg = 'H'.&lt;/P&gt;&lt;P&gt;        itab-credit = bseg-dmbtr.&lt;/P&gt;&lt;P&gt;        itab-debit = 0.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      itab-sgtxt = bseg-sgtxt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;DEL&gt;&lt;STRONG&gt;to move GL Account details to final internal table&lt;/STRONG&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE i_skat INTO i_skat WITH KEY saknr = i_bseg-hkont.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       itab-txt20 = i_skat-txt20.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       itab-saknr = i_skat-saknr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        MOVE i_skat-txt20 TO itab-txt20. " Bank Name&lt;/P&gt;&lt;P&gt;        MOVE i_skat-saknr TO itab-saknr.&lt;/P&gt;&lt;P&gt;      ENDIF.                  "IF sy-subrc IS INITIAL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      read table i_t003t into i_t003t with key blart = i_bkpf-blart.&lt;/P&gt;&lt;P&gt;       itab-ltext = i_t003t-ltext.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--to move doc number of the payment doc.&lt;/P&gt;&lt;P&gt;      READ TABLE i_payr INTO i_payr WITH KEY vblnr = i_bkpf-belnr.&lt;/P&gt;&lt;P&gt;      IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;        itab-chect = i_payr-chect.&lt;/P&gt;&lt;P&gt;        itab-laufd = i_payr-laufd.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND itab.&lt;/P&gt;&lt;P&gt;      CLEAR itab.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; loop at i_bseg.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       READ TABLE i_skat INTO i_skat WITH KEY saknr = i_bseg-hkont.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       itab-txt20 = i_skat-txt20.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       itab-saknr = i_skat-saknr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       MOVE i_skat-txt20 TO itab-txt20. " Bank Name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       MOVE i_skat-saknr TO itab-saknr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.                  "IF sy-subrc IS INITIAL&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     append itab.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     clear itab.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_lfa1.&lt;/P&gt;&lt;P&gt;    READ TABLE itab WITH KEY lifnr = i_lfa1-lifnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      itab-bukrs = p_bukrs.&lt;/P&gt;&lt;P&gt;      itab-gjahr = p_gjahr.&lt;/P&gt;&lt;P&gt;      itab-lifnr = i_lfa1-lifnr.&lt;/P&gt;&lt;P&gt;      itab-name1 = i_lfa1-name1.&lt;/P&gt;&lt;P&gt;      itab-opbal = i_lfa1-opbal.&lt;/P&gt;&lt;P&gt;      APPEND itab.&lt;/P&gt;&lt;P&gt;      CLEAR itab.&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 itab by bukrs gjahr lifnr budat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT itab.&lt;/P&gt;&lt;P&gt;    w_name1 = itab-name1.&lt;/P&gt;&lt;P&gt;    w_opbal = itab-opbal.&lt;/P&gt;&lt;P&gt;    w_cbal = w_opbal * -1.&lt;/P&gt;&lt;P&gt;    itab-debit = itab-debit + itab-wt_qbshh.&lt;/P&gt;&lt;P&gt;    w_ctot = w_ctot + itab-credit.&lt;/P&gt;&lt;P&gt;    w_dtot = w_dtot + itab-debit.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   itab-balance = itab-credit.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if w_dtot is not initial.&lt;/P&gt;&lt;P&gt;       itab-balance = itab-balance + w_dtot.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    if w_ctot is not initial.&lt;/P&gt;&lt;P&gt;       itab-balance = itab-balance - w_ctot.&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 itab-balance.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     if w_dtot =&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        itab-balance = itab-balance +  w_dtot .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     elseif w_dtot &amp;lt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        itab-balance = itab-balance - w_dtot.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     if w_ctot =&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        itab-balance = itab-balance - w_ctot.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     elseif w_ctot &amp;lt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        itab-balance = itab-balance + w_ctot.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*clear itab-balance.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt; if w_dtot is not initial.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt; itab-balance = itab-balance + w_dtot.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt; endif .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AT new lifnr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    on change of s_lifnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      w_cfbal = w_opbal.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_NORMAL INTENSIFIED ON.&lt;/P&gt;&lt;P&gt;      IF w_opbal GE 0.&lt;/P&gt;&lt;P&gt;        WRITE:/01 sy-vline,&lt;/P&gt;&lt;P&gt;               02 'Vendor:',&lt;/P&gt;&lt;P&gt;               12(10) itab-lifnr,&lt;/P&gt;&lt;P&gt;               26 w_name1,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              177 sy-vline.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                165 sy-vLINE.&lt;/P&gt;&lt;P&gt;        WRITE:/01 sy-vline,&lt;/P&gt;&lt;P&gt;               02 'Opening Balance:',&lt;/P&gt;&lt;P&gt;               121(13) w_opbal,                             "#EC *&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              177 sy-vline.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                165 sy-vLINE.&lt;/P&gt;&lt;P&gt;      ELSEIF w_opbal LT 0.&lt;/P&gt;&lt;P&gt;        WRITE:/01 sy-vline,&lt;/P&gt;&lt;P&gt;               02 'Vendor:',&lt;/P&gt;&lt;P&gt;               12(10) itab-lifnr,&lt;/P&gt;&lt;P&gt;               26 w_name1,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              177 sy-vline.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;               165 sy-vline.&lt;/P&gt;&lt;P&gt;        WRITE:/01 sy-vline,&lt;/P&gt;&lt;P&gt;               02 'Opening Balance:',&lt;/P&gt;&lt;P&gt;               138(13) w_opbal,                                 "#EC *&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              177 sy-vline.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;               165 sy-vline.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    endon.&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;   clear itab-balance.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   w_dtot = itab-debit.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   w_ctot = itab-credit.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   itab-balance = w_opbal.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IF w_opbal GE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   itab-balance = itab-balance + w_dtot .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   itab-balance = itab-balance - w_ctot.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   elseif&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   w_opbal &amp;lt; 0 .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   itab-balance = itab-balance + w_dtot.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   itab-balance = itab-balance - w_ctot .&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     if w_dtot =&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        itab-balance = itab-balance +  w_dtot .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     elseif w_dtot &amp;lt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        itab-balance = itab-balance - w_dtot.&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;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;     if w_ctot =&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        itab-balance = itab-balance - w_ctot.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;     elseif w_ctot &amp;lt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        itab-balance = itab-balance + w_ctot.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;     endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt; if w_dtot is not initial.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; itab-balance = itab-balance + w_ctot .&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt; endon.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;if w_dtot is not initial.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt; itab-balance = itab-balance + w_dtot.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt; endon.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   total = itab-balance  .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if w_ctot ge 0 and w_dtot ge 0.&lt;/P&gt;&lt;P&gt;       itab-balance = w_opbal + w_dtot - w_ctot.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   itab-balance = itab-balance - w_ctot.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    if w_ctot is not initial and w_dtot le 0.&lt;/P&gt;&lt;P&gt;       itab-balance = w_opbal - w_dtot - w_ctot.&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;    FORMAT COLOR COL_NORMAL INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;    WRITE:/01 sy-vline,&lt;/P&gt;&lt;P&gt;           02(10) itab-belnr CENTERED,&lt;/P&gt;&lt;P&gt;           15 sy-vline,&lt;/P&gt;&lt;P&gt;           16(10) itab-budat CENTERED,&lt;/P&gt;&lt;P&gt;           27 sy-vline,&lt;/P&gt;&lt;P&gt;           28(18) itab-ltext LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;           45 sy-vline,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          47(20) itab-txt20 CENTERED,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          70 sy-vline,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;           46(50) itab-sgtxt LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;           105 sy-vline,&lt;/P&gt;&lt;P&gt;           106(15) itab-xblnr centered,&lt;/P&gt;&lt;P&gt;           120 sy-vline,&lt;/P&gt;&lt;P&gt;           121(16) itab-debit centered,&lt;/P&gt;&lt;P&gt;           135 sy-vline,&lt;/P&gt;&lt;P&gt;           136(16) itab-credit centered,&lt;/P&gt;&lt;P&gt;           150 sy-vline,&lt;/P&gt;&lt;P&gt;           151(13) itab-balance left-JUSTIFIED,&lt;/P&gt;&lt;P&gt;           165 sy-vline.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          164(14) itab-balance left-justified,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          177 sy-vline.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AT END OF lifnr.&lt;/P&gt;&lt;P&gt;      IF w_opbal LT 0.&lt;/P&gt;&lt;P&gt;        w_ctot = w_ctot + w_cbal .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF w_opbal GE 0.&lt;/P&gt;&lt;P&gt;        w_dtot = w_dtot + w_opbal .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR w_cbal.&lt;/P&gt;&lt;P&gt;      CLEAR w_opbal.&lt;/P&gt;&lt;P&gt;      CLEAR w_name1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR w_ftotal.&lt;/P&gt;&lt;P&gt;      CLEAR w_cftotal.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     clear itab-balance.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      SUM.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ULINE (177).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ULINE (165).&lt;/P&gt;&lt;P&gt;if itab-credit ge 0 and w_dtot ge 0.&lt;/P&gt;&lt;P&gt;w_ftotal = w_cfbal + w_dtot - itab-credit.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;if itab-credit is not initial and w_dtot le 0.&lt;/P&gt;&lt;P&gt;w_ftotal = w_cfbal - w_dtot - itab-credit.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_TOTAL ON.&lt;/P&gt;&lt;P&gt;      WRITE:/01 sy-vline,&lt;/P&gt;&lt;P&gt;             02 'Total:',&lt;/P&gt;&lt;P&gt;             120(13) w_dtot right-justified,                "#EC *&lt;/P&gt;&lt;P&gt;             133(16) w_ctot,                                "#EC *&lt;/P&gt;&lt;P&gt;             149(16) w_ftotal,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            177 sy-vline.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              165 sy-vline.&lt;/P&gt;&lt;P&gt;      ULINE.&lt;/P&gt;&lt;P&gt;      CLEAR: w_ctot,w_dtot.&lt;/P&gt;&lt;P&gt;      w_ftotal = w_cfbal + itab-debit - itab-credit.&lt;/P&gt;&lt;P&gt;      w_cftotal = w_ftotal * -1.&lt;/P&gt;&lt;P&gt;       clear w_ctot.&lt;/P&gt;&lt;P&gt;       clear w_dtot.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- top of page&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;  WRITE:/48    v_butxt.                  " COLOR COL_GROUP.&lt;/P&gt;&lt;P&gt;  WRITE:/45 '----&lt;/P&gt;&lt;HR originaltext="-----------------------" /&gt;&lt;P&gt; '.&lt;/P&gt;&lt;P&gt;  WRITE:/48 'Creditors Ledger'.      " COLOR COL_KEY.&lt;/P&gt;&lt;P&gt;  WRITE:/45 '----&lt;/P&gt;&lt;HR originaltext="------------------------" /&gt;&lt;P&gt;'.&lt;/P&gt;&lt;P&gt;  SKIP 1.&lt;/P&gt;&lt;P&gt;  WRITE:/2 'Company Code:',16 p_bukrs,&lt;/P&gt;&lt;P&gt;       108 'Page No :', sy-pagno.&lt;/P&gt;&lt;P&gt;  WRITE:/2 'Fiscal Year :',16 p_gjahr.&lt;/P&gt;&lt;P&gt;  WRITE:/2 'Period      :', s_budat-low,'to', s_budat-high.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ULINE (177).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ULINE (165).&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_HEADING ON.&lt;/P&gt;&lt;P&gt;  WRITE:/01 sy-vline,&lt;/P&gt;&lt;P&gt;         02(12) 'Document No' CENTERED,&lt;/P&gt;&lt;P&gt;         15 sy-vline,&lt;/P&gt;&lt;P&gt;         16(10) 'PDate' CENTERED,&lt;/P&gt;&lt;P&gt;         27 sy-vline,&lt;/P&gt;&lt;P&gt;         28(20) 'Voucher Type' LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;         45 sy-vline,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        46(15) 'Account Name' CENTERED,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        70 sy-vline,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         46(12) 'Narration' CENTERED,&lt;/P&gt;&lt;P&gt;         105 sy-vline,&lt;/P&gt;&lt;P&gt;         106(12) 'Cheque / Bill No' CENTERED,&lt;/P&gt;&lt;P&gt;         120 sy-vline,&lt;/P&gt;&lt;P&gt;         121(16) 'Debit' CENTERED,&lt;/P&gt;&lt;P&gt;         135 sy-vline,&lt;/P&gt;&lt;P&gt;         136(16) 'Credit' CENTERED,&lt;/P&gt;&lt;P&gt;         150 sy-vline,&lt;/P&gt;&lt;P&gt;         151(10) 'Balance' CENTERED,&lt;/P&gt;&lt;P&gt;         165 sy-vline.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        164(14) 'Balance' left-justified,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        177 sy-vline.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;***endcode&lt;/P&gt;&lt;P&gt;  FORMAT COLOR OFF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ULINE (177).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ULINE (165).&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  openingbalances&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 openingbalances.&lt;/P&gt;&lt;P&gt;  w_pdate = s_budat-low - 1.&lt;/P&gt;&lt;P&gt;  LOOP AT i_lfa1.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_AP_ACC_GETKEYDATEBALANCE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        companycode        = p_bukrs&lt;/P&gt;&lt;P&gt;        vendor             = i_lfa1-lifnr&lt;/P&gt;&lt;P&gt;        keydate            = w_pdate&lt;/P&gt;&lt;P&gt;       balancespgli       = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NOTEDITEMS         = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  RETURN             =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        keybalance         = itab_key_bal&lt;/P&gt;&lt;P&gt;              .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    REFRESH ibal.&lt;/P&gt;&lt;P&gt;    CLEAR ibal.&lt;/P&gt;&lt;P&gt;    CLEAR w_sbal.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND LINES OF itab_key_bal TO ibal.&lt;/P&gt;&lt;P&gt;    REFRESH itab_key_bal.&lt;/P&gt;&lt;P&gt;    CLEAR itab_key_bal.&lt;/P&gt;&lt;P&gt;    LOOP AT ibal.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ibal-lc_bal = ibal-lc_bal / 100.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      w_sbal = w_sbal + ibal-lc_bal.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    i_lfa1-opbal = w_sbal.&lt;/P&gt;&lt;P&gt;    MODIFY i_lfa1.&lt;/P&gt;&lt;P&gt;    CLEAR i_lfa1.&lt;/P&gt;&lt;P&gt;    REFRESH ibal.&lt;/P&gt;&lt;P&gt;    CLEAR ibal.&lt;/P&gt;&lt;P&gt;    CLEAR w_sbal.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " openingbalances&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 Apr 2008 10:38:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/system-performance/m-p/3642427#M877164</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-19T10:38:57Z</dc:date>
    </item>
    <item>
      <title>Re: system performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/system-performance/m-p/3642428#M877165</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Thew problem is that u r select data from &lt;STRONG&gt;cluster table  BSEG&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;that too u r giving only &lt;STRONG&gt;one field in the where condition&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;SELECT belnr
koart
shkzg
ktosl
hkont
sgtxt
FROM bseg
INTO TABLE i_bseg
FOR ALL ENTRIES IN i_bkpf
WHERE belnr = i_bkpf-belnr&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;u need to give all the key fields in the where condition to increase the performance.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;BUKRS&lt;/P&gt;&lt;P&gt;BELNR&lt;/P&gt;&lt;P&gt;GJAHR&lt;/P&gt;&lt;P&gt;BUZEI&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selecting data from cluster tables take very long time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;that other thing is , u &lt;STRONG&gt;should not write select statement inside the loop statement&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;That too u are fetching from BSEG table which is Cluster table&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;LOOP AT i_bkpf.
SELECT *
FROM bseg
WHERE belnr = i_bkpf-belnr AND
gjahr = i_bkpf-gjahr AND
bukrs = p_bukrs AND
koart = 'K' AND
lifnr IN s_lifnr&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;reward if helpful&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;raam&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 Apr 2008 10:47:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/system-performance/m-p/3642428#M877165</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-19T10:47:27Z</dc:date>
    </item>
    <item>
      <title>Re: system performance</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/system-performance/m-p/3642429#M877166</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Just a few pointers:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Try to use some INNER JOINS in stead of selecting all the fields from ONE table at a time.&lt;/P&gt;&lt;P&gt;2. Try to get to SELECT out of the LOOP.&lt;/P&gt;&lt;P&gt;3. Declare (all) your internal tables like this: TYPE SORTED / HASHED TABLE of TY_type (create your own type like this) WITH (NON-)UNIQUE KEY ....&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;opbal LIKE bseg-dmbtr,&lt;/P&gt;&lt;P&gt;END OF ty_lfa1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If lifnr is unique, then use WITH UNIQUE KEY lifnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try and do this for all internal tables and where possible use the UNIQUE key(s).&lt;/P&gt;&lt;P&gt;The key fields are the fields you need when reading the internal table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But to be honest, you are trying to select loads and loads of data especially when you are not using all of the select options in your screen. try and make at least one field mandatory or something like that.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good luck.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 Apr 2008 10:57:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/system-performance/m-p/3642429#M877166</guid>
      <dc:creator>Sm1tje</dc:creator>
      <dc:date>2008-04-19T10:57:04Z</dc:date>
    </item>
  </channel>
</rss>

