‎2007 May 18 6:33 AM
Hi ,
I have written the following code ...
Can any one minimise the following code ....
LOOP AT IT_EKKO.
LOOP AT IT_EKPO . " WHERE EBELN = IT_EKKO-EBELN.
READ TABLE IT_EKKO WITH KEY EBELN = IT_EKPO-EBELN.
SELECT * FROM KONP
INTO CORRESPONDING FIELDS OF IT_KONP
WHERE MWSK1 = IT_EKPO-MWSKZ.
IT_KONP-KNUMV = IT_EKKO-KNUMV.
APPEND IT_KONP.
CLEAR IT_KONP.
ENDSELECT.
ENDLOOP.
ENDLOOP.
*****************
To get Tax type , % from konp table and to get the Base value from konv.
READ TABLE IT_CNTYPE WITH KEY EBELN = IT_EKPO-EBELN KNUMV = IT_EKPO-KNUMV MWSKZ = IT_EKPO-MWSKZ.
LOOP AT IT_EKPO.
LOOP AT IT_KONP WHERE KNUMV = IT_EKPO-KNUMV.
CHECK IT_KONP-KSCHL NE 'JM01'.
READ TABLE IT_KONV WITH KEY KNUMV = IT_EKPO-KNUMV KSCHL = 'NVAS'.
IF IT_KONP-KSCHL NE 'JM01'.
TAX = IT_KONP-KBETR / 10.
TAX = ( IT_KONV-KAWRT * TAX ) / 100.
CLEAR IT_CNTYPE.
IT_CNTYPE-EBELN = IT_EKPO-EBELN.
IT_CNTYPE-KNUMV = IT_EKPO-KNUMV.
IT_CNTYPE-CNTYPE = IT_KONP-KSCHL.
IT_CNTYPE-KBETR = IT_KONP-KBETR.
IT_CNTYPE-KAWRT = TAX.
IT_CNTYPE-MWSKZ = IT_EKPO-MWSKZ.
APPEND IT_CNTYPE.
ENDLOOP.
ENDLOOP.
Bye
satya.
‎2007 May 18 6:51 AM
Hi,
Read all the data first from EKKO and EKPO. WHile reading data from EKPO, use "for all entries in IT_EKKO where EBELN = IT_EKKO-EBELN" in select statement. then
loop at it_ekko.
read table it_ekpo with key ebeln = it_ekko-ebeln.
if sy-subrc eq 0.
select knumv from knop into corresponding fields of TABLE it_knop
where mwsk1 = it_ekpo-mwskz.
endif.
endloop.
To get Tax type , % from konp table and to get the Base value from konv.
USE THE SAME CODE WHICH YOU HAVE WRITTEN ONLY IF YOU ARE SURE THAT THERE IS MORE THAN ONE ENTRY IN IT_KNOP FOR EACH KNUMV IN IT_EKPO. iF THRE'S GONNA BE ONLY ONE ENTRY THEN USE READ TABLE INSTEAD OF LOOP.
Hope this helps,
Rewar points if useful.
Karan
‎2007 May 18 6:41 AM
Hi
avoid all the nested Loops from the code.
First write a select statement for EKKO and EKPO using a join and store the data
fetch EKKO-KNUMV and EKPO-EBELp in it. say this is in ITAB.
for all entries of ITAB fetch the data from KONV table using ITAB-KNUMV and ITAB-EBELP passing to KONV-KPOSN. fetch this data into IT_PRICE
Then loop at ITAB.
read the table It_PRICE with key KNUMV = itab-knumv
ad do the calculations and modify the fields.
endloop.
Reward points if useful
Regards
Anji
‎2007 May 18 6:51 AM
Hi,
Read all the data first from EKKO and EKPO. WHile reading data from EKPO, use "for all entries in IT_EKKO where EBELN = IT_EKKO-EBELN" in select statement. then
loop at it_ekko.
read table it_ekpo with key ebeln = it_ekko-ebeln.
if sy-subrc eq 0.
select knumv from knop into corresponding fields of TABLE it_knop
where mwsk1 = it_ekpo-mwskz.
endif.
endloop.
To get Tax type , % from konp table and to get the Base value from konv.
USE THE SAME CODE WHICH YOU HAVE WRITTEN ONLY IF YOU ARE SURE THAT THERE IS MORE THAN ONE ENTRY IN IT_KNOP FOR EACH KNUMV IN IT_EKPO. iF THRE'S GONNA BE ONLY ONE ENTRY THEN USE READ TABLE INSTEAD OF LOOP.
Hope this helps,
Rewar points if useful.
Karan