‎2007 Nov 15 12:46 PM
hallow
i do loop and when subrc = 0. i fill x_wa and i working the problem here that the modify dont do any thihng what can be the problem?
DATA: l_sdprojectinvoice TYPE TABLE OF zsdprojectinvoices,
wa_sd LIKE LINE OF l_sdprojectinvoice,
x_wa LIKE LINE OF sdprojectinvoice.
LOOP AT l_sdprojectinvoice INTO wa_sd.
READ TABLE sdprojectinvoice into x_wa WITH KEY vbeln = wa_sd-vbeln.
IF sy-subrc = 0.
MOVE:wa_sd-vbtyp TO x_wa-vbtyp,
wa_sd-fkdat TO x_wa-fkdat,
wa_sd-netwr TO x_wa-netwr,
wa_sd-waerk TO x_wa-waerk.
MODIFY TABLE sdprojectinvoice from x_wa TRANSPORTING vbtyp fkdat netwr waerk.
CLEAR:wa_sd,x_wa.
ENDIF.
ENDLOOP.
reagards
‎2007 Nov 15 12:48 PM
DATA: l_sdprojectinvoice TYPE TABLE OF zsdprojectinvoices,
wa_sd LIKE LINE OF l_sdprojectinvoice,
x_wa LIKE LINE OF sdprojectinvoice.
LOOP AT l_sdprojectinvoice INTO wa_sd.
READ TABLE sdprojectinvoice into x_wa WITH KEY vbeln = wa_sd-vbeln.
IF sy-subrc = 0.
MOVE:wa_sd-vbtyp TO x_wa-vbtyp,
wa_sd-fkdat TO x_wa-fkdat,
wa_sd-netwr TO x_wa-netwr,
wa_sd-waerk TO x_wa-waerk.
MODIFY sdprojectinvoice from x_wa INDEX sy-tabix.
CLEAR:wa_sd,x_wa.
ENDIF.
ENDLOOP.
It should work now....
Message was edited by:
Perez C
‎2007 Nov 15 12:48 PM
DATA: l_sdprojectinvoice TYPE TABLE OF zsdprojectinvoices,
wa_sd LIKE LINE OF l_sdprojectinvoice,
x_wa LIKE LINE OF sdprojectinvoice.
LOOP AT l_sdprojectinvoice INTO wa_sd.
READ TABLE sdprojectinvoice into x_wa WITH KEY vbeln = wa_sd-vbeln.
IF sy-subrc = 0.
MOVE:wa_sd-vbtyp TO x_wa-vbtyp,
wa_sd-fkdat TO x_wa-fkdat,
wa_sd-netwr TO x_wa-netwr,
wa_sd-waerk TO x_wa-waerk.
MODIFY sdprojectinvoice from x_wa INDEX sy-tabix.
CLEAR:wa_sd,x_wa.
ENDIF.
ENDLOOP.
It should work now....
Message was edited by:
Perez C
‎2007 Nov 15 1:19 PM
HI PEREZ
thanks it solved with sy-index, but way? all the time that i use modify i dont use sy-index and its work o.k. way now it dont work ?
Regards
‎2007 Nov 15 1:46 PM
because...
LOOP AT l_sdprojectinvoice INTO wa_sd.
"here sy-tabix will set to index of l_sdprojectinvoice.
READ TABLE sdprojectinvoice into x_wa WITH KEY vbeln = wa_sd-vbeln.
"If read stmt is successful then sy-tabix will set to table sdprojectinvoice.
"So you can MODIFY sdprojectinvoice using particular table index
‎2007 Nov 15 12:49 PM
Hi,
vbtyp fkdat netwr waerk
Are they in the same order as you declared in internal table
Reward if it helps,
Satish
‎2007 Nov 15 12:52 PM
Hi,
Just remove key word 'table' from modify statement.
Please reward points if useful.
Thanks,
Sudha
‎2007 Nov 15 12:53 PM
Try
MODIFY sdprojectinvoice index sy-tabix from x_wa TRANSPORTING vbtyp fkdat netwr waerk.
Regards,
Michael
‎2007 Nov 15 1:53 PM
Hello Ricardo,
The modify table sdprojectinvoice statement doesn't work, you have to use modify sdprojectinvoice. But in your case you can't use that either because you don't have a valid cursor for sdprojectinvoice. The loop you are doing is at l_sdprojectinvoice, you access table sdprojectinvoice through a read instead of a loop that's why you can't use modify sdprojectinvoice without index.
If your internal table is larger than a few entries a more performant way to do that would be:
READ TABLE sdprojectinvoice ASSIGNING <fs_wa> WITH KEY vbeln = wa_sd-vbeln.
IF sy-subrc = 0.
MOVE: wa_sd-vbtyp TO <fs_wa>-vbtyp,
wa_sd-fkdat TO <fs_wa>-fkdat,
wa_sd-netwr TO <fs_wa>-netwr,
wa_sd-waerk TO <fs_wa>-waerk.
Since the field-symbol is pointing to the table you don't even need to do a modify.
Regards,
Michael