在使用动态内表时,系统报出ABAP Dump,异常消息为GENERATE_SUBPOOL_DIR_FULL。查看代码:cl_alv_table_create=>create_dynamic_table在此位置处dump,经查阅资料,该方法为旧版中使用的创建动态内表的方式,该类调用时会创建一个子例程,并且存在一定限制。 将该方法替换为如下实现方式后,程序Dum
GENERATE_SUBPOOL_DIR_FULL = 1 OTHERS = 2. 1. 2. 3. 4. 5. 6. 7. 8. DY_TABLE变成空了。 然后看了下里面: 这里subrc = 1。 具体啥意思一看也比较清楚了。 池子满了。 后来查了下,这个函数动态创建内表池子内最大数量是36.超过了就不能创建了。 要么换个其他方式动态实现,...
5、看代码,到第600行 这个类是通过GENERATE SUBROUTINE POOL创建一个动态程序,然后再来执行后续动作的。 我们可以看到标准程序在这里catch了标题中的异常。 F1详细了解一下GENERATE SUBROUTINE POOL,可以看到文档中有最多36次的一个说明。 也就是说,当我们在一个程序中频繁创建时,就会出现此异常了。 【特殊说明:当...
Runtime Errors: RAISE_EXCEPTION (Exception condition "GENERATE_SUBPOOL_DIR_FULL" raised.) With "A RAISE statement in the program" CL_ALV_TABLE_CREATE === CP "raised the exception condition" GENERATE_SUBPOOL_DIR_FULL. " I searched several SAP notes for "CL_ALV_TABLE_CREATE === CP" "...
创建动态内表时,个人推荐使用CL_ABAP_TABLEDESCR这个类去创建(点击查看代码示例)。 如果使用CL_ALV_TABLE_CREATE这个类,就可能会遇到标题中提到的异常。接下来我们看一下原因。 1、打开类CL_ALV_TABLE_CREATE,查看方法CREATE_DYNAMIC_TABLE 2、查看代码中的函数LVC_TABLE_CREATE ...
创建动态内表 generate_subpool_dir_full dump 客户提出个问题,说有个批导发送邮件程序,数量一多就dump,最多也就处理三十来条。 一个批导处理三十多条就dump,不应该啊,然后就去看了那个批导程序。 看到是发送时循环调用了一个Z function。 可能当时为了通用,用动态内表实现的。