06-24-2005 5:06 PM
I have a ALV report program that displays an internal table with about 5000 records. When the user either selects 1-n lines on the ALV screen (or none at all) and then clicks a Details button I fill another internal table with the details that I want to display on the next screen.
The problem I am running into is that the 2nd internal table has 100K+ records but when trying to execute the REUSE_ALV_GRID_DISPLAY fm I get a program abend telling me that "No storage space available for extending table IT_84403".
I have to assume that ALV has a limitation as to the number of records that can be displayed. I checked the ALV documentation in the R/3 Library but did not find any information as to how much data (or number of records) can be displayed in an ALV.
Is the limitation just the number of records or the total memory used (i.e. number of records * record length)? Knowing that I could monitor for the table size and maybe allow the details table to be displayed page by page (just a thought).
Thanks for any comments.
Gerd
06-24-2005 6:00 PM
06-24-2005 6:06 PM
Thanks for your reply, Rich.
When I debugged the program just before the REUSE fm for the 2nd internal table I found that the 2nd table was filled with the records in questions. Now when the fm is executed I assume that ALV is yet again creating another internal table IT_84403 (I have no idea why this table is created, it sure is not the one I pass to the fm) that must be used to fill the ALV screen.
After this seems to be the case I am not surprised that I ran out of memory. The question is what can I do about it and why is that table being used in the first place.
06-24-2005 6:20 PM
06-24-2005 6:29 PM
The 2nd internal table has exactly 130969 records. Record length is 705 byte long.
The error is in SAP include LSLVCF05 at a statment where it appends the record to another internal table
append gs_lvc_data to rt_lvc_data.
06-24-2005 6:37 PM
06-24-2005 6:51 PM
I will do some more testing to get an idea what the record limit is on our system (I understand that it pretty much depends on the available memory on our server and how it is configured).
I wanted to avoid figuring out how to do the page by page but I might make my pages about 10K records long. So it will be a combination of scrolling down on the screen and having to use the next page/previous page buttons (and a status msg for the beginning and end of file).
Or I force the user to make a selection on the first screen but do not allow all records to be selected at any time (I already see my users scream murder...).
I have to re-think the logic of the program again. Maybe I can come up with a better solution.
06-24-2005 6:53 PM
Ok, I just tested it, I am getting the same error when filling up an internal table without going to ALV grid.
Here is the code.
* Internal Tables
data: itab type table of mara with header line.
data: itab2 type table of mara.
select * into table itab
from mara
where matnr in s_matnr
and mtart in s_mtart.
do 20 times.
loop at itab.
append itab to itab2.
endloop.
enddo.
That said, I have to say that the problem is definitly not because the ALV grid can't handle it, but the system itself can't handle it.
Regards,
Rich Heilman
06-24-2005 7:24 PM
The problem is that I create a table (using up a good junk of memory) then I pass it on to ALV which creates another copy of my table (without free'ing my memory), thus causing the memory bottle neck.
In any case I have to re-think my program logic as to how many records I want to display on the first screen (maybe I already should have my first limit here). Even if I would get the 150K records to work I still could/would run into the same problem with even larger data volumes (which would be possible in my application).
Thanks again for your help.
06-24-2005 7:33 PM
One more question, Rich.
Do you know what the 2 parameter in the REUSE_ALV_GRID_DISPLAY
i_bypassing_buffer
i_buffer_active
are used for?
I probably play around with either one to see if that has any effect on my problem.
06-24-2005 7:38 PM
06-24-2005 8:49 PM
well, I just finished testing all combinations of the 2 parameter but regardless the settings I still get the abend.
06-24-2005 8:52 PM