没有更多的内存可用于从自定义清单报告向内部表添加行

2020-09-22 20:59发布

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

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


你好大师,

我的公司有Z事务来获取工厂的当前库存。 在一段时间后执行报告时,它会进行转储(TSV_TNEW_PAGE_ALLOC_FAILED)。

当我检查转储源代码时,它指向行下方

当我回溯发现这是驻留在窗体调用DYNAMIC_PERIOD_CLOSING中。 在CKMS_PERIOD_READ_WITH_ITAB FM和Z事务中使用的特定FM中调用此特定形式。 FM在两个循环内调用,这两个循环会重复进行以获取大量记录。 无法从循环中取出FM,因为程序的传递成本估计FM的每种材料都没有。

希望您能理解我的问题。 如果您有更好的主意,请避免这种情况。 让我知道。

预先感谢

Sajeewa Priyankara

(37.1 kB)

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

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


你好大师,

我的公司有Z事务来获取工厂的当前库存。 在一段时间后执行报告时,它会进行转储(TSV_TNEW_PAGE_ALLOC_FAILED)。

当我检查转储源代码时,它指向行下方

当我回溯发现这是驻留在窗体调用DYNAMIC_PERIOD_CLOSING中。 在CKMS_PERIOD_READ_WITH_ITAB FM和Z事务中使用的特定FM中调用此特定形式。 FM在两个循环内调用,这两个循环会重复进行以获取大量记录。 无法从循环中取出FM,因为程序的传递成本估计FM的每种材料都没有。

希望您能理解我的问题。 如果您有更好的主意,请避免这种情况。 让我知道。

预先感谢

Sajeewa Priyankara

(37.1 kB)
付费偷看设置
发送
7条回答
spaceman01
1楼 · 2020-09-22 21:41.采纳回答
  • 尝试以较少的记录调用FM(使用某些程序包大小,您甚至可以考虑进行并行化)
  • 您还应该查看此类FM的功能组,它们可以包含一些FM来刷新任何内部缓冲区,因此请考虑在每FM调用n次之后调用这种FM。
    FM CKMS_PERIOD_READ_WITH_ITAB -> FG CKMS-> FM CKMS_BUFFER_REFRESH_COMPLETE)
  • 当然,请尝试减少代码自己的部分使用的内存。
CPLASF-自律
2楼-- · 2020-09-22 22:00

当然,于尔根。 我的错误

hengyuye
3楼-- · 2020-09-22 21:52

ht_ckmlpp是dynamic_period_closing中的局部变量。 这表明问题是由于您将过多数据传递给FM CKMS_PERIOD_READ_WITH_ITAB引起的。

您实际上没有提供足够的详细信息-Z程序的快照会有所帮助-但我的猜测是,您没有在循环迭代期间清除某些表。

如果不是这种情况,那么您只是在传递过多的数据,并且需要找到减少这种情况的方法。 正如我所说-没有相关细节很难说。 如果您打算发布Z程序,请仅发布相关部分-而不是全部!

haha101010
4楼-- · 2020-09-22 21:42

这只会刷新内部 会话中某些功能组的缓冲区。

宇峰
5楼-- · 2020-09-22 21:57

Sajeewa,您好,

我猜数据更多,这是因为系统无法为其获取内存。 如果是背景,请尝试使用"并行光标"或"线程概念"将负载平均分配。 如果是前景,请限制选择屏幕中的数据。

谢谢

Vivek Rajkumar

四川大学会员
6楼-- · 2020-09-22 21:57

另一件事-在调试器中围绕循环的位置运行程序。 在调试器中打开一个窗口以监视内存。 如果您有内存泄漏,这可能会提供一些提示。

请参阅此处: https://help.sap.com /saphelp_nw73EhP1/helpdata/zh-CN/49/243804855616b6e10000000a42189d/frameset.htm

您还可以搜索博客,Wiki条目等。

小熊yu生菜
7楼-- · 2020-09-22 21:36

感谢您的答复

一周热门 更多>