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