‎2007 Apr 06 10:20 AM
SELECT vbeln
INTO TABLE int_vbfa
FROM vbfa
FOR ALL ENTRIES IN int_vbeln
WHERE vbelv = int_vbeln-vbeln
This code is causing the program to fail in background mode, bacause of memory in buffer overflowing, any way to fine tune this query please. Thanks.
‎2007 Apr 06 10:24 AM
this is the most preferable way what you have done. You can just check once with the read statement within the loop.
‎2007 Apr 06 10:27 AM
if not int_vbeln[] is initial.
SELECT vbeln
INTO TABLE int_vbfa
FROM vbfa
FOR ALL ENTRIES IN int_vbeln
WHERE vbelv = int_vbeln-vbeln
endif.
just check whether int_vbeln contains value or not if it does not contain any value it will fetch all the rows irrespective of where clause...
regards
shiba dutta
‎2007 Apr 06 10:29 AM
I hope u have one more common feild to compare.
thats waht they are asking.. try put some more condition in where clause.
i dont know what are the table ur using, other wise i would have helped more..
if useful reward with some points...
‎2007 Apr 06 10:30 AM
Hi
U should split that statament because or you have too many hits in int_vbeln or you're trying to load too many hits into int_vbfa.
U should consider every program can use a limitated memory space, if the program needs more spaces than limit a dump occurs.
U should ask to you basis to increase the memory space but it's not good solution.
Anyway remember if INT_VBELN is initial your select statament load the whole VBFA, so you should check that table:
F NOT INT_VBELN[] IS INITIAL.
SELECT * FROM VBFA INTO TABLE INT_VBFA
FOR ALL ENTRIES IN INT_VBELN
WHERE VBELN = INT_VBELN-VBELN.
ENDIF.Max
‎2007 Apr 06 10:31 AM
The complete query is
WAIT UP TO 12 SECONDS.
REFRESH int_vbfa.
SELECT vbeln
INTO TABLE int_vbfa
FROM vbfa
FOR ALL ENTRIES IN int_vbeln
WHERE vbelv = int_vbeln-vbeln.
‎2007 Apr 06 10:35 AM
if you are refreshing the table int_vbeln then what is the need of for all entries? here it is fetching all the records from vbfa because your int table does not contain any data when you are using for all entries.........
regards
shiba dutta
‎2007 Apr 06 11:42 AM
ABAP Runtime error : TSV_TNEW_BLOCKS_NO_ROLL_MEMORY
No roll storage space of length 1546896 available for internal storage.Each transaction requires some main memory space to process
application data. If the operating system cannot provide any more
space, the transaction is terminatedThe internal table "IT_134" could not be enlarged further.
You attempted to create a block table of length 1546896 for the internal
table "IT_134". This happens whenever the OCCURS area of the internal table
is exceeded. The requested storage space was not available in the roll
area.
The amount of memory requested is no longer available.
WAIT UP TO 12 SECONDS.
024970 REFRESH int_vbfa.
024980 SELECT vbeln
024990 INTO TABLE int_vbfa
025000 FROM vbfa
025010 FOR ALL ENTRIES IN int_vbeln
-
> WHERE vbelv = int_vbeln-vbeln.
‎2007 Apr 06 6:23 PM