2008 Nov 04 11:50 AM
Hi
I Have this code
LOOP AT lt_tab2 INTO ls_tab.
SELECT SINGLE budat INTO aux_budat_df FROM zmm_trocdev_item
WHERE zproc EQ ls_tab-zproc
AND st_glob EQ 'E'.
BREAK-POINT.
ENDLOOP.
I need update the field BUDAT_DF of table LT_TAB2 with content of AUX_BUDAT_DF
I Try to made an UPDATE but doens't work... what is the better way to do this ?
2008 Nov 04 11:56 AM
Hi,
Check out the below code:
1. Avoid select statements in between the loops they are major performace issue.
data:
begin of wa,
zproc type zmm_trocdev_item-zproc,
budat typer zmm_trocdev_item-budat,
end of wa.
data:
itab like standard table of wa with header line.
if not lt_tab2[] is initial.
select zproc
budat
into table itab
from zmm_trocdev_item
for all entries in lt_tab2
where zproc eq lt_tab2-zproc
and st_glob eq 'E'.
endif.
LOOP AT lt_tab2 INTO ls_tab.
read table itab with key zproc = ls_tab-zproc.
if sy-subrc eq 0.
ls_tab-BUDAT_DF = itab-budat.
modify lt_tab2 from ls_tab index sy-tabix transporting BUDAT_DF.
endif.
endloop.Thanks & Regards,
Navneeth K.
2008 Nov 04 11:52 AM
LOOP AT lt_tab2 INTO ls_tab.
update LT_TAB2
set BUDAT_DF to ls_tab-BUDAT_DF
WHERE zproc EQ ls_tab-zproc
AND st_glob EQ 'E'.
endloop.
2008 Nov 04 11:56 AM
Hi,
Check out the below code:
1. Avoid select statements in between the loops they are major performace issue.
data:
begin of wa,
zproc type zmm_trocdev_item-zproc,
budat typer zmm_trocdev_item-budat,
end of wa.
data:
itab like standard table of wa with header line.
if not lt_tab2[] is initial.
select zproc
budat
into table itab
from zmm_trocdev_item
for all entries in lt_tab2
where zproc eq lt_tab2-zproc
and st_glob eq 'E'.
endif.
LOOP AT lt_tab2 INTO ls_tab.
read table itab with key zproc = ls_tab-zproc.
if sy-subrc eq 0.
ls_tab-BUDAT_DF = itab-budat.
modify lt_tab2 from ls_tab index sy-tabix transporting BUDAT_DF.
endif.
endloop.Thanks & Regards,
Navneeth K.
2008 Nov 04 11:58 AM
Hello,
You can use a MODIFY TABLE <internal table> from <work area> transporting <workarea fieldname>.
Please make sure that you have got the value in work area with which you want to update the internal table before the modify statement.
Thanks,
Jayant.
2008 Nov 04 12:00 PM
Hi,
Try this piece of code.
LOOP AT lt_tab2 INTO ls_tab.
SELECT SINGLE budat INTO aux_budat_df FROM zmm_trocdev_item
WHERE zproc EQ ls_tab-zproc
AND st_glob EQ 'E'.
BREAK-POINT.
ls_tab-budat_df = aux_bdat_df.
modify lt_tab2 from ls_tab transporting budat_df.
ENDLOOP.
2008 Nov 04 12:31 PM
Hi you can modify by using the TABIX. try this one...
LOOP AT IT_TAB2 INTO LS_TAB.
WA_TABIX = SY-TABIX.
SELECT SINGLE BUDAT
INTO AUX_BUDAT_DF
FROM ZMM_TROCDEV_ITEM
WHERE ZPROC = LS_TAB-ZPROC AND
ST_GLOB = 'E'.
IF SY-SUBRC = 0.
LS_TAB-BUDAT = AUX_BUDAT_DF.
MODIFY IT_TAB2 INDEX WA_TABIX FROM LS_TAB.
ENDIF.
ENDLOOP.
Regards,
R
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |