10-12-2006 4:04 PM
I got the following runtime error. please guide and help
tvs_tnew_page_alloc_failed
short dump has not being completely stored. its too big.
LOOP AT I_TMP_CAUFV.
SELECT SINGLE * INTO I_JEST FROM JEST
WHERE STAT IN ('I0002','I0042') AND OBJNR = I_TMP_CAUFV-OBJNR.
IF SY-SUBRC = 0.
APPEND I_TMP_CAUFV TO I_CAUFV<b>.-->error</b>
CLEAR I_TMP_CAUFV.
ENDIF.
ENDLOOP.
IF NOT I_CAUFV[] IS INITIAL.
SELECT * FROM afko INTO TABLE I_afko FOR ALL ENTRIES IN I_CAUFV
WHERE aufnr = I_CAUFV-AUFNR.
SELECT * FROM MARA INTO TABLE I_MARA FOR ALL ENTRIES IN I_CAUFV
WHERE MATNR = I_CAUFV-PLNBEZ.
SELECT * FROM AFPO INTO TABLE I_AFPO FOR ALL ENTRIES IN I_CAUFV
WHERE AUFNR = I_CAUFV-AUFNR.
LOOP AT I_CAUFV.
READ TABLE I_AFPO WITH KEY AUFNR = I_CAUFV-AUFNR.
IF SY-SUBRC = 0.
DATA_TAB_TEMP-AUFNR = I_CAUFV-AUFNR.
DATA_TAB_TEMP-GAMNG = I_CAUFV-GAMNG.
DATA_TAB_TEMP-GLTRP = I_CAUFV-GLTRP.
DATA_TAB_TEMP-PLNBEZ = I_CAUFV-PLNBEZ.
DATA_TAB_TEMP-CALQTY = DATA_TAB_TEMP-CALQTY + I_CAUFV-GAMNG -
I_AFPO-WEMNG.
DATA_TAB_TEMP-OBJNR = I_CAUFV-OBJNR.
ENDIF.
READ TABLE I_MARA WITH KEY MATNR = I_CAUFV-PLNBEZ.
IF SY-SUBRC = 0.
DATA_TAB_TEMP-WRKST = I_MARA-WRKST.
ENDIF.
READ TABLE I_afko WITH KEY AUFNR = I_CAUFV-AUFNR.
if sy-subrc = 0.
DATA_TAB_TEMP-LEAD_AUFNR = i_caufv-lead_aufnr.
data_tab_temp-maufnr = i_caufv-maufnr.
endif.
I_CAUFV-LEAD_AUFNR = I_ORDNA-LEAD_AUFNR.
I_CAUFV-MAUFNR = I_ORDNA-MAUFNR.
MOVE I_CAUFV-LEAD_AUFNR TO DATA_TAB_TEMP-LEAD_AUFNR.
MOVE I_CAUFV-MAUFNR TO DATA_TAB_TEMP-MAUFNR.
MOVE-CORRESPONDING DATA_TAB_TEMP TO DATA_TAB.
APPEND DATA_TAB.
CLEAR DATA_TAB.
CLEAR CALQTY.
ENDLOOP.
ENDIF.
10-12-2006 4:07 PM
10-12-2006 4:09 PM
hi Kamalesh,
I guess here you are trying to move the values with append statement ..
APPEND I_TMP_CAUFV TO I_CAUFV.-->error
try using it in this way ..
move I_TMP_CAUFV-field TO I_CAUFV-field.
append I_CAUFV.
Regards,
Santosh
10-12-2006 4:12 PM
even i had got this error
this is because the number of entries are huge
so while appending one more than maximum it is giving error, no of records to be reduced ot i think there r some settings to be changed to increase the space
10-12-2006 4:20 PM
It looks as if you have two large tables. You may be able to resolve this by deleting the entry from the first table asy append it to the second:
LOOP AT i_tmp_caufv.
<b>tmp_index = sy-tabix.</b>
SELECT SINGLE * INTO i_jest FROM jest
WHERE stat IN ('I0002','I0042') AND objnr = i_tmp_caufv-objnr.
IF sy-subrc = 0.
APPEND i_tmp_caufv TO i_caufv. "-->error
clear i_tmp_caufv.
<b> delete i_tmp_caufv index tmp_index.</b>
ENDIF.
ENDLOOP.
Rob
Message was edited by: Rob Burbank
10-12-2006 4:26 PM
Hi,
dump is due internal table exceeded its max limit.
use below logic
data I_TMP_CAUFV1 like I_TMP_CAUFV occurs 0 with header line.
if not I_TMP_CAUFV[] is initial.
I_TMP_CAUFV1[] = I_TMP_CAUFV[].
delete I_TMP_CAUFV1 where objnr is initial.
sort I_TMP_CAUFV1 by objnr.
delete adjacent duplicates from I_TMP_CAUFV1 comparing
objnr.
if not I_TMP_CAUFV1[] is initial.
SELECT * INTO table I_JEST FROM JEST
for all entries in I_TMP_CAUFV1
WHERE STAT IN ('I0002','I0042')
AND OBJNR = I_TMP_CAUFV1-OBJNR
endif.
free I_TMP_CAUFV1
.REgards
amole
10-12-2006 5:04 PM
If nothing of the suggested before really helps - I would modify your logic to process records in packages starting from the inital select.
select ... into table I_TMP_CAUFV package-size 1000
your processing logic... to populate i_caufv.
endselect.
OR - do it other way, instead of adding record to i_caufv, just delete it from i_tmp_caufv if your select from JEST returns non zero subrc.