点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好大师。
我们有一个工作簿,其中包含2个小的报告(30行,如20列,所有基本成员,没有localmemebers,没有公式...一个非常简单的报告),这些报告永远需要刷新。 在同一工作簿中,还有其他5个报告,即使它们比较重,它们刷新也很快。 它们都是动态报告,没有格式。
这将在DEV,QUAL和PROD环境中发生。
检查日志和跟踪之后,在服务器端一切正常。 它们是很好的RSDRI查询,只需不到一秒钟的时间即可检索数据,并且服务器端的其余步骤也运行得很快。
EPM在Excel中编写报告时会出现问题。
在下面可以找到其中一份报告的踪迹,一种名为 WriteSmart 的方法耗时将近300秒(较大的方法则需要1至15秒)。 它作为WriteReport进程的一部分执行。
2017-03-15 17:06:38,559 | TRACE | Performance | FPMXLClient.Office.ExcelReportWriter.WriteSmart | MYUSER ||||| 1 |方法[Write Smart]结束,持续时间= 264.820 s#
(为了方便查找,我在此消息末尾的代码中将其标记为XXXXXXXXXXXXX,但这是有问题的行:)
为此我到处都进行了搜索,但是关于它的信息很少。
SAP存档中还有一条消息,一个BPC的同伴也有类似的问题,但是报告很大。 我们已经尝试了那里提供的解决方案(从VBA按钮而不是标准按钮刷新),但在我们的情况下不起作用。
https://archive.sap.com/discussions/thread/3766795
他说了一些有关刷新之前在VBA中清除数据的事情。 我们也通过使用标准Excel方法清除单元格范围来做到这一点,但也不起作用。 我找不到任何与EPM相关的方法。
我们还完成了" BPC 10的性能分析和优化"。
https://blogs.sap.com/2013/07/09/performance-analysis-and-optimization-for-bpc-10/
所以这是我们到目前为止尝试过的,没有成功:
-如无数其他BPC消息所建议的那样,在没有防病毒的情况下运行它。
-零压制的优化。
-从头开始重新制作报告。
-复制非常相似的工作报告并进行修改。
-在报告中包含一个父成员,以便运行MDX而不是RSDRI,以防万一。
-使用所有可用的工具进行跟踪,直到我们确定它不是服务器端问题,而是客户端问题(EPM日志中的TRACE日志,FIDDLER,SLG1,ST01,UJSTAT ...)
-从VBA宏而不是标准EPM按钮刷新。
-与最后一点相同,但是在此之前,使用标准Excel方法清除数据。
-设置报告的并行执行=激活。 那只是为了以防万一。
-在"工作表"选项中为大不对称轴强制对称刷新。
-删除工作表选项中的零行和空行,因为谁知道...
-我们使用来自不同笔记本电脑和不同网络的Win 7,Win 10,Excel 2010,Excel 2013,EPM SP19和SP24进行了组合,但均未成功。
我们现在几乎没有想法了。
这是其中一个报告的TRACE日志。 另一个与我之前说的差不多," XXXXXX"标记了这个地方:
dynamicReport = BUDGET_GW forceEliminateEmpty = BG_BUDGET# 2017-03-15 17:02:06,855 | DEBUG | Performance |?。?? | MYUSER ||||| 1 |远程通话[http://sapbiprod.MYCLIENT.com:8003/sap/bpc/query/BUDGET_GW/ BG_BUDGET?method = axis]开始# 2017-03-15 17:02:13,450 | DEBUG | Performance |?。?? | MYUSER ||||| 1 |远程调用[http://sapbiprod.MYCLIENT.com:8003/sap/bpc/query/BUDGET_GW/ BG_BUDGET?method = axis]结束,持续时间= 6.595 s# 2017-03-15 17:02:13,455 | TRACE | Performance | FPMXLClient.BPCProxy.MetaData_Data.DataServiceHelper.AxisQueryStreamEx | MYUSER ||||| 1 |方法[AxisQueryStreamEx]结束,持续时间= 6.599 s# 2017-03-15 17:02:13,458 | TRACE | Performance | FPMXLClient.BPCProxy.MetaData_Data.DataServiceHelper.ExecuteReportAsGzipStream | MYUSER ||||| 1 |测量[来自json流的构建报告]开始# 2017-03-15 17:02:13,461 | TRACE | Performance | FPMXLClient.BPCProxy.MetaData_Data.JsonReportBuilder.BuildReportFromJsonStream | MYUSER ||||| 1 |测量[从Json Stream读取轴和单元格]开始# 2017-03-15 17:02:13,639 | TRACE | Performance | FPMXLClient.BPCProxy.MetaData_Data.JsonReportBuilder.BuildReportFromJsonStream | MYUSER ||||| 1 |测量[从Json Stream读取轴和单元格]结束,持续时间= 0.174 s# 2017-03-15 17:02:13,640 | TRACE | Performance | FPMXLClient.ReportManagement.ReportResult.BuildReportFromRealAxis | MYUSER |||||| 1 |测量[从轴和单元格生成报告] start# 2017-03-15 17:02:13,649 | TRACE | Performance | FPMXLClient.ReportManagement.ReportResult.BuildReportFromRealAxis | MYUSER |||||| 1 |测量[来自轴和单元的建筑报告]结束,持续时间= 0.007 s# 2017-03-15 17:02:13,650 | TRACE | Performance | FPMXLClient.BPCProxy.MetaData_Data.DataServiceHelper.ExecuteReportAsGzipStream | MYUSER ||||| 1 |测量[基于json流的构建报告]结束,持续时间= 0.189 s# 2017-03-15 17:02:13,651 | TRACE | Performance | FPMXLClient.BPCProxy.MetaData_Data.DataServiceHelper.ExecuteReportAsGzipStream | MYUSER ||||| 1 |方法[ExecuteReportAsStream]结束,持续时间= 6.839 s# 2017-03-15 17:02:13,652 | TRACE | Performance | FPMXLClient.Connection.RESTConnection.ExecuteReport | MYUSER ||||| 1 |方法[ExecuteReport]结束,持续时间= 6.841 s# 2017-03-15 17:02:13,653 | TRACE | Performance | FPMXLClient.Office.EPMReportManager.ExecuteReportThreadStarter | MYUSER ||||| 1 |方法[ExecuteReportThreadStarter]结束,持续时间= 6.844 s# 2017-03-15 17:02:13,653 | TRACE | Performance | FPMXLClient.Office.EPMExcelReportManager.ExecuteReport | MYUSER |||||| 1 |测量[Execute Report000]结束,持续时间= 6.847 s# 2017-03-15 17:02:13,654 | TRACE | Performance | FPMXLClient.Office.EPMExcelReportManager.ExecuteParallelizedReportsFramework4 | MYUSER ||||| 1 |测量[Parallelized Execution]结束,持续时间= 6.852 s# 2017-03-15 17:02:13,656 | TRACE |性能| FPMXLClient.Office.EPMExcelReportManager.RefreshReports | MYUSER ||||| 1 |测量[插入本地成员] start# 2017-03-15 17:02:13,657 | TRACE |性能| FPMXLClient.Office.EPMExcelReportManager.RefreshReports | MYUSER ||||| 1 |测量[插入本地成员]结束,持续时间= 0.001 s# 2017-03-15 17:02:13,717 | TRACE | Performance | FPMXLClient.Office.EPMExcelReportManager.RefreshReports | MYUSER ||||| 1 |测量[清除报告]开始# 2017-03-15 17:02:13,727 | TRACE | Performance | FPMXLClient.Office.ExcelReportCleaner.ClearOnData | MYUSER |||||| 1 |方法[ClearOnData]开始# 2017-03-15 17:02:13,730 | TRACE | Performance | FPMXLClient.Office.ExcelReportCleaner.ClearOnData | MYUSER |||||| 1 |方法[ClearOnData]结束,持续时间= 0.002 s# 2017-03-15 17:02:13,731 | TRACE | Performance | FPMXLClient.Office.EPMExcelReportManager.RefreshReports | MYUSER ||||| 1 |测量[清除报告]结束,持续时间= 0.013 s# 2017-03-15 17:02:13,733 | TRACE |性能| FPMXLClient.Office.EPMExcelReportManager.WriteReport | MYUSER |||||| 1 |方法[写入报告]开始# 2017-03-15 17:02:13,737 | TRACE |性能| FPMXLClient.Office.ExcelReportWriter.WriteSmart | MYUSER |||||| 1 |方法[Write Smart] start# 2017-03-15 17:04:10,407 | TRACE |性能| FPMXLClient.Office.ExcelReportWriter.SmartLineSwitch | MYUSER |||||| 1 |方法[切换Excel行] start# 2017-03-15 17:04:35,536 | TRACE | Performance | FPMXLClient.Office.ExcelReportWriter.SmartLineSwitch | MYUSER |||||| 1 |方法[切换Excel行]结束,持续时间= 25.127 s# 2017-03-15 17:06:31,962 | TRACE |性能| FPMXLClient.Office.ExcelReportWriter.SmartColSwitch | MYUSER |||||| 1 |方法[切换列]开始# 2017-03-15 17:06:31,964 | TRACE |性能| FPMXLClient.Office.ExcelReportWriter.SmartColSwitch | MYUSER |||||| 1 |方法[切换列]结束,持续时间= 0.000 s# 2017-03-15 17:06:31,968 | TRACE | Performance | FPMXLClient.Office.ExcelReportWriter.WriteData | MYUSER |||||| 1 |方法[WriteData] start# 2017-03-15 17:06:31,999 | TRACE | Performance | FPMXLClient.Office.ExcelReportWriter.WriteData | MYUSER |||||| 1 |方法[WriteData]结束,持续时间= 0.030 s# 2017-03-15 17:06:32,002 | TRACE |性能| FPMXLClient.Office.ExcelReportWriter.WriteRows | MYUSER |||||| 1 |方法[WriteRows]开始# 2017-03-15 17:06:32,071 | TRACE |性能| FPMXLClient.Office.EPMExcelMultiRangeManager.SetSmartFormula | MYUSER ||||| 1 |测量[SetSmartFormula]开始# 2017-03-15 17:06:38,535 | TRACE |性能| FPMXLClient.Office.EPMExcelMultiRangeManager.SetSmartFormula | MYUSER ||||| 1 |测量[SetSmartFormula]结束,持续时间= 6.463 s# 2017-03-15 17:06:38,536 | TRACE |性能| FPMXLClient.Office.ExcelReportWriter.WriteRows | MYUSER |||||| 1 |方法[WriteRows]结束,持续时间= 6.533 s# 2017-03-15 17:06:38,538 | TRACE | Performance | FPMXLClient.Office.ExcelReportWriter.WriteColumns | MYUSER |||||| 1 |方法[WriteColumns] start# 2017-03-15 17:06:38,540 | TRACE |性能| FPMXLClient.Office.EPMExcelMultiRangeManager.SetSmartFormula | MYUSER ||||| 1 |测量[SetSmartFormula] start# 2017-03-15 17:06:38,541 | TRACE |性能| FPMXLClient.Office.EPMExcelMultiRangeManager.SetSmartFormula | MYUSER ||||| 1 |测量[SetSmartFormula]结束,持续时间= 0.000 s# 2017-03-15 17:06:38,543 | TRACE | Performance | FPMXLClient.Office.ExcelReportWriter.WriteColumns | MYUSER |||||| 1 |方法[WriteColumns]结束,持续时间= 0.003 s# 2017-03-15 17:06:38,545 | TRACE |性能| FPMXLClient.Office.ExcelReportWriter.PushUp | MYUSER |||||| 1 |方法[PushUp] start# 2017-03-15 17:06:38,558 | TRACE |性能| FPMXLClient.Office.ExcelReportWriter.PushUp | MYUSER |||||| 1 |方法[PushUp]结束,持续时间= 0.000 s# XXXXXXXXXXXXXXXXTHISXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXTHISXXXXXXXXXXXXXXXXXXXXX 2017-03-15 17:06:38,559 | TRACE | Performance | FPMXLClient.Office.ExcelReportWriter.WriteSmart | MYUSER |||||| 1 |方法[Write Smart]结束,持续时间= 264.820 s# XXXXXXXXXXXXXXXENDTHISXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXENDTHISXXXXXXXXXXXXXXXXXX 2017-03-15 17:06:38,562 | TRACE | Performance | FPMXLClient.Office.ExcelReportFormatter.FormattingReport | MYUSER |||||| 1 |方法[FormattingReport] start# 2017-03-15 17:06:38,569 | TRACE | Performance | FPMXLClient.Office.ExcelReportFormatter.FormattingReport | MYUSER |||||| 1 |方法[FormattingReport]结束,持续时间= 0.001 s# 2017-03-15 17:06:38,570 |跟踪|性能| FPMXLClient.Office.ExcelReportWriterHelper.CopyPasteInsertedZone | MYUSER ||||| 1 |测量[InsertAfterRange 000] start# 2017-03-15 17:06:38,585 | TRACE |性能| FPMXLClient.Office.ExcelReportWriterHelper.CopyPasteInsertedZone | MYUSER ||||| 1 |测量[InsertAfterRange 000]结束,持续时间= 0.000 s# 2017-03-15 17:06:38,586 | TRACE | Performance | FPMXLClient.Office.ExcelReportWriterHelper.CopyPasteInsertedZone | MYUSER ||||| 1 |测量[InsertAfterRange 000] start# 2017-03-15 17:06:38,587 | TRACE |性能| FPMXLClient.Office.ExcelReportWriterHelper.CopyPasteInsertedZone | MYUSER ||||| 1 |测量[InsertAfterRange 000]结束,持续时间= 0.000 s# 2017-03-15 17:06:38,588 | TRACE | Performance | FPMXLClient.ReportManagement.DynamicReport.Save | MYUSER |||||| 1 |测量[保存报告]开始# 2017-03-15 17:06:38,612 | TRACE | Performance | FPMXLClient.ReportManagement.DynamicReport.Save | MYUSER |||||| 1 |测量[保存报告]结束,持续时间= 0.023 s# 2017-03-15 17:06:38,614 | TRACE | Performance | FPMXLClient.Office.EPMExcelReportManager.WriteReport | MYUSER |||||| 1 |方法[Write Report]结束,持续时间= 264.879 s# 2017-03-15 17:06:38,617 | TRACE | Performance | FPMXLClient.Office.EPMExcelReportManager.LoadReports | MYUSER ||||| 1 |方法[加载报告]开始# 2017-03-15 17:06:38,618 | TRACE | Performance | FPMXLClient.Office.EPMExcelReportManager.LoadReports | MYUSER ||||| 1 |方法[Load Reports]结束,持续时间= 0.000 s#
这不是我们的服务器端问题,这是我们的SAP系统:
SAP BW 7.30 SP015
CPMBPC800 SP022
请,如果您对这个问题有任何想法或不同的方法,请告诉我们。
非常感谢。
编辑:我们还尝试了在刷新前在VBA中禁用ScreenUpdating,EnableEvents和AutomaticCalculation。 没有运气。
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
您可以显示报告屏幕截图和报告设置屏幕截图,包括成员的选择...
看问题日期:)
您好,丹尼尔,
我和我的报告之一在同一条船上,您是否能够解决问题。如果可以,请分享您所做的事情。
致谢,
Sridhar
一周热门 更多>