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

loop read and modify problem

Former Member
0 Likes
597

Hellow 1.I wont to doing loop with read and I have a error message the internal table b_itab have no header line I just wont to check if objid in itab = objid in b itab if so modify itab final.

2. do i need to use modify?

TYPES: BEGIN OF 2_itab,

objid TYPE hrobjid,

sobid TYPE sobid,

begda TYPE begdatum,

endda TYPE enddatum,

priox TYPE priox,

sclas TYPE sclas,

myobjid TYPE hrobjid,

END OF 2_itab.

DATA: b_itab TYPE TABLE OF 2_itab,

wa_b_itab LIKE LINE OF b_itab.

LOOP AT itab INTO wa_itab.

READ TABLE b_itab WITH KEY wa_b_itab-myobjid = wa_itab-objid.

IF sy-subrc = 0.

wa_itab_final-objid = wa_itab-objid.

wa_itab_final-firstname = wa_itab-firstname.

wa_itab_final-lastname = wa_itab-lastname.

MODIFY itab_final FROM b_itab .

ENDIF.

ENDLOOP.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
568

Hi,

Check this code....

TYPES: BEGIN OF 2_itab,
objid TYPE hrobjid,
sobid TYPE sobid,
begda TYPE begdatum,
endda TYPE enddatum,
priox TYPE priox,
sclas TYPE sclas,
myobjid TYPE hrobjid,
END OF 2_itab.


DATA: b_itab TYPE TABLE OF 2_itab,
wa_b_itab LIKE LINE OF b_itab.





LOOP AT itab INTO wa_itab.
READ TABLE b_itab WITH KEY myobjid = wa_itab-objid.
IF sy-subrc = 0.
wa_itab_final-objid = wa_itab-objid.
wa_itab_final-firstname = wa_itab-firstname.
wa_itab_final-lastname = wa_itab-lastname.

<b>append wa_itab_final to itab_final.</b>

ENDIF.
ENDLOOP.

Regards

Vijay

5 REPLIES 5
Read only

Former Member
0 Likes
568

Just change the statement a bit

wa_itab1 like line of b_itab.

LOOP AT itab INTO wa_itab.

<b>READ TABLE b_itab into wa_itab1 WITH KEY myobjid = wa_itab-objid.</b>

IF sy-subrc = 0.

wa_itab_final-objid = wa_itab-objid.

wa_itab_final-firstname = wa_itab-firstname.

wa_itab_final-lastname = wa_itab-lastname.

MODIFY itab_final FROM b_itab .

ENDIF.

This should solve your problem

ENDLOOP.

Message was edited by:

Dominic Pappaly

Read only

gopi_narendra
Active Contributor
0 Likes
568

wa_b_itab1 type 2_itab.

LOOP AT itab INTO wa_itab.

<b>READ TABLE b_itab into wa_b_itab1 WITH KEY myobjid = wa_itab-objid.</b>

IF sy-subrc = 0.

wa_itab_final-objid = wa_itab-objid.

wa_itab_final-firstname = wa_itab-firstname.

wa_itab_final-lastname = wa_itab-lastname.

<b>MODIFY itab_final FROM wa_itab_final.</b>

ENDIF.

ENDLOOP.

Change the READ Statement liek above.

Regards

- Gopi

Read only

Former Member
0 Likes
569

Hi,

Check this code....

TYPES: BEGIN OF 2_itab,
objid TYPE hrobjid,
sobid TYPE sobid,
begda TYPE begdatum,
endda TYPE enddatum,
priox TYPE priox,
sclas TYPE sclas,
myobjid TYPE hrobjid,
END OF 2_itab.


DATA: b_itab TYPE TABLE OF 2_itab,
wa_b_itab LIKE LINE OF b_itab.





LOOP AT itab INTO wa_itab.
READ TABLE b_itab WITH KEY myobjid = wa_itab-objid.
IF sy-subrc = 0.
wa_itab_final-objid = wa_itab-objid.
wa_itab_final-firstname = wa_itab-firstname.
wa_itab_final-lastname = wa_itab-lastname.

<b>append wa_itab_final to itab_final.</b>

ENDIF.
ENDLOOP.

Regards

Vijay

Read only

Former Member
0 Likes
568

Antonio,

try

MODIFY itab_final FROM wa_itab_final

TRANSPORTING objid

firstname

lastname

WHERE myobjid = wa_itab-objid.

-Anu.

Read only

former_member283648
Participant
0 Likes
568

Hi,

I have the following suggestions.

1. You are collecting information in the work area WA_ITAB_FINAL and then why u want to modify the table ITAB_FINAL from some other work area? better u replace the modify statement with APPEND WA_ITAB_FINAL into ITAB_FINAL.

2. If you really want to modify then change the statement as follows.

MODIFY itab_final FROM WA_ITAB_FINAL (or some other work area with similar structure. but i dont see any reasons why u should use some other work area). May be u can use the transporting addition.