Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

GENERATE_SUBPOOL_DIR_FULL error

Former Member
0 Likes
3,011

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.....

1 ACCEPTED SOLUTION
Read only

former_member189059
Active Contributor
0 Likes
2,235

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.

11 REPLIES 11
Read only

former_member189059
Active Contributor
0 Likes
2,236

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.

Read only

0 Likes
2,234

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 ?

Read only

0 Likes
2,234

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

Read only

0 Likes
2,234

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

Read only

0 Likes
2,234

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]

Read only

0 Likes
2,234

Is there any alternative .....

Read only

0 Likes
2,234

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.

Read only

0 Likes
2,234

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...

Read only

0 Likes
2,234

Search a little harder then.

Rob

Read only

0 Likes
2,234

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?

Read only

Former Member
0 Likes
2,234

This method eventually does:

generate subroutine pool

From 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