转换标准Itab以对itab进行排序

2020-09-19 08:14发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 在我的问题上需...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

在我的问题上需要您的帮助。

我正在尝试提高旧报表程序的性能。 GLPCA表上有一个选择查询,该查询将2400000条记录取入到it_glpca中。

选择后,这些记录将移动到另一个内部表,即it_glpca_temp。

现在,it_glpca_temp itab由kunnr排序。

更改代码之前:

选择glpca进入it_glpca。

it_glpca_temp [] = it_glpca []。

按kunnr排序it_glpca_temp。

更改代码后:

我将it_glpca_temp的声明更改为按类型排序的内部表。 以前是标准表类型。 我这样做是为了避免在具有大量记录的内部表上使用sort命令。

程序以" TSV_TNEW_PAGE_ALLOC_FAILED"转储说"没有更多的可用内存向内部表添加行"。

之所以发生这种情况,是因为it_glpca表包含大量数据。 较少的记录数不会发生此转储。 我检查了。

没有其他方法可以限制选择标准。 这些数据是针对单个公司代码的,我们对选择标准的限制不能超过已经存在的限制。

我的问题;

如何避免代码带来的运行时错误-> it_glpca_temp [] = it_glpca []。

我在进行转换(将数据从itab类型标准表移动到itab类型排序表)是否错误?

任何建议都将受到欢迎。

2条回答
派大星 ヾ
2020-09-19 08:41

你好Raghu,

您无需声明将整个内部表复制到另一个排序表中,而只需声明包含辅助排序键的第一个标准表(从ABAP 7.0 EhP2开始就可用)。

 glpca的数据it_glpca类型标准表...具有非唯一的已排序键key_kunnr组件kunnr。

当使用辅助键访问标准表时,标准表的行为类似于已排序的表,并且与在程序中使用相同数据维护两个内部表相比,它消耗的内存更少。 请检查DEMO_SECONDARY_KEYS报告以了解如何使用它(如果您的系统中不存在该报告,则该功能不可用)。

此致。

一周热门 更多>