Sunteți pe pagina 1din 4

21.7.2014

Best Practices For Reporting Against SAP Busine

21.7.2014 Best Practices For Reporting Against SAP Busine Hi, Guest Log On Join Us | SCN

Hi, Guest

| SCN

Search the Community

Products

Services & Support

About SCN

Industries

Training & Education

Partnership

Lines of Business

Events & Webinars

Innovation

Best Practices For Reporting Against SAP Business Planning and Consolidation (Powered by SAP HANA), utilizing the EPM Add-in for Excel

Version 6

created by Patrick Favre on Nov 26, 2013 2:09 PM, last modified by Patrick Favre on Jul 17, 2014 9:42 AM

Share
Share

4

0 Tweet 3 Like 1
0 Tweet 3
Like
1

Welcome to this blog mentionning some key concepts/best practices to have in mind when designing a report/input schedule utilizing the EPM Add-in for Excel on the top of SAP Business Planning and Consolidation 10.0 (powered by SAP HANA). This document will be updated as soon as some new concepts are coming from implemention teams. But before jumping directly to best practices, here's first a quick introduction on this front-end tool.

EPM ADD-IN VERSIONS

EPM Add-in dotnet 3.5:

Supports only Office 32 bitsfront-end tool. EPM ADD-IN VERSIONS EPM Add-in dotnet 3.5: Not limited to certain function Performance hit

Not limited to certain functionVERSIONS EPM Add-in dotnet 3.5: Supports only Office 32 bits Performance hit when querying via ODBO

Performance hit when querying via ODBO connectionSupports only Office 32 bits Not limited to certain function Run with .NET 3.5 framework (has

Run with .NET 3.5 framework (has 1.2 GB RAM limitation)function Performance hit when querying via ODBO connection Can be updated with *.msp file (no need

Can be updated with *.msp file (no need to uninstall/re-install)Run with .NET 3.5 framework (has 1.2 GB RAM limitation) Master Data downloaded to client (No

Master Data downloaded to client (No support of BIG VOLUME mode)be updated with *.msp file (no need to uninstall/re-install) EPM Add-in dotnet 4.0: Supports Office 32

EPM Add-in dotnet 4.0:

Supports Office 32 bits or Office 64 bits(No support of BIG VOLUME mode) EPM Add-in dotnet 4.0: Possibility to enable the BIG VOLUME

Possibility to enable the BIG VOLUME mode on BW data sources (odbo connections only). Standard mode or Big Volume mode are supported.Add-in dotnet 4.0: Supports Office 32 bits or Office 64 bits In Standard mode, it runs

In Standard mode, it runs the same features as the 3.5 version.only). Standard mode or Big Volume mode are supported. Better performance via ODBO connection Can be

Better performance via ODBO connectionStandard mode, it runs the same features as the 3.5 version. Can be updated with *.msp

Can be updated with *.msp file (have to uninstall/re-install)as the 3.5 version. Better performance via ODBO connection Supports Office 2010 64 bits to get

Supports Office 2010 64 bits to get the most out of client-side performance (no RAM limitation)be updated with *.msp file (have to uninstall/re-install) Supports SAP BW (INA provider) connections (for BPC

Supports SAP BW (INA provider) connections (for BPC 10.1 embedded model).the most out of client-side performance (no RAM limitation) Big Volume (ODBO connection) With the Big

Big Volume (ODBO connection) With the Big Volume mode enabled, you cannot write data back to the database, you can only render data. Additionnaly, certain specific BPC functions are not available (EPMMemberProperty/EVPRO, etc…), as well as some EPM add-in functionnalities (Freeze data refresh, Member Selector – dimension/member properties and Data Ranking/Sorting).

The Big Volume mode changes the interface for member selection so that dimension members are displayed in pages instead of the default tree view (SP 07). This improves performance for dimensions with large numbers of members.The BV mode only loads metadata asked for, or required, not all of it.

CONNECTIONS

The EPM Add-in is an add-in to Microsoft Office Excel, Microsoft Word, and Microsoft Office PowerPoint and is used to analyze data in the following applications:

SAP BusinessObjects Financial Consolidationand is used to analyze data in the following applications: SAP BusinessObjects Planning and Consolidations, version

SAP BusinessObjects Planning and Consolidations, version for SAP NetWeaver **applications: SAP BusinessObjects Financial Consolidation SAP BusinessObjects Planning and Consolidations, version for

SAP BusinessObjects Planning and Consolidations, version for SAP Microsoft **Planning and Consolidations, version for SAP NetWeaver ** SAP BusinessObjects Profitability and Cost Management SAP

SAP BusinessObjects Profitability and Cost ManagementPlanning and Consolidations, version for SAP Microsoft ** SAP NetWeaver BW InfoProviders (different ODBO connector for

SAP NetWeaver BW InfoProviders (different ODBO connector for BPC MS and BPC NW version).** SAP BusinessObjects Profitability and Cost Management ** Allows write back of data via BPC Web

** Allows write back of data via BPC Web Service connection

Local This connection type is for ODBO connections, (FC SSAS cubes, FC BW cubes, SSAS standard cubes, BW standard cubes, PCM ODBO provider, SSM ODBO provider, BPC MS ODBO provider and SAP BW OLE DB provider. An ODBO connection doesn’t allow data input, and is only used for data retrieval. Data Manager features are also not reachable with an ODBO connection. However, the usage of custom members (to build some complex MDX calculated members) can only be performed with an ODBO connection.

Planning & Consolidation This type is for Web Service connections, on the top of BPC 10 MS and BPC 10 NW. A Web service connection allows

21.7.2014

Best Practices For Reporting Against SAP Busine

| SCN

data input, and the use of the Data Manager ribbon, but does not support the creation of custom members (only local members).

FUNCTIONS & FORMULAS

EPMInsertCellBeforeAfterBlock and EPMCopyRange – big impact on the writing time.

Use EPMDimensionOverride instead of manually changing the EPMOlapMemberO function for very large EPM reports.and EPMCopyRange – big impact on the writing time. Try to avoid mixing EPM Report, EPMRetrieveData,

Try to avoid mixing EPM Report, EPMRetrieveData, and EPMCommentFull/Partial since the EPM Add-in does a separate call to the database for each type of function (EPMOlapMemberO, EPMRetrieveData, EPMCommentFull/Partial). And all those queries are not parallelized.the EPMOlapMemberO function for very large EPM reports. Functions DimensionOverride and AxisOverride are costly on

Functions DimensionOverride and AxisOverride are costly on loading, especially when a report is huge and have lots of formulas to evaluate.And all those queries are not parallelized. Enter the connection name in all EPM formulas

Enter the connection name in all EPM formulas (EPMModelCubeID or a static text cell can be used as reference somwhere in a hidden place of your report).when a report is huge and have lots of formulas to evaluate. Avoid volatile Excel functions

Avoid volatile Excel functions like Row(), Column(), and Offset(), as well as cascade references between cells.as reference somwhere in a hidden place of your report). REPORT OPTIONS Create EPM Reports instead

REPORT OPTIONS

Create EPM Reports instead of using EPMRetrieveData function.
Create EPM Reports instead of using EPMRetrieveData function.

Create EPM Reports instead of using EPMRetrieveData function.

Parallelization is activated by default with the Axis Sharing feature, and on the same data

Parallelization is activated by default with the Axis Sharing feature, and on the same data source/connection. Caution: the Axis Sharing feature is a bit heavy in terms of performance.

Try not to use custom Measures such as MTD or WTD (process not optimized).

Try not to use custom Measures such as MTD or WTD (process not optimized).

EPM reports will outperform EVDRE reports. EVDRE does have some performance optimization but EPM10 report

EPM reports will outperform EVDRE reports. EVDRE does have some performance optimization but EPM10 report have 2-3 times better performance for the same layout/behavior.

If

different member ID’s have the same descriptions, ensure “Use EPMMemberID in EPM formulas” is checked

in

User Options. Caution: It also has an impact on performance as the EPMemberID formula is automatically

inserted for each dimension member. A better option would be to manually create a local member mentionning

the EPMMemberID function only where it is necessary (without checking the User Option).

the EPMMemberID function only where it is necessary (without checking the User Option).

In

case of input, consider using Calculate Parents in Hierarchies (Sheet Options) for on-the-fly calculation on

Parent Node members. But be aware that, even it's a very useful feature, the rendering

Parent Node members. But be aware that, even it's a very useful feature, the rendering time is bigger as the EPM Add-in has to insert the SUM function based on the hierarchy definition.

Multi selection in Page Axis: the SUM is performed on the client side. Cartesian product

Multi selection in Page Axis: the SUM is performed on the client side. Cartesian product is returned from the server and summed up on the front-end.

Exclude functionality changes your report from symmetric mode to asymmetric mode. But depending the number

Exclude functionality changes your report from symmetric mode to asymmetric mode. But depending the number of tuples you decide to exclude, performance could be worse.

Avoid using complex formulas mixing EPM and Microsoft Excel functions, such as functions that create

Avoid using complex formulas mixing EPM and Microsoft Excel functions, such as functions that create a dependence (a formula references another formula; a formula creates a dependence between two reports), or functions that include a condition (IF).

By default, the EPM Add-in uses the "Insert Method" to write reports. To get around this, enable "Keep Formulas Static that Reference Report Cells" option in the Sheet Options to clear the entire report and re-write it entirely on

a refresh.

a

refresh.

In

case of drill-down, check option to "Refresh only Expanded and Inserted Members" in the User Options

instead of refreshing the entire report.

instead of refreshing the entire report.

In

case of using the "Collapse" feature, there is a new tag in the FPMClient config file in EPM add-in SP15:

"Collapsewithoutqueryingserver". Its default value is set to "FALSE", but it can be turned to "TRUE" for better performance.

FORMATTING

Limit the number of formatting rules and make sure those rules don’t overlap each other.turned to "TRUE" for better performance. FORMATTING Avoid using Microsoft Excel conditional formatting within an

Avoid using Microsoft Excel conditional formatting within an EPM add-in dynamic formatting sheet due to the evaluation of each cell.rules and make sure those rules don’t overlap each other. Avoid overriding rules because the Add-in

Avoid overriding rules because the Add-in is formatting the cell multiple times (Pattern for example).dynamic formatting sheet due to the evaluation of each cell. Avoid using the CONTENT override because

Avoid using the CONTENT override because the EPM Add-in is retrieving data twice (writing + calculation).is formatting the cell multiple times (Pattern for example). Create several EPM add-in dynamic formatting sheets

Create several EPM add-in dynamic formatting sheets instead of only one, if possible. For example, Report 1 displays only properties A and B, and Report 2 displays only properties C and D, you should create two different dynamic formatting sheets for better performance.EPM Add-in is retrieving data twice (writing + calculation). LOCAL vs CUSTOM MEMBERS Local Members Created

LOCAL vs CUSTOM MEMBERS

Local Members

Created for the purpose of containing a dynamic formula. An editor screen assists with the
Created for the purpose of containing a dynamic formula. An editor screen assists with the

Created for the purpose of containing a dynamic formula. An editor screen assists with the creation of the Excel- based formula

A

local member is specific to a single report

Local Members can be made context-sensitive. This is in the options for Local Members

Local Members can be made context-sensitive. This is in the options for Local Members

Custom Member

Custom members are created for the purpose of containing an MDX formulaThis is in the options for Local Members Custom Member An editor screen is presented to

An editor screen is presented to help create the formulaare created for the purpose of containing an MDX formula Customer members can be used throughout

Customer members can be used throughout a worksheetAn editor screen is presented to help create the formula Only available for ODBO type connections

Only available for ODBO type connectionsformula Customer members can be used throughout a worksheet General note : When data is existing

General note: When data is existing on the spread sheet, choose Local Members. Local Members is native Excel functionality and will always perform better.

21.7.2014

Best Practices For Reporting Against SAP Busine

| SCN

VBA Look for existing API before creating custom code Avoid Loop (Do, While ) VBA
VBA
Look for existing API before creating custom code
Avoid Loop (Do, While
)
VBA Best practice “acceleration” function: the initial variables (“screen updating”, “calculations”, “events”…) must
be deactivated and then reactivated to their initial status in the exit of the macro.
ANALYZING& DEBUGGING
Review the How to Debug the EPM Add-in document (https://scn.sap.com/docs/DOC-38755)
Determine the source of the issue (client vs. server)
Fiddler (3rd party software) measures the network traffic
EPM Add-in logs to measure the client traffic
ST12 (NetWeaver) – Single Transaction Trace to measure the server traffic.UJSTAT can also be used for
analyzing queries on the server.
Not sure where an issue occurs?
The Development Team may ask for a trace from the customer. To obtain one, here is the recommended process
using Fiddler:
In Excel, click ‘More’ ► ‘Clear Metadata Cache’ from the EPM toolbar.
Log off from the EPM Add-In.
Add the “TRACE” flag to the FPMXLClient.dll-ExcelLogConfig.xml file against the Trace logger.
Start the Fiddler tool running to capture web events (“Capture Events [F12]”).
Log into the EPM Add-In opening the necessary Connection and Model.
Recreate the issue or refresh the report.
Stop the capture and save the resulting trace log that it has produced (.SAZ file) and send it to development.
Doing this gives Development all of the data and metadata needed to reproduce an issue without the actual data and
metadata files from the customer.
USEFUL LINKS
EPM Add-in Academy (http://wiki.scn.sap.com/wiki/display/CPM/EPM+Add-in+Academy)
Videos and solutions of EPM Add-in functionality (Comments, Formatting, Macros, Local Members, Miscellaneous
Reporting, etc.)
4380 View s
Topics: enterprise_performance_management Tags: excel, epm, bpcnw 10, best_practices, bpc_on_hana,
sap_business_planning_and_consolidation_sap_runs_sap
Average User Rating
(9 ratings)
Share
4
0
Tweet 3
Like
1
8 Comments
Jef Baeyens Nov 27, 2013 12:40 AM
Hi Patrick,
Thank you for this great Best Practice list.
I have a few additional questions, some of them easy, some of them gets me headaches.
1. Is it best practice to add every not-used dimension to page axis, including MEASURES
dimension. Or to use a locked context instead?
2. How do you best distinguish between fixed single members, and variable single members in
the Page Axis that user would change a lot. Preferably with a filter that he doesn't see the whole
member list, but only relevant choices and preferably also keeping the hierarchy while doing
so.
3. What is the best practice way to create same Asymmetric Row Axis expansions across multiple
input schedules?
Properties do not always help here and suppression on transaction data is not nice in the
cube. Excluding functionality only works fast for small number of members, as you mentioned.
4. Where can we find nice Best-practice EPMFormattingSheets having +12 hierarchical
dimensions formatting and where reports do not seem like a colorbook.
5. What is the best practice way to apply a change in EPMFormattingSheet to +100 reports?
6. What is the best practice for creating Books out of several reports: By creating multiple
workbooks, or multiple sheets?
7. Is it best practice to display the Work Status in each input schedule? (For example in a 5Y
planning application, the time dimension requires 60 members in columns, while work status
is only really relevant per category. It's a pity the work status doesn't aggregate.)
Like (0)

21.7.2014

Best Practices For Reporting Against SAP Busine

| SCN

Miguel Gonzalez Nov 27, 2013 10:16 AM Essential reading for EPM users and content creators!
Miguel Gonzalez Nov 27, 2013 10:16 AM Essential reading for EPM users and content creators!
Miguel Gonzalez Nov 27, 2013 10:16 AM
Essential reading for EPM users and content creators! Very well done Patrick!
Like (0)
SREERAJ SUKUMARAN Dec 18, 2013 4:09 PM

SREERAJ SUKUMARAN Dec 18, 2013 4:09 PM

1. use locked content for MEASURES and not used dimension, because if you lock them then they affect your reports and nobody will change them by mistake.

2. Hide the real page axis and use EPMSELECTMEMBER or EPMCONTEXTMEMBER for user to select the variable page axis.

 

Like (0)

Vadim Kalinin Dec 18, 2013 4:49 PM Hi Patrick, All the mentioned points mean only
Vadim Kalinin Dec 18, 2013 4:49 PM Hi Patrick, All the mentioned points mean only
Vadim Kalinin Dec 18, 2013 4:49 PM
Hi Patrick,
All the mentioned points mean only one thing - general finance user is unable to create more or less
efficient EPM report
Like (0)
Arnold Warhonow icz Jul 17, 2014 5:04 PM

Arnold Warhonow icz Jul 17, 2014 5:04 PM

Hi Partick,

 
 

great document, I have one question though. You write

great document, I have one question though. You write

Enter the connection name in all EPM formulas (EPMModelCubeID or a static text cell can be used as reference somwhere in a hidden place of your report).

How do you deal with users creating their own connections? What happens when the report, written by an admin, uses a connection called MODEL - ENVIRONMENT but the user who runs the report has connections called ENVIRONMENT - MODELL?

 

Like (0)

 

Jef Baeyens Jul 18, 2014 9:30 AM (in response to Arnold Warhonow icz) Jef Baeyens Jul 18, 2014 9:30 AM (in response to Arnold Warhonow icz)

I would never use the connection name. Just the BPC Model name works as well.

 

Like (0)

Patrick Favre Jul 18, 2014 9:41 AM (in response to Arnold Warhonow icz) Patrick Favre Jul 18, 2014 9:41 AM (in response to Arnold Warhonow icz)

Hi Arnold,

 

Jef is right

you should NOT use the customized connection name created by a user

When designing the report, the .best would be to enter the model name ("Finance" or "Consolidation" for example) in a hidden cell of your report, and reference that cell in the connection parameter of your formula.

You can either enter is static (see above) or use the "=EPMModelCubeID()" formula, in order to be a bit more dynamic.

Hope it helps. Cheers,

 

Patrick

 

Like (0)

Jef Baeyens Jul 18, 2014 10:04 AM (in response to Patrick Favre)

Jef Baeyens Jul 18, 2014 10:04 AM (in response to Patrick Favre)

 

Hi Patrick,

 

The EPMModelCubeID is using the "Active Connection" right? What's the difference with using an empty parameter, because I think it behaves the same?

In my experience, relying on the Active Connection is not nice when you are jumping a lot between reports that are connecting to different models. A static "Finance" or "Consolidation", (or referring to this text in a common excel cell), is definetely my preference.

 

Like (0)

Follow SCN