04-22-2008 1:30 PM
Hi,
Kindly suggest the performance imp for this code..
LOOP AT it_p0008 INTO wa_p0008
WHERE pernr EQ pernr-pernr
AND begda LE pn-endda
AND endda GE pn-begda.
DO 20 TIMES "1
VARYING p8wage FROM wa_p0008-lga01 NEXT wa_p0008-lga02."1
Entry found matching selection screen "1
IF p8wage-lga IN wagetype AND "1
NOT p8wage-lga IS INITIAL. "1
CLEAR wa_wage.
wa_wage-betrg = p8wage-bet. "1
wa_wage-bsgrd = wa_p0008-bsgrd. "1
save_flag = 'X'.
ENDIF. "1
ENDDO. "1
ENDLOOP.
04-22-2008 1:39 PM
Check for p8wage-lga if it is INITIAL .. If LGA is initial
then there is no need to check further ... as the record will
not have any values ...
Also ..
Put an exit if U want to exit from do .. enddo at the first
instance of finding the value in the record ..
LOOP AT it_p0008 INTO wa_p0008
WHERE pernr EQ pernr-pernr
AND begda LE pn-endda
AND endda GE pn-begda.
DO 20 TIMES "1
VARYING p8wage FROM wa_p0008-lga01 NEXT wa_p0008-lga02."1
If p8wage-lga IS INITIAL. <-- add these lines ..
EXIT.
ENDIF.
Entry found matching selection screen "1
IF p8wage-lga IN wagetype.
CLEAR wa_wage.
wa_wage-betrg = p8wage-bet. "1
wa_wage-bsgrd = wa_p0008-bsgrd. "1
save_flag = 'X'.
EXIT. <-- Exit ...
ENDIF. "1
ENDDO. "1
ENDLOOP.
04-22-2008 1:39 PM
Check for p8wage-lga if it is INITIAL .. If LGA is initial
then there is no need to check further ... as the record will
not have any values ...
Also ..
Put an exit if U want to exit from do .. enddo at the first
instance of finding the value in the record ..
LOOP AT it_p0008 INTO wa_p0008
WHERE pernr EQ pernr-pernr
AND begda LE pn-endda
AND endda GE pn-begda.
DO 20 TIMES "1
VARYING p8wage FROM wa_p0008-lga01 NEXT wa_p0008-lga02."1
If p8wage-lga IS INITIAL. <-- add these lines ..
EXIT.
ENDIF.
Entry found matching selection screen "1
IF p8wage-lga IN wagetype.
CLEAR wa_wage.
wa_wage-betrg = p8wage-bet. "1
wa_wage-bsgrd = wa_p0008-bsgrd. "1
save_flag = 'X'.
EXIT. <-- Exit ...
ENDIF. "1
ENDDO. "1
ENDLOOP.
04-22-2008 1:42 PM
Hi Srinivas,
Actually the code it like this..
FORM wage_type.
CLEAR: wa_wage, save_flag.
entry selected on selection screen check for mathing entry "1
IF NOT wagetype IS INITIAL. "1
LOOP AT it_p0008 INTO wa_p0008
WHERE pernr EQ pernr-pernr
AND begda LE pn-endda
AND endda GE pn-begda.
DO 20 TIMES "1
VARYING p8wage FROM wa_p0008-lga01 NEXT wa_p0008-lga02."1
Entry found matching selection screen "1
IF p8wage-lga IN wagetype AND "1
NOT p8wage-lga IS INITIAL. "1
CLEAR wa_wage.
wa_wage-betrg = p8wage-bet. "1
wa_wage-bsgrd = wa_p0008-bsgrd. "1
save_flag = 'X'.
ENDIF. "1
ENDDO. "1
ENDLOOP. "1
ELSE. "1
No entry selected on selection screen "1
read all entry even entry missing in infotype 0008 "1
save_flag = 'X'.
LOOP AT it_p0008 INTO wa_p0008
WHERE pernr EQ pernr-pernr
AND begda LE pn-endda
AND endda GE pn-begda. "1
DO 20 TIMES "1
VARYING p8wage FROM wa_p0008-lga01 NEXT wa_p0008-lga02."1
IF NOT p8wage-lga IS INITIAL. "1
CLEAR wa_wage.
wa_wage-betrg = p8wage-bet. "1
wa_wage-bsgrd = wa_p0008-bsgrd. "1
ENDIF. "1
ENDDO. "1
ENDLOOP. "1
ENDIF. "1
end wage type
ENDFORM. " WAGE_TYPE
04-22-2008 1:52 PM
What ever might be the case ...
U will not find an entry in the record if any one is initial ..
I mean .. If PA0008-LGA01 is initial then there is no need
for U to check for PA0008-LGA02 .. so U need to exit ..
IF NOT wagetype IS INITIAL.
LOOP AT it_p0008 INTO wa_p0008
WHERE pernr EQ pernr-pernr
AND begda LE pn-endda
AND endda GE pn-begda.
DO 20 TIMES VARYING p8wage FROM wa_p0008-lga01 NEXT wa_p0008-lga02.
If p8wage-lga IS INITIAL. <-- add these lines ..
EXIT.
ENDIF.
IF p8wage-lga IN wagetype.
CLEAR wa_wage.
wa_wage-betrg = p8wage-bet.
wa_wage-bsgrd = wa_p0008-bsgrd.
save_flag = 'X'.
ENDIF.
ENDDO. "1
ENDLOOP.
ELSE. "1
save_flag = 'X'.
LOOP AT it_p0008 INTO wa_p0008
WHERE pernr EQ pernr-pernr
AND begda LE pn-endda
AND endda GE pn-begda.
DO 20 TIMES VARYING p8wage FROM wa_p0008-lga01 NEXT wa_p0008-lga02.
If p8wage-lga IS INITIAL. <-- add these lines ..
EXIT.
ENDIF.
Entry found matching selection screen
CLEAR wa_wage.
wa_wage-betrg = p8wage-bet.
wa_wage-bsgrd = wa_p0008-bsgrd.
save_flag = 'X'.
ENDDO. "1
ENDLOOP.
ENDIF. "1