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

problem with loops

Former Member
0 Likes
728

is there any alternative to the following code to improve performance.

LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'MATNR'

.

MOVE-CORRESPONDING L_S_SELECT TO L_R_MATNR.

APPEND L_R_MATNR.

ENDLOOP.

LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'WERKS'.

MOVE-CORRESPONDING L_S_SELECT TO L_R_WERKS.

APPEND L_R_WERKS.

ENDLOOP.

regards

1 ACCEPTED SOLUTION
Read only

PS_1978
Active Participant
0 Likes
709

Hi,

Please try this:

LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT.

case L_S_SELECT-FIELDNM.

when 'MATNR'.

MOVE-CORRESPONDING L_S_SELECT TO L_R_MATNR.

APPEND L_R_MATNR.

when 'WERKS'.

MOVE-CORRESPONDING L_S_SELECT TO L_R_WERKS.

APPEND L_R_WERKS.

endcase.

clear: l_s_select.

ENDLOOP.

5 REPLIES 5
Read only

Former Member
0 Likes
709
if u want to write the whole thing in one loop , try this

LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT.

CASE FIELDNM.

WHEN 'MATNR'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_MATNR.
APPEND L_R_MATNR.

WHEN 'WERKS'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_WERKS.
APPEND L_R_WERKS.

ENDCASE.
ENDLOOP.
Read only

PS_1978
Active Participant
0 Likes
710

Hi,

Please try this:

LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT.

case L_S_SELECT-FIELDNM.

when 'MATNR'.

MOVE-CORRESPONDING L_S_SELECT TO L_R_MATNR.

APPEND L_R_MATNR.

when 'WERKS'.

MOVE-CORRESPONDING L_S_SELECT TO L_R_WERKS.

APPEND L_R_WERKS.

endcase.

clear: l_s_select.

ENDLOOP.

Read only

Former Member
0 Likes
709

Hi,

LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'MATNR' OR FIELDNM = 'WERKS'.

if FIELDNM = 'MATNR' .

MOVE-CORRESPONDING L_S_SELECT TO L_R_MATNR.

APPEND L_R_MATNR.

else.

MOVE-CORRESPONDING L_S_SELECT TO L_R_WERKS.

APPEND L_R_WERKS.

endif.

clear : L_S_SELECT , L_R_MATNR, L_R_WERKS.

ENDLOOP.

Thanks

Sandeep

Reward if helpful

Read only

Former Member
0 Likes
709

Hi Ravi.

If you want to improve performance use field-symbols instead of structure.

So take the code of Chandrasekha modified like this:

FIELD-SYMBOLS: <L_S_SELECT> TYPE type_of_l_s_select.

LOOP AT S_S_IF-T_SELECT ASSIGNING <L_S_SELECT>.
CASE FIELDNM.
WHEN 'MATNR'.
MOVE-CORRESPONDING <L_S_SELECT> TO L_R_MATNR.
APPEND L_R_MATNR. 
WHEN 'WERKS'.
MOVE-CORRESPONDING <L_S_SELECT> TO L_R_WERKS.
APPEND L_R_WERKS. 
ENDCASE.
ENDLOOP.

Regards,

Timo

Read only

Former Member
0 Likes
709

LOOP AT S_S_IF-T_SELECT ASSIGNING <F1>

IF S_S_IF-T_SELECT-<F1> = 'MATNR' .

MOVE S_S_IF-T_SELECT-<F1> TO L_R_MATNR-fieldname.

APPEND L_R_MATNR.

ENDIF.

  • Silmilarly write this logic for werks here.

....

....

....

....

ENDLOOP.