‎2010 Mar 08 7:26 PM
Hi,
I am getting this error GENERATE_SUBPOOL_DIR_FULL in my program.
DATA: I_ALV_CAT TYPE TABLE OF LVC_S_FCAT.
DATA : D_REF2 TYPE REF TO DATA .
FIELD-SYMBOLS: <F_FS> TYPE STANDARD TABLE.
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = I_ALV_CAT
IMPORTING
EP_TABLE = D_REF2.
ASSIGN D_REF2->* TO <F_FS>.I searched the forum but i couldn't find the solution from anybody.....
‎2010 Mar 08 8:18 PM
Hello,
I think there is a limit to the number of dynamic itabs you can create in a program.
There is also a similar exception class
CX_SY_GENERATE_SUBPOOL_FULL
Try clearing / unassigning the old dynamic itabs if you don't need them.
‎2010 Mar 08 8:18 PM
Hello,
I think there is a limit to the number of dynamic itabs you can create in a program.
There is also a similar exception class
CX_SY_GENERATE_SUBPOOL_FULL
Try clearing / unassigning the old dynamic itabs if you don't need them.
‎2010 Mar 08 8:33 PM
It refers to same error.
CX_SY_GENERATE_SUBPOOL_FULL
Try clearing / unassigning the old dynamic itabs if you don't need them.How to do the above ?
‎2010 Mar 08 8:41 PM
Hello,
Since this error is due to a large number of dynamic itabs, i'm guessing that you are either calling this in a loop or you have similar statements elsewhere in the program.
As soon as you do not require any field symbol, use
unassign <F_FS>
Also, free d_ref2
‎2010 Mar 08 9:25 PM
I did the same way....
unassign <F_FS>
free d_ref2
But still same error at 37 the time of table creation....till 36 is ok...
call function 'LVC_TABLE_CREATE'
exporting
it_fieldcat = it_fieldcatalog
I_CALLBACK_PROGRAM =
I_FORMNAME =
I_OO_CLASS_REFERENCE =
i_style_table = i_style_table
i_length_in_byte = i_length_in_byte
i_oo_class_name = 'CL_ALV_TABLE_CREATE'
i_oo_method = l_oo_method
exceptions
generate_subpool_dir_full = 1
others = 2.
case sy-subrc.
when 0.
ep_table = mp_table.
when 1.
raise generate_subpool_dir_full.
when others.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endcase.Edited by: fract_get on Mar 8, 2010 10:26 PM
‎2010 Mar 08 9:33 PM
this has been explained many times. This limit of 36 is in the statement [GENERATE SUBROUTINE POOL|http://sandraros.free.fr/abap_docu.htm?url=ABAPGENERATE_SUBROUTINE_POOL.htm]
‎2010 Mar 08 9:36 PM
‎2010 Mar 08 10:37 PM
As explained in the documentation, this is a limit within the internal session (an internal session starts by SUBMIT, CALL TRANSACTION, and a few other statements). It means that you have to leave this internal session and restart one.
But instead of using CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE which should be considered as obsolete, use the RTTC classes. There are many examples, so I let you search.
‎2010 Mar 08 11:14 PM
hi Sandra,
Thanks for the message. Can you please give some sample code or links for RTTC classes....I searched in the forum but i couldn't find...
‎2010 Mar 09 2:49 AM
‎2010 Mar 09 8:54 AM
Applause Rob ! 😄
fract_get, there is a global SCN search field at the top of the navigator page. Entering RTTC triggers that: http://www.sdn.sap.com/irj/scn/advancedsearch?query=rttc
So what's your problem with that?
‎2010 Mar 08 9:38 PM
This method eventually does:
generate subroutine poolFrom the help for this command:
>...a maximum of 36 temporary subroutine pools may be created.
So, this appears to be a hard error.
Rob
Sorry Sandra - didn't see your (better) explanation.
Edited by: Rob Burbank on Mar 8, 2010 4:38 PM