‎2009 Apr 18 6:07 AM
IF i_tab-bwart = '102' OR i_tab-bwart = '122' .
IF i_tab-lfbnr IS NOT INITIAL.
MOVE-CORRESPONDING i_tab TO wa_i_tab.
READ TABLE i_tab WITH KEY lfbnr = i_tab-lfbnr.
IF i_tab-menge = wa_i_tab-menge.
DELETE i_tab WHERE lfbnr = i_tab-lfbnr.
ELSEIF i_tab-menge NE wa_i_tab-menge.
i_tab-menge = i_tab-menge - wa_i_tab-menge.
MOVE i_tab-menge to i_tab-menge.
modify i_tab. " This is giving dump because i'm modifying in between Plz suggest
ENDIF.
ENDIF.
ELSE.
APPEND i_tab.
ENDIF.
‎2009 Apr 18 7:50 AM
you use the following technique.
declare a variable v_tabis type sy-tabix.
IF i_tab-bwart = '102' OR i_tab-bwart = '122' .
IF i_tab-lfbnr IS NOT INITIAL.
MOVE-CORRESPONDING i_tab TO wa_i_tab.
READ TABLE i_tab WITH KEY lfbnr = i_tab-lfbnr.
*v_tabix = sy-tabix.*
IF i_tab-menge = wa_i_tab-menge.
DELETE i_tab WHERE lfbnr = i_tab-lfbnr.
ELSEIF i_tab-menge NE wa_i_tab-menge.
i_tab-menge = i_tab-menge - wa_i_tab-menge.
MOVE i_tab-menge to i_tab-menge.
*modify i_tab index v_tabix.* " This is giving dump because i'm modifying in between Plz suggest
ENDIF.
ENDIF.
ELSE.
APPEND i_tab.
ENDIF.
‎2009 Apr 18 6:13 AM
modify i_tab. Out side the Loop will give you short Dump.
1) Either Use:
Modify i_tab index <Index_no>.2) Or Use:
Modify table i_tab[] from I_tab. " Modify from Header LineRegards,
Gurpreet
‎2009 Apr 18 7:50 AM
you use the following technique.
declare a variable v_tabis type sy-tabix.
IF i_tab-bwart = '102' OR i_tab-bwart = '122' .
IF i_tab-lfbnr IS NOT INITIAL.
MOVE-CORRESPONDING i_tab TO wa_i_tab.
READ TABLE i_tab WITH KEY lfbnr = i_tab-lfbnr.
*v_tabix = sy-tabix.*
IF i_tab-menge = wa_i_tab-menge.
DELETE i_tab WHERE lfbnr = i_tab-lfbnr.
ELSEIF i_tab-menge NE wa_i_tab-menge.
i_tab-menge = i_tab-menge - wa_i_tab-menge.
MOVE i_tab-menge to i_tab-menge.
*modify i_tab index v_tabix.* " This is giving dump because i'm modifying in between Plz suggest
ENDIF.
ENDIF.
ELSE.
APPEND i_tab.
ENDIF.
‎2009 Apr 18 7:56 AM
Hi Abhut,
IF i_tab-bwart = '102' OR i_tab-bwart = '122' .
IF i_tab-lfbnr IS NOT INITIAL.
MOVE-CORRESPONDING i_tab TO wa_i_tab.
READ TABLE i_tab WITH KEY lfbnr = i_tab-lfbnr.
IF i_tab-menge = wa_i_tab-menge.
DELETE i_tab WHERE lfbnr = i_tab-lfbnr.
ELSEIF i_tab-menge NE wa_i_tab-menge.
i_tab-menge = i_tab-menge - wa_i_tab-menge.
MOVE i_tab-menge to i_tab-menge. " why do you need this line. move same value to same variable ??
modify i_tab from index sy-tabix transporting menge.. "look this.
ENDIF.
ENDIF.
ELSE.
APPEND i_tab.
ENDIF.Thanks