Small BPC 10.0 Report最多需要4分钟才能刷新

2020-09-21 15:09发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好大师。 我们有一个工作簿,...

         点击此处--->   EasySAP.com群内免费提供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