‎2010 Jul 20 4:48 PM
Hi ABAP people,
I have an issue with a new report that needs a large selection screen: 13 tabs, each tab should contain 50 fields. Pretty painful but that's how many fields we need.
After the writing the definition of the 4th tab or so, when I try to activate the code I get a syntax error:
"Text buffer overflow during generation."
I tried to put the code for each tab into separate includes but this had no effect.
Any idea what this error means and how, if possible, I can get around it? Have I hit a general limit of the SAP selection screen?
Thanks for any advice.
Richard
‎2010 Jul 21 11:58 AM
HI,
Sandra is right, better use Screen to include subscreens and go throught the below link by Rich
in PBO the LOOP AT ITAB WITH CONTROL TC must be in the same order in which the Table controls are place on the screen
from Left to Right and Top to Bottom, earlier there was thread related to this and (the Above info) solution was provided by Rich
/people/rich.heilman/blog/2008/05/20/using-multiple-table-controls-in-one-screen
Cheerz
Ram
‎2010 Jul 20 9:29 PM
> Have I hit a general limit of the SAP selection screen?
Probably. I guess nobody (which reads the forum now) had this issue. We generally create smallest screens!
Contact SAP support if you need detailed information.
As a workaround, try to define screens instead of selection screens, I think screens generally contain more fields than selection screens so maybe you'll have more chance. Or you can embed screens in subscreen areas of the selection screen.
‎2010 Jul 21 11:44 AM
Thanks for the reply Sandra.
My impression is that you can't embed a screen into the subscreen of a selection-screen. According to what I've read this can can only be done in the PBO of a regular screen and selection-screens don't have a PBO module. Correct me if I'm wrong.
Therefore I think my only option is to switch to using a dialog based program. Obviously that means users won't have the advantage of using selection screen variants, which might have been useful given the number of fields! But I can probably manually implement a similar functionality to variants.
Thanks,
Richard
‎2010 Jul 21 1:57 PM
> this can can only be done in the PBO of a regular screen and selection-screens don't have a PBO module. Correct me if I'm wrong.
You're wrong. As with dynpros, you can define tabstrip controls or subscreen areas inside selection screens (for example I could easily embed control framework in a selection screen).
You define subscreen areas this way (this one embeds dynpro 1100; don't be mistaken, though it looks like a code for tabstrip control, it's not: the tab button is not displayed because it contains only one tab; that's explained in the ABAP doc):
SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab2 FOR 10 LINES,
TAB (20) tabtitl2 USER-COMMAND push2 DEFAULT SCREEN 1100,
END OF BLOCK mytab2.
> But I can probably manually implement a similar functionality to variants.
Not so easy. (Edit 2 minutes later: ) not so easy if the fields are contained in dynpro, but easy if the fields are contained in a selection screen nested inside a dynpro (using RS_VARIANT_SAVE_FROM_SELSCREEN function module)
But can't you make one program per tab, and use SUBMIT without AND RETURN to switch from one to another?
It's easy and I don't see any reason why it couldn't work!
‎2010 Jul 21 11:58 AM
HI,
Sandra is right, better use Screen to include subscreens and go throught the below link by Rich
in PBO the LOOP AT ITAB WITH CONTROL TC must be in the same order in which the Table controls are place on the screen
from Left to Right and Top to Bottom, earlier there was thread related to this and (the Above info) solution was provided by Rich
/people/rich.heilman/blog/2008/05/20/using-multiple-table-controls-in-one-screen
Cheerz
Ram
‎2010 Jul 21 1:26 PM
OK, I was talking rubbish, you can associate a screen with a selection-screen tab in the AT SELECTION-SCREEN event, rather than PBO.
Thanks for that link, could come in very handy.
‎2010 Oct 08 2:48 PM
I know this is a late response but it might help other people who are searching for information about this problem.
You can increase the size of the buffer by changing the system parameter abap/rsyntextln
Short dumps are generated when the error occurs and the suggestion to change this parameter is in the short dump text.
Ours was at the default value of 120000. I increased it to 500000 and our ABAP developer was then able to extend a selection screen as required.
I presume that the parameter must be set to the same value on each system in the landscape, otherwise the program may fail to generate when it is transported into QA / Prod.
‎2010 Oct 08 3:38 PM
Hi Mark, thank you for the feedback, that's always welcome even when late
You say you've got a dump, but the original issue was an activation error message. Do you get it when you execute the program or when you activate it?
Thx!
‎2010 Oct 15 5:10 PM
Hi Sandra, you're welcome!
The dumps occurred at the same time as the error message, when attempting to activate the program. But they didn't show on the screen like ordinary short dumps. Presumably they happened in a separate work process.
If you trigger the error again and check ST22 you should see them there.
‎2010 Oct 28 7:51 PM
Hi Mark,
Thanks a lot for the contribution. I had no idea that a dump was being generated, I've never heard of this happening in the background and hadn't thought to look at ST22. This is useful info for the future.
For my case I was able to go back to the business and identify fields that were redundant on a lot of the tabs and finally reduce the number of fields to below the threshold at which I got the error. Not a technical answer but in any case the chances of me persuading the basis team to change parameters for me would have been somewhere approaching zero.
However given your reply I am happy to mark this thread as solved.
Regards,
Richard