Hi SDN's
Pls help me to improve the performance of the following code
form get_data .
SELECT budat HKONT aufnr sgtxt blart dmbtr waers
INTO TABLE it_detail
FROM bsis
WHERE bukrs = p_bukrs
AND blart IN s_blart
AND budat IN s_budat
AND HKONT in S_HKONT
AND aufnr in S_aufnr
AND werks = p_werks.
SORT it_detail.
IF p_waers IS NOT INITIAL.
LOOP AT it_detail.
CALL FUNCTION 'CONVERT_TO_FOREIGN_CURRENCY'
EXPORTING
date = p_xdate
foreign_currency = p_waers
local_amount = it_detail-dmbtr
local_currency = it_detail-waers
type_of_rate = p_kurst
IMPORTING
foreign_amount = it_detail-dmbtr
EXCEPTIONS
no_rate_found = 1
overflow = 2
no_factors_found = 3
OTHERS = 4.
IF sy-subrc = 0.
CLEAR it_detail-waers.
it_detail-waers = p_waers.
MODIFY it_detail. " transporting dmbtr.
ENDIF.
ENDLOOP.
ENDIF.
endform. " get_data
&----
*& Form get_sum
&----
text
----
--> p1 text
<-- p2 text
----
form get_cost .
LOOP AT it_detail.
it_sum-budat = it_detail-budat.
it_sum-hkont = it_detail-hkont.
it_sum-aufnr = it_detail-aufnr.
it_sum-blart = it_detail-blart.
it_sum-sgtxt = it_detail-sgtxt.
IF it_detail-blart = 'GI' .
it_sum-raw = it_detail-dmbtr.
ELSEIF it_detail-blart = 'GG' AND it_detail-sgtxt(1) NE 'S' . .
it_sum-external = it_detail-dmbtr.
ELSEIF it_detail-blart = 'GG' AND it_detail-sgtxt(1) = 'S' .
it_sum-standard = it_detail-dmbtr.
ELSEIF it_detail-blart = 'SA' AND it_detail-sgtxt(2) = 'DR' .
it_sum-machine = it_detail-dmbtr.
ELSE.
it_sum-others = it_detail-dmbtr.
ENDIF.
APPEND it_sum.
CLEAR it_sum.
ENDLOOP.
Calculate Line item total for Summary Option
LOOP AT it_sum.
it_sum-total = it_sum-raw + it_sum-external + it_sum-standard + it_sum-machine + it_sum-others.
MODIFY it_sum INDEX sy-tabix TRANSPORTING total.
CLEAR it_sum.
ENDLOOP.
ENDFORM. " get_cost