Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

CODE Optimization

Former Member
0 Likes
446

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.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
417

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

2 REPLIES 2
Read only

Former Member
0 Likes
417

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

Read only

Former Member
0 Likes
418

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