点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) vbfa-1.jpg ...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) vbfa-1.jpg ...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
vbfa-1.jpg vbfa-3.jpg vbfa-4.jpg
亲爱的所有人,
实际上我有一个与销售有关的ZReport。
在该特定报告中,我正在做一些优化,以使该报告可以执行1年。
在优化之前,如果对所有工厂,所有分销渠道和所有部门执行为期1年(2014年4月1日至2015年3月31日)的报告,则将给出转储。
因此,使用上述输入,报告将进行转储。
现在,我在此zreport中做了一些优化,以便可以改善运行时间。
我所做的是,我将循环内的select单个查询替换为循环外所有条目select。
因此,除了VBFA上的选择查询外,所有查询都工作正常。它正在执行很多时间,最后导致转储。
下面是我的选择查询:-
选择VBELN
FKART
WAERK
VKORG
VTWEG
KNUMV
FKDAT
NETWR
XBLNR从VBRK到表IT_VBRK
VBELN IN S_VBELN "发票编号
AND FKART IN S_FKART "发票类型
不加入FKART('ZG2','ZL2','ZF5','ZRE','F8')
AND VKORG = P_VKORG "销售组织
和VTWEG IN P_VTWEG "分销渠道
AND FKDAT IN S_DATE "发票日期
与S_KUNAG中的KUNAG和
KUNRG IN S_KUNRG "运送至派对
AND SFAKN EQ SPACE "已取消的发票具有此处的参考单据
和FKSTO NE'X'"以排除已取消的发票
和S_BLAND和MRNKZ NE'X'的区域。
如果SY-SUBRC NE 0。
消息"未找到数据"类型" I"。请进行列表处理。
ENDIF。
选择VBELN
POSNR
FKIMG
VRKME
VGBEL
AUBEL
MATNR
ARKTX
充电
WERKS
KONDM
如果SY-SUBRC NE 0。
消息"未找到数据"类型" I"。请进行列表处理。
ENDIF。
选择
VBELN
PARVW
KUNNR
ADRNR
将VBPA放入表IT_VBPA中,用于IT_VBRK中的所有条目
VBELN = IT_VBRK-VBELN和Parvw输入('WE','RE','RG')。
SELECT
KUNNR
NAME1
NAME2
STCD3
区域
将KNA1从IT_VBPA中的所有条目插入表IT_KNA1_TEMP
KUNNR = IT_VBPA-KUNNR。
SELECT
ADDRNUMBER
STR_SUPPL1
STR_SUPPL2
街道
CITY1
从ADRC到表IT_ADRC的CITY2,用于IT_VBPA中的所有条目,其中ADDRNUMBER = IT_VBPA-ADRNR。
如果IT_VBRP []不初始。
选择
MATNR
WERKS
STEUC
从MARC到表IT_MARC中IT_VBRP的所有条目,其中MATNR = IT_VBRP-MATNR和WERKS = IT_VBRP-WERKS。
选择
RDOC
EXPIND
状态
从J_1IEXCHDR到表IT_J_1IEXCHDR中IT_VBRP中的所有条目,其中RDOC = IT_VBRP-VBELN且STATUS ='C'。
选择
VBELV
VBELN
POSNN
VBTYP_N
VBTYP_V
从VBFA到IT_VBRP中所有条目的表IT_VBFA,其中VBELN = IT_VBRP-AUBEL AND
POSNN = IT_VBRP-POSNR和
VBTYP_N ='C'。
删除IT_VBFA,其中VBTYP_V <>'G'。
ENDIF。
因此,我用。中的所有条目替换了所有选择单个查询。
我的问题是,只有该查询以粗体突出显示会占用大量时间,因此导致转储。 超过了时间限制。
请指导我如何解决此问题。
第二,如果我手动输入SE11 VBFA表的内部表IT_VBRP TO Standard表VBFA中获得的值,则手动检查对VBFA的选择查询为何给出转储。
然后,标准表也在提供转储。
所以我无法找到问题所在。
标准表正在提供转储。 我已经附上了转储日志。 我不明白为什么标准表:VBFA会进行转储。
关于 zsales-report-1.jpg zsales-report-2.jpg
深
vbfa-1.jpg (97.6 kB)
HI,
我认为你误解了我。 我说过您可以加入vbrk和vbrp表以在单个表中获取数据。 为了获取大量数据,将其拆分为我上面提到的可管理的数据大小。 这样即使有延迟也不会放弃。
据我了解,您正在从表格中计算发票金额。 为此,您可以加入vbrk和vbrp以获取我上面提到的数据(提到了包大小),然后在其中进行konv选择。
对于KONV表,您需要根据定价条件KSCHL添加,否则如果更改定价条件(价格,税金,折扣,附加费,总金额和含税金额等所有内容都在KONV中)直接添加,则会有随机数据 。 因此,您可以将read用于定价条件。
或者,如果您想避免嵌套循环,可以尝试在konv循环并读取相关数据。 我会这样。
这是与如何避免循环内循环
如上述问题中的 Thomas Zloch 所述,请加入表格。 我已经举了一个例子,请做一些研究。
一周热门 更多>