帮助在SAP BW的启动例程中用字段符号替换工作区

2020-08-27 20:45发布

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

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


您好,我们有一个启动例程,其中包含以下代码,并且正在妨碍性能,并希望用字段符号代替对工作区的使用。 有人可以帮助我修改代码,如果需要的话还可以帮助优化代码。 此例程位于自定义主数据对象和Open集线器之间。 下面是代码:

从/bic/azddbatch00

选择材料批次

进入表it_mch1的对应字段

其中/bic/zdelflag ='X'。

如果sy-subrc =0。

按物料批次升序it_mch1排序。

Endif。

循环到it_mch1并进入wa_mch1。

在哪里删除源_包

物料= wa_mch1-物料AND批次= wa_mch1-批次。

ENDLOOP。

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

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


您好,我们有一个启动例程,其中包含以下代码,并且正在妨碍性能,并希望用字段符号代替对工作区的使用。 有人可以帮助我修改代码,如果需要的话还可以帮助优化代码。 此例程位于自定义主数据对象和Open集线器之间。 下面是代码:

从/bic/azddbatch00

选择材料批次

进入表it_mch1的对应字段

其中/bic/zdelflag ='X'。

如果sy-subrc =0。

按物料批次升序it_mch1排序。

Endif。

循环到it_mch1并进入wa_mch1。

在哪里删除源_包

物料= wa_mch1-物料AND批次= wa_mch1-批次。

ENDLOOP。

付费偷看设置
发送
5条回答
huskylover
1楼-- · 2020-08-27 21:00

很难确定没有上下文的瓶颈所在,但据我所知并不是因为您使用工作区而不是字段符号。

根据您提供的源代码部分,我可以想到两件事:

1。/bic/azddbatch00未根据/bic/zdelflag

2编制索引。 SOURCE_PACKAGE是标准表。 这意味着您正在LOOP中执行线性搜索,这很不好。 事实上,在大量记录的情况下,确实很糟糕。

请确保您使用的表类型是根据where条件中使用的字段排序的。

数据:source_package类型.. WITH [UNIQUE | 非关键]关键物料批处理。

此外,运行性能跟踪(如果您尚未这样做),以确保缓慢性来自何处。 此外,静态代码检查(代码检查器/ATC)为检测和修复可能的性能问题提供了很多帮助。

小熊yu生菜
2楼-- · 2020-08-27 20:51

作为GáborMárián指出,我怀疑您的性能问题是由于从内部表到工作区的移动,因为循环中有一个DELETE source_package!

# p #
吹牛啤
3楼-- · 2020-08-27 21:10

se30.jpg

se30-2.jpg

我已经在se30中完成了运行时分析,这是相同图像的

DafaDDDa
4楼-- · 2020-08-27 21:12

它有多慢? 您的系统是BWoHANA还是更好的BW4HANA?

您还可以先使用信息集或复合提供程序将这些表联接起来,然后将其加载到目标dso(无需例程)。

或者如果您的批处理dso不太大,我认为最好创建一个过滤例程以缩小记录数。

N-Moskvin
5楼-- · 2020-08-27 21:03

Naveen Chand Yalamanchili 您甚至不确定真正的问题是什么(您没有测量/分析性能),并且希望我们猜测 真正的问题是什么?

一周热门 更多>