点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入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)
与表相比,不要更改变量的类型。 在这里,一些可变长度应该小于图像末尾给出的值。 您也可以同时加入vbrk和vbrp表来获取数据。 示例代码如下。
您还可以在查询中添加一个断点,并检查错误消息是什么。
对不起,老实说,我无法从问题或简短的转储屏幕截图甚至与所提到的代码相关的内容中了解任何内容。
第一部分没有任何意义,因为没有VBRK就不可能有VBRP,因此只需使用JOIN代替FAE。 只要您能用通俗易懂的语言解释您要达到的目标,最有可能的VBFA也可以加入。
在SE11中,我们不会"传递"任何内容,也不会"手动输入值",您在这里完全失去了我,对不起!
请更新问题,使它更清楚。
亲爱的 Jelena Perfiljeva ,
我已经更新了问题。还附加了转储日志。 请检查并指导。
致谢
深入
我已删除您的新问题。 您可以改为更新此问题。 请不要再提出其他问题-我什至已经提出了我先前关闭的其他问题。
HI,
我认为你误解了我。 我说过您可以加入vbrk和vbrp表以在单个表中获取数据。 为了获取大量数据,将其拆分为我上面提到的可管理的数据大小。 这样即使有延迟也不会放弃。
据我了解,您正在从表格中计算发票金额。 为此,您可以加入vbrk和vbrp以获取我上面提到的数据(提到了包大小),然后在其中进行konv选择。
对于KONV表,您需要根据定价条件KSCHL添加,否则如果更改定价条件(价格,税金,折扣,附加费,总金额和含税金额等所有内容都在KONV中)直接添加,则会有随机数据 。 因此,您可以将read用于定价条件。
或者,如果您想避免嵌套循环,可以尝试在konv循环并读取相关数据。 我会这样。
这是与如何避免循环内循环
如上述问题中的 Thomas Zloch 所述,请加入表格。 我已经举了一个例子,请做一些研究。
一周热门 更多>