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

Performance tunning

Former Member
0 Likes
347

Hi All,

I got an requirement to reduce the execution time ,that is Loop under Loop statements and i have reduce the time for execution and to use Read statement .so below the code please any one can correct the code and send me detailly with the every statement. iam thank ful to them.i have indicated as 1st and 2nd Loop statements.

SORT gvt_header BY vbeln posnr.

LOOP AT gvt_header.----


>1st Read statement

l_tabix = sy-tabix.

CLEAR ls_header.

MOVE gvt_header TO ls_header.

AT NEW vbeln.

CLEAR: lt_fpla,lt_vbak,lt_vbpa.

READ TABLE lt_vbak WITH KEY vbeln = ls_header-vbeln

BINARY SEARCH.

READ TABLE lt_fpla WITH KEY vbeln = ls_header-vbeln

BINARY SEARCH.

READ TABLE lt_vbpa WITH KEY vbeln = ls_header-vbeln

BINARY SEARCH.

ENDAT.

AT NEW posnr.

CLEAR: lt_veda,lt_vbap.

READ TABLE lt_vbap WITH KEY vbeln = ls_header-vbeln

posnr = ls_header-posnr

BINARY SEARCH.

READ TABLE lt_veda WITH KEY vbeln = ls_header-vbeln

posnr = ls_header-posnr

BINARY SEARCH.

IF sy-subrc <> 0.

READ TABLE lt_veda WITH KEY vbeln = ls_header-vbeln

posnr = '000000'

BINARY SEARCH.

ENDIF.

ENDAT.

ls_header-zz_crm_id = lt_vbak-zz_crm_id.

ls_header-ktext = lt_vbak-ktext.

ls_header-faksk = lt_vbak-faksk.

ls_header-fpbez = lt_fpla-fpbez.

ls_header-bezeich = lt_fpla-bezeich.

ls_header-faksp = lt_vbap-faksp.

ls_header-anndat = lt_veda-venddat.

ls_header-pstyv = lt_vbap-pstyv.

ls_header-fpart = lt_fpla-fpart.

IF lt_fpla-autte = 'X'.

ls_header-autte = 'Advance'.

ELSE.

ls_header-autte = 'Arrears'.

ENDIF.

  • Insert by BRDK933549, modify the anniversary logic

IF ls_header-anndat IS INITIAL.

CLEAR lt_veda2.

READ TABLE lt_veda2 WITH KEY vbeln = ls_header-vbeln

vposn = lt_vbap-uepos

BINARY SEARCH.

ls_header-anndat = lt_veda2-venddat.

ENDIF.

IF lt_veda-vbedkue IS NOT INITIAL.

ls_header-stats = 'Cancelled'.

ls_header-stats = lt_veda-venddat.

ELSEIF ls_header-anndat < sy-datum.

ls_header-stats = 'Expired'.

ELSE.

ls_header-stats = 'Active'.

ENDIF.

  • End of BRDK933549

  • IF lt_veda-vwundat IS NOT INITIAL.

  • ls_header-candat = lt_veda-venddat.

  • ls_header-stats = 'Cancelled'.

  • ELSEIF lt_veda-venddat < sy-datum.

  • ls_header-stats = 'Expired'.

  • ELSE.

  • ls_header-stats = 'Active'.

  • ENDIF.

IF spernr[] IS NOT INITIAL AND lt_vbpa-pernr NOT IN spernr.

DELETE gvt_header INDEX l_tabix.

DELETE gvt_item WHERE vbeln = ls_header-vbeln AND

posnr = ls_header-posnr.

CONTINUE.

ELSE.

ls_header-cmana = lt_vbpa-pernr.

ls_header-ename = lt_vbpa-ename.

ENDIF.

CLEAR l_stats.

l_stats = ls_header-stats.

TRANSLATE l_stats TO UPPER CASE.

TRANSLATE ls_header-stats TO UPPER CASE.

TRANSLATE ls_header-autte TO UPPER CASE.

TRANSLATE ls_header-BEZEICH TO UPPER CASE.

IF sstats[] IS NOT INITIAL AND l_stats NOT IN sstats.

DELETE gvt_header INDEX l_tabix.

DELETE gvt_item WHERE vbeln = ls_header-vbeln AND

posnr = ls_header-posnr.

CONTINUE.

ENDIF.

LOOP AT gvt_item WHERE vbeln = ls_header-vbeln AND----


>2nd ReadStatement

posnr = ls_header-posnr.

gvt_item-zz_crm_id = ls_header-zz_crm_id.

gvt_item-ktext = ls_header-ktext.

gvt_item-faksk = ls_header-faksk.

gvt_item-fpbez = ls_header-fpbez.

gvt_item-bezeich = ls_header-bezeich.

gvt_item-faksp = ls_header-faksp.

gvt_item-anndat = ls_header-anndat.

gvt_item-candat = ls_header-candat.

gvt_item-stats = ls_header-stats.

gvt_item-autte = ls_header-autte.

gvt_item-cmana = ls_header-cmana.

gvt_item-ename = ls_header-ename.

gvt_item-pstyv = ls_header-pstyv.

gvt_item-fpart = ls_header-fpart.

  • Insert by BRDK933549, modify the anniversary logic

  • End of BRDK933549

MODIFY gvt_item INDEX sy-tabix

TRANSPORTING zz_crm_id ktext faksk fpbez bezeich

faksp anndat candat stats autte cmana ename pstyv fpart.

ENDLOOP.

MODIFY gvt_header FROM ls_header

TRANSPORTING zz_crm_id ktext faksk fpbez bezeich

faksp anndat candat stats autte cmana ename pstyv fpart.

ENDLOOP.

2 REPLIES 2
Read only

matt
Active Contributor
0 Likes
327

In future, please use a more meaningful subject line for your questions

Use HASHED Tables for lookup - SORTED if you must. binary search is really old tech. now. unless you're on a very old system.

matt

Read only

Former Member
0 Likes
327

jj