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

Better way

Former Member
0 Likes
752

Hi Guys

Anyone suggest the better way for this below code...

LOOP AT IT_HEADER

PERFORM GET_DUNNINH_ARREARS USING IT_HEADER-GPART IT_HEADER-VKONT

CHANGING L_DUE_BAL.

FORM GET_DUNNING_ARREARS

USING CDR_BP LIKE FKKMAKO-GPART "Business partner n

CDR_VKONT LIKE FKKMAKO-VKONT "Contract account

CHANGING CDR_ARREARS LIKE DFKKOP-BETRW. "Curr Arrears

SELECT LAUFD GPART VKONT MAZAE MSALM FROM FKKMAKO

UP TO 1 ROWS

INTO TABLE T_FKKMAKO

WHERE GPART = CDR_BP

AND VKONT = CDR_VKONT

AND XMSTO = ' '

ORDER BY LAUFD

DESCENDING.

IF SY-SUBRC = 0.

READ TABLE T_FKKMAKO INDEX 1.

SELECT LAUFD vkont OPBEL FROM FKKMAZE

INTO TABLE T_FKKMAZE

WHERE LAUFD = T_FKKMAKO-LAUFD

AND GPART = T_FKKMAKO-GPART

AND VKONT = T_FKKMAKO-VKONT

AND MAZAE = T_FKKMAKO-MAZAE

AND XMSTO = ' '.

SORT T_FKKMAZE BY LAUFD OPBEL.

DELETE ADJACENT DUPLICATES FROM T_FKKMAZE.

REFRESH T_DFKKOP .

CLEAR: T_DFKKOP.

LOOP AT T_FKKMAZE.

SELECT OPBEL AUGST vkont ABWBL BETRW FAEDN

AUGBD AUGBT AUGRS

FROM DFKKOP

APPENDING TABLE T_DFKKOP

WHERE OPBEL = T_FKKMAZE-OPBEL.

ENDLOOP

LOOP AT T_FKKMAZE.

LOOP AT T_DFKKOP WHERE OPBEL = T_FKKMAZE-OPBEL

AND AUGST = ' ' "not cleared

AND ABWBL = ' ' " no sub docs..

AND FAEDN <= T_FKKMAZE-LAUFD

AND AUGRS = ' '

AND vkont = T_FKKMAZE-VKONT.

CDR_ARREARS = CDR_ARREARS + T_DFKKOP-BETRW.

ENDLOOP.

ENDLOOP.

ENDIF.

ENDFORM.

Thanks in advance

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
611

Hi,

Instead ofwriting the SELECT queries inside the loop, you better write them outside the loop using FOR ALL ENTRIES and READ them inside the LOOP. This may improve the performance...

Hi Guys

Anyone suggest the better way for this below code...

LOOP AT IT_HEADER

PERFORM GET_DUNNINH_ARREARS USING IT_HEADER-GPART IT_HEADER-VKONT

CHANGING L_DUE_BAL.

FORM GET_DUNNING_ARREARS

USING CDR_BP LIKE FKKMAKO-GPART "Business partner n

CDR_VKONT LIKE FKKMAKO-VKONT "Contract account

CHANGING CDR_ARREARS LIKE DFKKOP-BETRW. "Curr Arrears

SELECT LAUFD GPART VKONT MAZAE MSALM FROM FKKMAKO

UP TO 1 ROWS

INTO TABLE T_FKKMAKO

WHERE GPART = CDR_BP

AND VKONT = CDR_VKONT

AND XMSTO = ' '

ORDER BY LAUFD

DESCENDING.

IF SY-SUBRC = 0.

READ TABLE T_FKKMAKO INDEX 1.

SELECT LAUFD vkont OPBEL FROM FKKMAZE

INTO TABLE T_FKKMAZE

WHERE LAUFD = T_FKKMAKO-LAUFD

AND GPART = T_FKKMAKO-GPART

AND VKONT = T_FKKMAKO-VKONT

AND MAZAE = T_FKKMAKO-MAZAE

AND XMSTO = ' '.

SORT T_FKKMAZE BY LAUFD OPBEL.

DELETE ADJACENT DUPLICATES FROM T_FKKMAZE.

REFRESH T_DFKKOP .

CLEAR: T_DFKKOP.

LOOP AT T_FKKMAZE.

SELECT OPBEL AUGST vkont ABWBL BETRW FAEDN

AUGBD AUGBT AUGRS

FROM DFKKOP

APPENDING TABLE T_DFKKOP

WHERE OPBEL = T_FKKMAZE-OPBEL.

ENDLOOP

LOOP AT T_FKKMAZE.

LOOP AT T_DFKKOP WHERE OPBEL = T_FKKMAZE-OPBEL

AND AUGST = ' ' "not cleared

AND ABWBL = ' ' " no sub docs..

AND FAEDN <= T_FKKMAZE-LAUFD

AND AUGRS = ' '

AND vkont = T_FKKMAZE-VKONT.

CDR_ARREARS = CDR_ARREARS + T_DFKKOP-BETRW.

ENDLOOP.

ENDLOOP.

ENDIF.

ENDFORM.

Thanks in advance

3 REPLIES 3
Read only

Former Member
0 Likes
612

Hi,

Instead ofwriting the SELECT queries inside the loop, you better write them outside the loop using FOR ALL ENTRIES and READ them inside the LOOP. This may improve the performance...

Read only

Former Member
0 Likes
611

Hi krk,

Post a meaningful thread with a meaningful Subject in SCN.

Regards,

Suneel G

Read only

Former Member
0 Likes
611

closing