Skip to Content
0
Former Member
Feb 17, 2009 at 10:37 AM

Optimization Issue for BKPF and BSEG tables

579 Views

Hi All,

Following code taking too much time to fetch data from BKPF and BSEG table,

please review this code and give some useful tips to optimize it:

FORM data_fetch.

  SELECT

          bukrs     " Company Code
          belnr     " Accounting Document Number
          gjahr
          bktxt     " Document Header Text
          xblnr     " Reference Document Number
          blart     " Document Type
          bldat     " Document Date
          budat     " Posting Date
          usnam     " User Name
    INTO TABLE it_bkpf
     FROM bkpf
     WHERE bukrs IN s_bukrs
     AND   belnr IN s_belnr
     AND   GJAHR IN s_gjahr
     AND   budat IN s_budat
     AND   bldat IN s_bldat  .

  SORT it_bkpf BY bukrs belnr gjahr budat.



  IF NOT it_bkpf[] IS INITIAL.

    SELECT  bukrs
            belnr
            gjahr
            mwskz    " Tax Code
            buzei
            zuonr     " Assignment Number
            sgtxt     " Item Text
*            dmbtr     " Amount in Document Currency
            dmbtr
            prctr     " Profit Center
            hkont     " GL CODE
            ktosl     " Transaction key
            SHKZG
     FROM bseg
     INTO TABLE it_bseg
     FOR ALL ENTRIES IN it_bkpf
     WHERE bukrs = it_bkpf-bukrs
     AND belnr = it_bkpf-belnr
     AND gjahr = it_bkpf-gjahr
     AND hkont IN  s_hkont1  "Bank Commission Code
*and hkont <> it_bseg1-hkont
      and  mwskz in s_mwskz.

    SORT it_bseg BY bukrs belnr gjahr.

  IF sy-subrc NE 0.
    MESSAGE 'No records for given selection' TYPE 'I'.
   leave screen.
  ENDIF.

  SELECT
            bukrs
            belnr
            gjahr
            mwskz    " Tax Code
            buzei
            zuonr     " Assignment Number
            sgtxt     " Item Text
*            dmbtr     " Amount in Document Currency
            dmbtr
            prctr     " Profit Center
            hkont     " GL CODE
            ktosl     " Transaction key
            SHKZG
     FROM bseg
     INTO TABLE it_bseg1
     FOR ALL ENTRIES IN it_bseg
     WHERE    bukrs = it_bseg-bukrs
     and      belnr = it_bseg-belnr
     AND      gjahr = it_bseg-gjahr
     and      hkont <> it_bseg-hkont
     AND      hkont IN s_hkont.         " Bank Code
sort it_bseg1 by  bukrs belnr gjahr.


   IF sy-subrc = 0.
    select skb1~SAKNR
           skb1~HBKID
    into table skb1_t012
    from skb1 join t012
    on skb1~hbkid = t012~hbkid
    for all entries in it_bseg1
    where skb1~saknr = it_bseg1-hkont
    and skb1~bukrs = it_bseg1-bukrs.
    sort skb1_t012 by saknr hbkid .
    else.
      MESSAGE 'Wrong Bank Code !' TYPE 'E'.
      LEAVE SCREEN.
    ENDIF.

       SELECT  bukrs
            belnr
            gjahr
            mwskz    " Tax Code
            buzei
            zuonr     " Assignment Number
            sgtxt     " Item Text
*            dmbtr     " Amount in Document Currency
            dmbtr
            prctr     " Profit Center
            hkont     " GL CODE
            ktosl     " Transaction key
            SHKZG
     FROM bseg
     INTO TABLE it_bseg2
     FOR ALL ENTRIES IN it_bseg
     WHERE    bukrs = it_bseg-bukrs
     and      belnr = it_bseg-belnr
     AND      gjahr = it_bseg-gjahr
     AND ( ktosl = 'VS7' OR ktosl = 'VS8' OR ktosl = 'VSE' ).
*   and  mwskz in s_mwskz.
    SORT it_bseg2 BY  bukrs belnr gjahr.
*BREAK-POINT.

endif.

Edited by: Julius Bussche on Feb 17, 2009 1:09 PM

Please use meaningfull subject titles and code tags