You are on page 1of 34

Best Practice Guide SAP BusinessObjects Strategy Management

Best Practice The SAP NetWeaver BW Connector in SAP BusinessObjects Strategy Management(SSM) 7.X
Version 3.00 July 2009 Applicable Releases: SAP SSM 7.0 SPX and SSM 7.5 SPX

Copyright 2007 SAP AG. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice. Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors. Microsoft, Windows, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation. IBM, DB2, DB2 Universal Database, OS/2, Parallel Sysplex, MVS/ESA, AIX, S/390, AS/400, OS/390, OS/400, iSeries, pSeries, xSeries, zSeries, z/OS, AFP, Intelligent Miner, WebSphere, Netfinity, Tivoli, and Informix are trademarks or registered trademarks of IBM Corporation in the United States and/or other countries. Oracle is a registered trademark of Oracle Corporation. UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group. Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems, Inc. HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C , World Wide Web Consortium, Massachusetts Institute of Technology. Java is a registered trademark of Sun Microsystems, Inc. JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape. MaxDB is a trademark of MySQL AB, Sweden. SAP, R/3, mySAP, mySAP.com, xApps, xApp, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are the trademarks of their respective companies. Data

contained in this document serves informational purposes only. National product specifications may vary. These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty. These materials are provided as is without a warranty of any kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. SAP shall not be liable for damages of any kind including without limitation direct, special, indirect, or consequential damages that may result from the use of these materials. SAP does not warrant the accuracy or completeness of the information, text, graphics, links or other items contained within these materials. SAP has no control over the information that you may access through the use of hot links contained in these materials and does not endorse your use of third party web pages nor provide any warranty whatsoever relating to third party web pages. SAP CPM How-to Guides are intended to simplify the product implementation. While specific product features and procedures typically are explained in a practical business context, it is not implied that those features and procedures are the only approach in solving a specific business problem using SAP. Should you wish to receive additional information, clarification or support, please refer to SAP Consulting. Any software coding and/or code lines / strings (Code) included in this documentation are only examples and are not intended to be used in a productive system environment. The Code is only intended better explain and visualize the syntax and phrasing rules of certain coding. SAP does not warrant the correctness and completeness of the Code given herein, and SAP shall not be liable for errors or damages caused by the usage of the Code, except if such damages were caused by SAP intentionally or grossly negligent.

Table of Contents
Business Scenario ................................................................................................ 2 1 Introduction..................................................................................................... 2 2 The Best Practice Advice from SSM BICA Projects ....................................... 2 2.1 General Setup Advice ........................................................................................ 2 2.2 Differences in Time and Dimension Handling between PAS and BW................ 6 2.3 Timing of Data update when BW data is left in BW ........................................ 13 2.4 Troubleshooting: General Advice .................................................................... 17 2.5 Transports in a BICA environment .................................................................. 22 2.6 Miscellaneous ................................................................................................. 24 3 Appendix ...................................................................................................... 30 3.1 SSM and PAS Maximums ............................................................................... 30

-1-

Business Scenario
With SAP BusinessObjects Strategy Management 7.X, customers have the opportunity to leverage any prior investments in SAP BW and bring SAP NetWeaver BW data to their SSM implementation.

1 Introduction
This Best Practice Guide for the BW Connector in SSM 7.0 and 7.5 brings together previously undocumented detailed information that was not included in the original BW Connector RKT material as well as lessons learned from customer projects that have used the connector.

2 The Best Practice Advice from SSM BICA Projects


Below you will find suggestions around 5 key areas: General Setup, Differences between PAS and BW for Time and Dimension, Troubleshooting, Transports and Further Tips and Tricks.

2.1 General Setup Advice


1. Ensure you have the latest SP applied for your SSM 7.0 or SSM 7.5 installation.

2. Ensure you release your BW Query for External Access. Note that some rare queries cannot be released for External Access (e.g. if the query contains a formula with the operator SUMCT then the query cannot be released for OLE DB for OLAP. The operators %GT, %RT, %CT, SUMGT, SUMRT, SUMCT and LEAF depend on the display of the list in the BEx Analyzer. If you used MDX, this formula would deliver unexpected values.) Why do I still need to set release for External Access flag on my BW queries when I am using an RFC/BAPI Link ID? Isnt this flag just for ODBO? The Check box actually says "Allow External Access to this Query". That means "allow access to any non Bex application"..... We are accessing the BW query through RFC via the OLAP BAPIs. The OLAP BAPIs are part of the "Open Analysis" methods and as such are non Bex. The ODBO driver also internally uses the OLAP BAPIs. The flag really means "non Bex access".... Some customers actually like the fact you have to flag each query so not everything is visible to BICA! 3. Please note the SSM and PAS system maximums as stated in the install and configuration guides and as restated below in the Appendix of this document. 4. Further note that there is a dimension member combination limit in PAS. This is calculated by multiplying the number of members in all the dimensions that the measures will be dimensioned by. The limit is approximately 264 which is around 1.8 x 1019 . For this reason and for general flexibility it is advisable to only use BW Queries
-2-

to populate PAS (rather than BW Cubes) and to apply filters in those Queries wherever possible. 5. When upgrading BW Server to latest SP, apply the Basis SPs first, then ABA, then BW SP last (Note that for BW SP17 there is a bug in the SQL generation upgrade to SP18 or apply note 1143887) 6. Ensure that all Link IDs are visible in the lsdal.ini file (with the Link IDs for BW) located in the \Windows\system directory of the PAS Server as those are then available to all users. The lsdal.ini file may not be correctly updated if: - You have created the BW Link IDs while using PAS in Client Server Mode - You have enabled multi user access for remote desktop. In this case an additional lsdal.ini file may appear in the user specific Windows directory of someone who may have remotely connected to the system to create the Link ID. That additional lsdal.ini file will only be valid for that specific user. 7. If doing a Hybrid Model (i.e some of the PAS Model data will come from BW and some will come from another source e.g. Entry and Approval), ensure you have followed all the steps in the Server Config Guide for Strategy Management, specifically the section on creation of the Link ID for Entry and Approval. 8. After any BICA update ensure that you delete all temp files and cookies in IE before launching the BICA screen again. (or set flag check for newer version of Stored pages in Tools>Options>Temporary Internet Files>Settings) 9. Ensure pop-up blockers are off for your BICA URL 10. From SSM 7.5 Sp01 you now can start BICA with just http://localhost:50000/strategy/BW. For security reasons, the BICA files will now be put in place on the file system by the deploy and you no longer need to use Tools \ File Manager to load them. Also for security reasons, the admin_bic.htm page is now a .jsp page. There is no admin_bic.htm file that automatically loads admin_bic.jsp (will be added in SSM 7.5 SP02). The BICA functionality hasn't changed however the "Version" page and link is removed. From 7.0 SP07 HF2, 7.0 SP08, and 7.5 you no longer use the File Manager to load the BW Connector or Cube Builder application files therefore the BICA note 1156224 is no longer relevant. 11. Starting with SAP Strategy Management 7.0 SP04 and SSM 7.5 SP01, Application Server connectivity to SAP NetWeaver BW is via the BAPI interface instead of ODBO. When implementing SAP NetWeaver BW with Application Server, you can have Application Server installed on any Linux/UNIX or Windows server system supported by SAP Strategy Management except Sun Solaris. The Link connectivity to relational databases and SAP NetWeaver BW on Sun Solaris is not yet supported 12. Creating a new RFC/BAPI Link ID You need an up to date PAS SSM install. In the latest SP, lsdal.cnf has been updated to include the rfc options (Lsdal.cnf is a template file. It contains a list of supported linkid types (excluding ODBO and ODBC because these can be determined dynamically) in the [ConnectionID] section at the top [ConnectionID] ConnectionID1=Oracle (OCI) ConnectionID2=DB2 (CLI) ConnectionID3=SAP NW BW RFC (using sapnwrfc.ini)

-3-

ConnectionID4=SAP NW BW RFC (load balancing) ConnectionID5=SAP NW BW RFC (specific server) ConnectionID6=SAP NW BW RFC (using saplogon.ini) Followed by a template with all the login parameters for each of these. The template is what PasAdmin uses to dynamically generate the dialog when you create a new linkid for that linkid type. Without the templates for the rfc types PasAdmin can't generate a new linkid dialog for them) and your lsdal.ini has the rfc options enabled as follows: [enable] ConnectionID1=Oracle (OCI) ConnectionID2=DB2 (CLI) ConnectionID3=SAP NW BW RFC (using sapnwrfc.ini) ConnectionID4=SAP NW BW RFC (load balancing) ConnectionID5=SAP NW BW RFC (specific server) In the [enable] section are those entries that are actually seen in the pop up of linkids types when you do New LinkID. If a type does not appear in [enable] a user can't create a linkid of that type (even if a template is there in lsdal.cnf).

then follow this document:

BI Connector support of BAPI through RFC.doc

13. Changing an existing Link ID SAP_BW from ODBO to RFC/BAPI Go into PasAdmin, choose Linkids in left pane, click List tab in right pane. If you right click on SAP_BW the Rename option is grayed out and is not allowed. However if you double click on SAP_BW you can change the Linkid name to something else eg SAP_BW_ODBO Right click on Linkid in left pane and create new, create a new linkid for RFC/BAPI as required (see steps below) and call it SAP_BW with the appropriate specific or group connection info. Test and save the new Linkid. Exit PAS. You have now swapped the two Linkids. SAP_BW is now the RFC/BAPI connection and SAP_BW_ODBO is now the ODBO connection. Any PAS models imported with SAP_BW will now use RFC/BAPI instead of ODBO. They should not need to be reimported or changed in any way. 14. The approach of a separate query for each time periodicity and each measure dimensionality makes sense and is definitely what I always suggest. If this leads to 10 to 15+ queries in the PAS model though then you have to start to question this approach a little. The only real implication I can think of for including a measure in a query which is not dimensioned by one of the characteristics is that the user will be offered a drill down for that measure in SSM KPI Details and may be confused to see that there is no data for the detailed levels of that drilldown characteristic 15. From SSM7 SP7 and SSM 7.5 SP2, "VARIABLES 5000" has been added to the "SUP CREATE DATA" command when you create a new PAS model in BICA. All new models will have this new setting but existing models will have to have this setting increased in PAS if the previous default of 1000 variable limit is not enough.
-4-

To increase the var limit for your PAS db please issue the following before importing any data to the PAS DB. . Use <databasename> exc SUP CHANGE DAT <database name> var 4000 then issue SUP SHO DAT <databasename> Then you will see the updated VAR limit. 16. From note 1263423. You can add a new timeout setting to Application Server Link ID connections to SAP NetWeaver BW. The setting l1=3600 prevents errors from occurring when a session that connects to BW is idle for too long. The value 3600 (seconds) is equivalent to one hour after which time the session connection to BW is refreshed. To take advantage of this new setting, find the section for your Link ID in the lsdal.ini file located in the Windows directory. Add the I1=3600 setting to the end of the section, below Q1=NO 17. When considering leaving data in BW and accessing it real time from SSM/PAS (passthrough) consider the following: BAPI Link ID is far quicker than ODBO Link ID (BAPI Link ID should always be used from SSM 7 SP5 onwards) Performance is mainly influenced through the complexity of the query, e.g. Try to use only one query to feed PAS The query should contain nothing except the time characteristic, the characteristics having a hierarchy and the Key Figures. The Key Figures should not contain any calculations, if calculations are needed these should be done in PAS. Use Filters in the Query wherever possible (for both time and characteristics) For the largest context at an SSM BW Customer (14 queries into 1 PAS Model) it takes about 30 to 60 seconds to load the data on the Scorecard tab. That's very slow but the customer accepts it because by leaving data in BW they have removed the additional overhead/work to keep PAS in sync with BW. In general, the direct load from BW is not a good option for large queries / models 18. When BICA does an IMPORT of any kind (i.e Import Schema or Import Data), BICA does a USE <DB> EXCLUSIVE. The PAS DB will be locked against all other accesses to the DB of any kind by any user until the IMPORT is complete and BICA issues another USE <DB> command to relinquish exclusive control of the PAS DB. When BICA needs exclusive access to the PAS model, it will shutdown any SSM sessions that are associated with the <PASBICUBE>_BI model connection that was created by BICA and all existing work databases will be deleted. Also, access to this model connection is disabled until the import completes so no new sessions can start.

-5-

2.2 Differences in Time and Dimension Handling between PAS and BW


1. When you Import Schema, you choose the manner in which measures will be aggregated over time (Sum/Average/First/Last) however you do not choose the method for Dimension Consolidation until you Import Data from BW into PAS (Sum/Average). Note that as at July 2009, Min or Max consolidation is neither available as a time or dimension consolidation option when you import schema and import data from BW into PAS using the BICA. This means that MIN or MAX values from BW that are required in the SSM Scorecard must be left in BW (where BW correctly handles any dimension consolidation) and these MIN or MAX cannot be consolidated over time in SSM Scorecards/Reports. Furthermore, measure values sourced from BW that are MIN or MAX values must be set as MIN or MAX in the BW Key Figure Meta Data on the BW Server and not as MIN or MAX local calculations in the BW Query. 2. Measure values in BW that are averages (i.e. you have used local calculation in BW Query such as Calculate Result as<Average>) must be imported to PAS. Automatic Dimension Consolidation for these averages where the data remains in BW is not supported by the BAPI interface. There is, however, a workaround involving Exception Aggregation functionality in the BEx Query Designer. On one project this workaround was used to overcome the current restriction that any measure with a dimension consolidation of average MUST be imported to PAS and cannot be simply left in BW (because the dim consolidation driven by Calculate Result as in the BW Query is not exposed to RFC/BAPI). Assuming you have a BW query with a characteristic hierarchy in the rows, to execute the workaround a. Create a Global Calculated Key Figure in the BEx Query Designer b. Go to the properties of your BW Key Figure (in the Query Designer) and on the Aggregation Tab select an Exception Aggregation of Average and set the Reference Characteristic to be the characteristic that appears in the hierarchy of the rows of your query c. This exception aggregation seems to be exposed to BAPI and therefore PAS when the BW data is left in BW. d. WARNING: This workaround assumes that the periodicity of BW data matches the periodicity of the PAS model/SSM Scorecard or report (e.g. month). If SSM users require a different periodicity, you might see some differences in the way BW consolidates vs the way PAS consolidates. This would be true whether or not you import the data from BW to PAS. The reason is that PAS consolidates by dimension first and then by time whereas BW consolidates across time first (e.g. if you remove the time characteristic from the drilldown of the query) and then by dimension. This difference may lead to differences in observed results of averages over time. 3. There is a difference in the order of application of time and dimension consolidation between BW and PAS. This difference could account for differences in expected and observed results across the two applications, particularly with measures that are averages and which need to be consolidated across both dimension and time in PAS/SSM. BW query output aggregates by time first and then by Characteristic/Dimension in a tabular fashion. When you bring the data for this BW

-6-

Query into PAS (via Import Schema and whether or not you Import Data) you will notice that PAS always aggregates by Dimension first and by Time last. For example: given following query output data in BW BW Data viewed in BW Campaign C/0030 C/0031 C/0032 RESULT Time March 08 March 08 April 08 Average Activities 500 300 100 300

As we can see in BW, the average activities for all campaigns in 2008 is given as 300. This is calculated by removing time from the drilldown and observing 3 rows of 500, 300 and 100 respectively and simply averaging those 3 rows. (500+300+100)/3 = 300. This is a simple average calculation on tabular data that BW users expect. In PAS/SSM, Dimension consolidation is done first and then time consolidation is applied on top of those results (see below). Based on the BW data from the above example this would lead to average activities of 400 ((500+300)/2) for All Campaigns in March 08 and average activities of 100 for All Campaigns in April 08 BW Data viewed in PAS Campaign All Campaigns All Campaigns Time (Monthly) March 08 April 08 Average Activities 400 100

and then for 2008 the average activities for all campaigns would give a result of ((400+100)/2)=250 BW Data viewed in PAS Campaign All Campaigns Time (Yearly) 2008 Average Activities 250

BW gives an average result of 300 and PAS gives a result of 250. They are both valid answers, but to 2 different questions. It is therefore important to consider this difference when bringing (average measure) data from BW to PAS and consolidating it over dimension and time. 4. If you want to import BW Queries with Hierarchies, consider going into BW hierarchy definition on the BW Server then to Hierarchy Attributes and switch on "Suppress Unassigned node". Reason: When you Import Schema from BW to PAS the BICA uses HIER DEFAULT. This means that the hierarchy assigned to the characteristic in the query will be imported. If there is no hierarchy assigned to the characteristic then PAS builds a simple hierarchy which is just all members under a TOTAL top node/output level (all members in this case are limited to the characteristic values from the Dim table of the Cube in BW). The issue is that in BW, when we setup a hierarchy it is based on a master data table. This usually has many more entries than the Dim Table of the InfoCube. For example, we may have a simple hierarchy for Customer in

-7-

BW which only has 100 leaf members whereas the Master data table may have 18,000 members. BW always includes a "Not assigned" node for Hierarchies which includes all the remaining master data entries in it. In the above example the unassigned node would be 17,900 members! If BICA imports schema with hier default on a hierarchy like this, then we effectively get the entire Master data table from BW in PAS. PAS would receive all 18,000 members. If you are importing many hierarchies from BW we may start to hit the dimension member combination limit in PAS. This is calculated by multiplying the number of members in all the dimensions that the measures will be dimensioned by. The limit is approximately 264 which is around 1.8 x 1019. The solution is to go into BW hierarchy definition and go to Hierarchy Attributes and "Suppress Unassigned node". (Note that excluding the Unassigned Node of the Hierarchy in the Query definition (or including all nodes except for Unassigned node) is ignored by the BAPI interface) 5. During Import Data, this is the PAS procedure used by the BICA for consolidating measures that should be averaged just for reference. This is an exclusive average it does not include missing values. .... procedure to average up the dimension .... first consolidate the var being calc'd set var '&1' consol rollup '&1' remove everybody add everybody end consol '&1' set var '&1' noconsol .... create var to count dim members for averaging up dimension .... needs to be re-calc'd for each kpi var so only populated .... dimension members are counted create COUNTVAR like '&1' set var countvar consol calc countvar if '&1' is missing = 0 otherwise = 1 set var countvar noconsol .... now calc average of original var calc '&1' = '&1' / COUNTVAR full .... all finished with count variable remove var COUNTVAR sure 6. Be cautious about changing the Fiscal Calendar to start in e.g.July in PAS and then loading 0CALQUARTER measure data from BW. 0CALQUARTER values in BW such as 20081 and 2003 are typically based on a Calendar Year. If these values are sent to PAS and the fiscal calendar in PAS is changed to e.g. July then the Q12008 data from BW will represent July to September data in PAS not January to March data. If you plan to change the Fiscal Calendar in PAS, consider bringing monthly data (0CALMONTH) to PAS rather than quarterly (0CALQUARTER) data. A more flexible approach for 0CALQUARTER is planned for a future SP.

-8-

7. The BW Connector automatically takes care of any duplicate dimension member names (BW Characteristic value short texts) when importing from a BW Query by modifying Characteristic Value short names so that they are unique and acceptable to PAS. This handling of duplicates member names by the BW Connector will not work if you bring two separate queries into one PAS Model where e.g. in Query 1 for 0MATERIAL there is a member with a key value of "M10" and short text "Metal" and in Query 2 for 0MATERIAL there is a member with a key value of "M20" and a short text "Metal". If you bring in two queries into one PAS model then the characteristic (0MATERIAL) that exists in both queries must be identical in every way same filters, restrictions, members, same query variables, same default hierarchy etc. Whether the characteristics are identical in every way or not, if you have 0MATERIAL in Query1 and 0MATERIAL in Query2 then when you import Query1 and then import Query2 the import of dimension Material from Query2 will overwrite the dimension members imported with Query1. The dimension members for Dimension Material in PAS will then correspond to the members of 0MATERIAL in Query2. The Connector isn't going to try and merge two different versions of the same characteristic from two Queries into a merged dimension in PAS Note further that if you have 0MATERIAL/Material in Query 1 and ZMATNR/Material in Query 2 then PAS will create 2 separate dimensions. One called Material and one called ZMATNR. 8. How is Time dependent Master Data in BW treated by PAS and BW Connector? All driven by key date in BW Query. There is no concept of time dependent dimension data in PAS. Re-import the schema if the change in Key Date means a change in the time dependent master data. PAS dimensions will be updated with information based on the latest key date. 9. When importing a BW Query, the BICA identifies and sets the latest date (in PAS) based on the data loaded from BW, specifically the most recent entry in the Dimension Table of the time characteristic e.g. 0CALMONTH. Note that if you have BW queries with Actual and Target data in the one query and you have actual data up to current month (July 2009) but you have Target data up to July 2012 then July 2012 will be the date used for SET LATEST and the Scorecard will default to show values for July 2012 when you logon to SSM after this import from BW. On a project, there are a number of options. You could: Filter the BW query that contains Actual and Target data to current date (manually or via system variable) and create a separate query on BW without a time filter and use that second query to populate a PAS Model and SSM Report which exclusively looked at future targets for example. Dont filter the BW query that contains Actual and Target data and instruct users to manually change the date every time they log on. Dont filter the BW query that contains Actual and Target data and put a procedure in place to manually SET LATEST and DOC LAST DATE in PAS at the end of every monthly refresh of data. To change the latest date manually in PAS, issue the following commands: System> use mhssm7db01 excl System> set latest july 2009 System> doc LASTDATE

-9-

(In the document LASTDATE simply enter 2009/07) System> exit clear. Note further that If a BW customer loads BW actual data from a BW query then subsequently enters (future) target data in E&A, then any "current period" setting made in E&A has no affect on the SET LATEST/ DOC LASTDATE in PAS. The E&A load procedures do include code to update LATEST and the LASTDATE document set, however they determine this date from the Actual records in the E&A tables only. For a PAS/BW model with all Actual data coming from BW and Target Data from E&A, this means that the values for SET LATEST also will come from BW (actuals). 10. In the Import Schema screen of the BICA you will notice a Time Offset flag. This flag should be switched on if you are reading from a BW Query that has been established with System populated Query Variables with offsets (e.g. a date range from todays date less 365 days to todays date). This is required because PAS stores the date range of data with the measure. For a BW query with the above example offset, the date range stored in PAS for the BW measures will be out of date with each passing day. By switching Time Offsets on before you Import Schema in the BICA, a SYSVAR keyword is specified for the PAS Import Schema and Import Time Commands. The SSM BW Connector then knows that the time characteristic in the query contains System Variables (with or without offsets) and so will refresh the Time cache every 10 minutes by default and also at the start of every new PAS session. A SHO VAR for the PAS Model based on the BW Query should then show a different date range every day and that range should correspond to the Current Calendar Day -365 thru to Current Calendar Day if the dimension table of the cube contains data for that range. 11. Assume 2 Queries are feeding a PAS Model. One query has 0CALMONTH and the other query has 0CALQUARTER as the time characteristic. If there is no filter set on these time characteristics the BAPI interface presents PAS with a list of all Dimension Table Members for 0CALMONTH/0CALQUARTER from the underlying Info Cube. Depending on the quality of data loaded to the BW Cube this may lead to junk values for time being exposed to PAS (e.g. in one cube it was noted that values of 01.0001 and 12.9999 for 0CALMONTH were present) Having filters on the time characteristics is considered Best Practice as it helps control the values that come across to PAS and helps to minimize the use of the manual PAS Command SET LATEST after every import schema operation. Note 1: If you do establish time filters in the BW Query and you decide to use a system variable with offset as the to date then please select the Time Offset Flag in the Import Schema screen of the BICA. This flag ensures a SYSVAR keyword is specified for the PAS Import Schema and Import Time Commands (see above). The SSM BW Connector then knows that the time characteristic in the query contains System Variables (with or without offsets) and so will refresh the Time cache every 10 minutes by default as well as at the start of every new PAS session. Note 2: If you are loading Target Data from a BW Query and if target Data has been established in the BW Cube up until e.g. Dec 2012 and if you have not included Time Filters on your BW Query then the SET LATEST will automatically be set to Dec 2012 and you will still have to manually SET LATEST in PAS so that users of the SSM Strategy Maps and Scorecards see the most relevant up to date actual and target data comparisons. 12. If you have PAS measure data at a monthly level and you want to view the data in the SSM Scorecard at a quarterly level then the presented data will be different depending on what date you select within the quarter (using the As of selector in the SSM UI).

- 10 -

The reason is because the SSM Scorecard uses Quarter to Date when reading the relevant data from PAS. Furthermore for average measures and the Quarter to Date functionality, PAS gives different weights to each month based on the number of days in each month. This will lead to discrepancies when comparing average results consolidated over time between SSM and BW. In SSM 7 you can relabel the dropdown to more clearly explain the Quarter selection is Quarter to Date by using the UI Strings editor. In SSM 7.5 SP2 there will be two dropdown options for Quarterly view in the SSM UI: Quarter and Quarter to Date. 13. By default, SSM labels a Fiscal Year based on the year in which the Fiscal year starts. For example if a Fiscal Year starts on July1 2008, then the first 3 months of that Fiscal Year would be presented as 2008JulAugSep. Some customers would prefer to see the FiscalYear label refer to the year in which the Fiscal Year ends. In the above example, the first 3 months of the Fiscal year that starts on July 1 2008 should be presented as 2009JulAugSep. To realize this change: Go to \Program Files\SAP\SSM\InternetPub\procs. Then, look for the files scorecard.pro and navtset.pro In each file there will be a section that looks like this: set def dai '%3M %2D %Y' set def wee '%3m %2d-%3M %2D %Y' set def wtd '%3M %2D %Y' set def mon '%m %y' set def mtd '%m %y' set def qua '%3m% %3M %y' set def qtd '%3m% %3M %y' set def yea '%4y' set def ytd '%4y YTD'

Change the settings for the yearly, YTD, and possibly quarterly and QTD values in both procedures. If you do that, then the file will look like:
set def dai '%3M %2D %Y' set def wee '%3m %2d-%3M %2D %Y' set def wtd '%3M %2D %Y' set def mon '%m %y' set def mtd '%m %y' set def qua '%3m% %3M %Y' set def qtd '%3m% %3M %Y' set def yea '%4Y' set def ytd '%4Y YTD' All we have done is made the y uppercase Y in the last 4 lines. When you change from using %y to %Y for the view of quarterly data, that will give you the year in which the ending month of the quarter falls. You will need to make sure that you clear your

- 11 -

cache before viewing this label change in SSM. Furthermore, if you want to display the ending year for the fiscal year, regardless of the year in which the quarter falls, you can use %F in place of %Y for the quarterly periodicities. However it may be less confusing to display the calendar year of the quarter end month. 14. The PAS command to set July as the start of the financial year e.g. set fiscal calendar july can only be issued before anything in the model has been created. If there is a measure in the model this command will not work. . 15. From SSM 7 SP7 and SSM 7.5 SP2 we are able to accept BW queries with 0FISCPER as the time characteristic. To realize this: a. Ensure that the query has 0FISCVARNT set to a single FY variant in the global filters b. Ensure that the BW query has 0FISCPER in query rows or free characteristics etc c. Create the PAS model in BICA d. Exit BICA e. Logon to PAS f. Model in exclusive mode g. SET FISCAL CAL APRIL h. Create a Document in PAS model called BWFISCPERINFO. This document should have two lines in it. The first line denotes periodicity represented by 0FISCPER (usually MONTHLY) and second line maps Fiscal period to a calendar month. You can choose any single combination of YYYYPPP and YYYYMM for this mapping. The example below uses 200901 mapping to April 2008 MONTHLY 2009001 200804 i. Return to BICA j. Load query with 0FISCPER as time characteristic 16. We can also handle 0FISCYEAR as the format for 0FISCYEAR is the same as 0CALYEAR i.e. YYYY. Note that there is no standard time characteristic in BW content for Fiscal Quarter. 17. In a PAS model you may have measures which are monthly, quarterly or yearly (depending on time characteristic in BW query). In SSM you are asked to set a minimum periodicity which you have set to month. Annual measures e.g. Survey data may not make sense to be averaged down to monthly level when you view the SSM UI monthly (using PAS time intelligence). There is no way to disable the display of KPI's on the Scorecard based on the selected periodicity. However, if you use the LAST periodicity for the yearly measures that shouldn't be divided down when viewed at a more frequent periodicity, the yearly value will display for every period.

- 12 -

2.3 Timing of Data update when BW data is left in BW

1. - When an SSM user logs on to the scorecard, PIP creates a PAS session (lsstcp.exe process) and a work db (in PAS) for that user - At the start of a new PAS Session (and every 10 minutes by default), PAS checks BW to see if new data has been loaded (or the query changed). If it has, then it will expand the timespan of the measures in PAS - When an SSM user logs off SSM then logs back on, PIP may decide to connect that SSM user to the already open PAS session from before (PIP decides how many of those PAS sessions to create, which users to connect to them, how long they survive etc). Therefore if you login to SSM at 10:00am (and a new PAS session and PAS work DB is created for you), then update BW data at 10:01 am then logoff SSM at 10:02 am and log back on at 10:05am, you will be logged on to your original PAS session and your original PAS session opened at 10:00am wont check for new data until 10:10am As well as the PIP and PAS Caches discussed above, BW has its own internal cache when an application attempts to retrieve BW data via the BAPI interface. This cache is filled when you first logon to BW via BAPI and, from our discussions with BW development colleagues, it does not seem to be further updated or invalidated in that BW logon session. In other words, whatever the BW Cube last update timestamp says when PAS first connects to BW is what you will always see in that connection session whether or not new data is loaded to the BW cube. It is an internal cache in BW over which we have little to no control. This is true of any tool calling SAP BW via BAPI, not just PAS. So just to recap, this is what happens when you logon to SSM UI for the first time 1. SSM calls PIP to create a new PAS Session 2. PAS makes an RFC connection to SAP BW and the SAP BW side Cache is filled with information re timestamps of last data load etc 3. SSM user sees latest BW data (e.g. Sept-Oct) 4. New data for Nov is loaded to SAP BW 5. The SAP BW side cache for our existing RFC connection is not updated with new timestamp information 6. Our PAS session reads from the BW Side cache every 10 minutes, however it is only given the BW cache timestamp info from when the SAP BW RFC connection was first opened. 7. Our PAS session sees that nothing has changed on the BW side, therefore it does not attempt to expand the timespans of the measures in PAS 8. The SSM user linked to that PAS session will not show new data, even after 10 minutes, 20 minutes, 3 hours... (9. When you logoff and logon SSM UI, PIP rejoins you to the original PAS Session and that is linked to the original SAP BW RFC connection with the now outdated timestamp data. However when you go in to PAS and kill a PAS user, that closes the PAS session and when a user next logs on to SSM UI, SSM forces PIP to create a new PAS session which will in turn create a new RFC connection to SAP BW which will then be filled with the latest meta data from SAP BW (including latest data update timestamp info). However it is not Best Practice to go in and kill PAS users directly in PAS. The SSM BW integration was originally designed so that data loaded to SAP BW overnight was visible to SSM/PAS users when they logged on the next morning. This will always work as in the morning a brand new PAS session will kick off a brand new RFC connection to BW and see the latest timestamp info.

- 13 -

If SSM users have an expectation that data loaded to SAP BW should be available immediately (or within x minutes) in the SSM UI then we will have to recommend the following: " If you need to be able to see newly loaded SAP BW data in SSM "near real-time", then we would recommend Restarting the Extended Listener after the data is loaded to SAP BW. This will guarantee that all existing PAS sessions are closed down and all existing RFC connections to BW are released. When the SSM user then accesses the UI, a new PAS session will launch a new RFC connection to SAP BW and the latest timestamp info will be available and used to expand the time spans in PAS so that newly loaded BW data will be visible to the SSM users" Other notes/information: 1. We plan to offer the ability to schedule the close and restart of PAS sessions by model so that it wont be necessary to do a blanket Restart Extended Listener everytime. E.g. you could automate the close and restart of all PAS sessions for Model XYZ (fed by newly updated BW Cube ABC) 2. You should also be aware of the "Global cache setting" that you see on the SSM Admin Set System Defaults screen. This setting determines whether or not PIP caching is even allowed. If it is set to Disable then PIP will cache nothing. If it is set to Enable then the SSM application components have the ability to allow or disallow caching. By default, the SSM end-user applications are configured to not cache anything. This is controlled by a Java System Property in NWA setting of "CacheFlag=NO". The only thing that does not use this "NO" setting is the Dimensional Selector. It is set to always cache dimension information unless the Global Cache property is disabled. The implication of Note 2 above is that if you have the out of the box settings of - Global Cache Setting in SSM Admin set to Enable and - Java System Property in NWA setting of "CacheFlag=NO" then any new master data loaded to the SAP BW Cube may not be available to the Set Filters/Dimensional Selector in SSM UI. If you suspect that any new characteristic master data may come with a new load of BW Cube data then please ensure you also clear the PIP Cache (Button "Clear Cache" on the SSM Admin Set System Defaults screen) after a new load of BW data or else set the Global Cache Setting in SSM Admin Set System Defaults to "Disable" Furthermore, when new data is loaded to BW, you might want to consider how quickly that data is shown to users, e.g. do you want new data to be visible in SSM right away (where potentially some KPis will be updated and some not) or do you want more of a monthly process where e.g. you adjust the time filters on your BW query once per month (or use system offset variables) and therefore have more control around when new data is visible in SSM. Given the default application setting of "CacheFlag=NO", a "Clear Cache" from the Admin should just be deleting just cached dimension information. PIP stores a lot of details about every dimension member so that it can build hierarchical views, do proper drilling, etc. PIP should pick up on dimension changes and refresh the cache if the PAS model is updated so a "Clear Cache" is not needed very often. It is always recommended during an upgrade because the structure of the cache entries could change. If you are experiencing problems with data refreshes then it might be worth setting the Global Cache Setting to Disable to see if it resolves the problem. Otherwise, work with the default settings. When PIP caching is enabled, it uses the exact URL being sent to the server to
- 14 -

determine if it has a data view in it's cache or if it needs to go to PAS to retrieve it. The URLs that are built by the application include a huge amount of detail including the date range and the latest date so if any of this changes then it will go back to PAS. It also considers the "Last Updated" date for the measures in PAS and it will ignore what it has in cache if these have changed. (Issue the SHOW UPDATED command in your PAS model to see these date time stamps.) 2. PAS Command: schema view cube rowset full cube '0D_SD_C03/ZQ01' is useful to see all meta data such as last data update and last schema update for BW Query ZQ01 On cube 0D_SD_C03 and PAS Command: schema cube '0D_SD_C03/ZQ01' IMPORT TIME FORCE end is useful to force PAS to look at the latest data loaded in BW. This should not be necessary as the cache in PAS looks for new BW time period data every 10 minutes by default and will see new BW time period data assuming the BW side cache is up to date. 3. A PAS session started by PIP corresponds to a lsstcp process on the machine that PAS runs on. PIP controls when lsstcp process are created and deleted. If there are only a few concurrent users, each user gets one of the lsstcp process and keeps using it. If there are many concurrent users PIP multiplexes the users on the running lsstcp processes. Every lsstcp process (or pasadmin process) has a workdb attached to it. When you log in as admin this is usually wkadmin. When you log in to PAS as PAS user guest it is a db with a generated name however PIP generates a workdb name by concatenating the network (UME) user name with the model connection name. When PIP multiplexes users it advises PAS which workdb to use at any time. In this way it can maintain a workdb per SSM client session. When you have 10 concurrent SSM users there should be 10 different workdbs. Each SSM user will therefore have their own 10 minute time line and their own time cache. As each user does something at 10 minute intervals from his SSM session start, their time cache should be updated. Of course this means that each users' time cache may be updated at a different point in time depending on when they started and what they do but some time after 10 minutes after any change in BW they should all see that something has changed and all have current time cache info in their corresponding workdb. We can change the default 10 minutes to a higher or lower value on a per linkid/cube basis with the following PAS commands: schema conn Q75 cube 'ZPDEJ97I/PAS' cache time 60 ... applies to cube ZPDEJ97I/PAS on linkid Q75 Also, something to keep in mind. When you use "sup kill conn to" in PAS to get exclusive access to a database that is attached in read mode by SSM, it does not delete the work databases. Once you finish updating the model and release it, a new SSM session will pick up the old database. This is one reason why restarting the Extended Listener is always the best option. When you change the "As of..." date on the Scorecard then it is updating the LATEST

- 15 -

setting in the user's work database so, yes, it is a personal setting. In some cases it also may be issuing SET PERIOD commands to get the correct range of dates for the view. In other cases, though, it might be using time sets for the view that work off the latest (ie. 'latest minus 2 - latest' to get the last 3 months for the Score History).

4. If you have chosen to leave BW data in BW (i.e. you have only done the Import Schema step) then once new data is loaded to the BW Cube and you cannot see the data in PAS after 10 minutes, you should try: a. Clear PIP cache in SSM Admin and restart the SSM Extended Listener or b. Reset the relevant model connections using the PAS Query Tool in the Tools HTML utility for SSM c. Click on The Scorecard Tab, click anywhere in the grey space around the calendar selector, hit CTRL+J on your keyboard and then click on Clean SC Status. When you do the "Clean SC Status" from the Ctrl+J screen you are clearing out the records from the CPMS_SCORE_STATUS table in the system database. This is unrelated to PIP caching. High-level status information for KPIs and Objectives is stored so that it can quickly display status icons on the Strategy tabs and pop-ups without having to get data from PAS and do the calculations to determine color, trend, etc. (the things that it does on the Scorecard tab). The Ctrl+J screen should be a last resort option to help support and development when trying to debug things. It's not something that a customer should have to do. The application automatically determines when the information in the CPMS_SCORE_STATUS data is stale and refreshes it. 5. BICA Scheduler tips and tricks: SSM relies on the NW Scheduler which is part or the standard NWCE install. If the PAS procedure kicked off by the scheduled task does run, it will create a trace file called BWCTRACE_SCHEDUPD_<pas/BW model name>. You should find this in the \SSM\ApplicationServer\home directory. As far as modifying an existing Schedule goes, this can be done from the Configure Scheduler screen in the SSM Administrator. You can change the run time by clicking on the Edit link, updating the time, and clicking Save. To stop the schedule from running you just uncheck the Enable box. The NWA Schedule Administrator (an optional deployment when you install NW CE) has to be used to delete the task completely.

- 16 -

2.4

Troubleshooting: General Advice

1. If model connections created by BICA no longer work (or seem to impact whether or not other existing model connections work) check that the PAS users GUEST and CBADMIN have a max of 255 logins defined. 2. When troubleshooting in SSM and PAS, consider that PAS Command sup kill connect to <Modelname> might be useful. 3. If you can't see a Link ID in the dropdown of the BICA Import Schema screen, a. Make sure that PIP is actually connecting properly to PAS (i.e. check in SSM Admin to see if all the other model connections work). There may be an issue with the Web Service user and password on set system defaults screen in SSM Admin. b. Ensure that all models created using the BICA (model will end in PBI) are associated with existing Link IDs in PAS. If a Link ID was deleted, the model referring to it must also be deleted otherwise no Link IDs will appear in the dropdown box of the BICA Tool. c. The problem might be due to a few of the PAS models tied to the GUEST(1,2,3) username even though GUEST was not logged in. On one occasion, the PAS command SUP FREE DATABASE fixed the problem with the BICA. (the 1,2,3 is just the number of the session for mulitple logins on the same username.).One of the guest sessions was stuck on one of the old pas models, which was interfering with the BICA. 4. If you're having problems with the BW connections, consider turning on PasTrace in the registry Procedure 1. Use Regedit to edit HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SAP\SSM\InternetPub. 2. For the PasTrace key, set the value to 1 to turn it on. This enables tracing of application access to the Application Server model. 3. Stop and start the SAP SSM Extended listener. You have to restart the Listener in order to view the file. The file is locked by the Listener process and the only way to view it is to stop the Listener to release the lock. You can view the trace files by opening them in a text editor. The resulting trace file will be written to \<install-dir>\ApplicationServer\home on the system where Application Server is installed. The trace files are named by the username and model you are accessing as follows: <modelname><app_server_user><unique_stamp>_time.txt (Contains all commands and the response times to process the commands in the same session. <modelname><app_server_user><unique_stamp>_both.txt (Contains all commands and the results/output from those commands.) <modelname><app_server_user><unique_stamp>_cmd.txt (Contains all request commands issued to the server for user to the database in the same session.)

- 17 -

In the PAS Trace files, when you see any error with a HResult 0x80004005 and/or Description starting with System Error it means the error is in the BW back end

5. You may also consider turning on PipTrace in the registry Procedure 1. Use Regedit to edit HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SAP\SSM\InternetPub. 2. For the PipTrace key, set the value to 1 to turn it on. This enables tracing of application access to the Application Server model. 3. Stop and start the SAP SSM Extended listener. You have to restart the Listener in order to view the file. The file is locked by the Listener process and the only way to view it is to stop the Listener to release the lock. You can view the trace files by opening them in a text editor. 6. The third kind of useful trace is the RFC Trace. This RFC TRACE should only be necessary in certain older versions of PAS where the RFC return error message were unintelligible. In latest versions you can see the RFC return message by e.g. going to PAS IDQL Tab and running schema/spy on/end/select var/ list etc and you dont need the RFC_TRACE variable set in the Link ID. The RFC trace is set in the Link ID properties by setting RFC Trace = 1. In the SSM\Application Server directory there will be an rfc trace file called something like rfc07508_06608.trc. The numbers are different every time. This rfc trace will have all the proper rfc error messages in it so you can see exactly what is happening. 7. BICA always creates Trace Files in \<install-dir>\ApplicationServer\home on the system where Application Server is installed regardless of whether PASTrace is turned on in the registry or not. The BICA Trace Files are BWCTRACE_SCHEMA_<MODELNAME> (for Import Schemas done by BICA) BWCTRACE_DATA_<MODELNAME> (For Import Data done by BICA) 8. 3 useful PAS DOCUMENT SETS to know are: IMPORT_SCHEMA_HISTORY (from BICA) IMPORT_DATA_HISTORY (from BICA) CONSOLINFO (lists measure name and procedure used to consolidate this measure) 9. You can edit the CONSOLINFO document to allow you to load manually entered data on any dimensional level (Output nodes) in the PAS model. If you only did an "Import Schema" and the Actual measure is sourced from BW, there does not need to be an entry for a measure in the CONSOLINFO doc set. When the data is not imported then there only needs to be a line for "Create new" measures in the model. If you see a line in the CONSOLINFO document such as BW_CREDIT_REV_OV_TAR,ENTER,ALL then a. ENTER in the second position means you can enter values in Entry and Approval at all levels of the dimension. If there was a NONE in that position then it would mean that the measure was un-dimensioned. b. The ALL in the 3rd position tells the E&A Create Metric Sets code that both

- 18 -

the Input and Output members of dimensions should be displayed when defining sets for this measure. c. Putting "NONE" in the second position when you want to create E&A metric sets for all levels of the dimension will not cause a problem. It is the keyword in the 3rd position which determines whether E&A displays just the INPUT dimension members or ALL when creating metric sets. 10. In early versions of the BICA Tool (pre 6 June 2008), if you did an Import Schema using BICA then changed the query definition in BW then tried to re-import schema using BICA (or even import schema to a brand new PAS Model) then the BICA may not have recognized the new query definition. This is because the old query definition is still in the Work Database of the PAS user that the BICA tool uses to connect to PAS. From BICA version 6 June 2008, FORCE has been added to all of the IMPORT commands so this should no longer be a problem. The other solution is to restart the extended listener (to close the work database of the PAS User) and then use the BICA to re-import the new query definition. Note that if you are working in PAS directly you would just issue an exit clear command and re-enter PAS the new query definition will then be available to you. 11. When trying to test your Link ID for a BW system you may see an error such as TCP/IP error. Partner your_server_ip:3300 not reached. You will also notice that you cannot connect to the BEX Query Designer from the PAS Server Desktop. At one customer site this happened and the resolution was to open firewall port 3300 between the PAS Server and the BW Server (Opening firewall port 3200 between the PAS Server and the BW Server allowed us to logon to the BW Server via the SAPLOGON pad, but this was insufficient for the LinkID and Query Designer to work) 12. If data appears to be in PAS, but is not being displayed in the scorecard, you can go into the PAS model in exclusive mode and do: JOB COMPILEALL;TBDB This will ensure that all dimensions are compiled correctly. 13. If the BICA Import Data screen is blank (and SSM Scorecard reports errors too about Metric A for a given BICA PAS model) then it is likely that the PAS model containing Metric A is in error. Logon to PAS and try to view data for that model (and any other model) directly in the PAS Data Viewer and look for any errors. Can you build a report or dashboard in SSM on this model? Blank screens in the BICA sometimes signify a PAS model in error. 14. If you add a characteristic to a BW query and do not re-import the schema, then the PAS Model will be in error (assuming you did not Import Data to PAS). The error message in PAS is a little confusing as it will discuss Fiscal Characteristics (Fiscal characteristics in a BW query are ignored during Import Schema so this is simply one possible reason for a BW characteristic to not exist as a PAS dimension) You can resolve this error in one of two ways: a. Re-import the Schema using the BICA tool b. Issue the following PAS commands: SCH CONN <linkid> CUBE <the changed BW Query> IMP DIM '[<the BW name for the extra characteristic.]' IMP VAR * FORCE END the IMP VAR would just be to re-dimension the measures in PAS by the increased

- 19 -

number of dimension in the query

15. If you suspect any issues with the communication from PIP/PAS to BW the http://yournwceserver:50000/strategy/BW/admin_bic_reset.htm page (from SSM 7.0 SP04) can be called to restart just the "bicdefault" model connection. The "bicdefault" connection is the one that BICA uses and it should be the only one that needs to be restarted to correct the communication error to BW 16. If when doing an Import Data for large amounts of data you see RFC Error = 3 Error group 2: TSV_TNEW_PAGE_ALLOC_FAILED No more storage space available for extending an internal table.. This indicates the ABAP back end of SAP BW is running out of memory. Increase the Maximum Local Memory (abap/heap_area_total parameter) to a more appropriate size in the BI box and the import data load will complete successfully 17. If you see no data in PAS Data Viewer (and no error message) then you can try System> schema Schema> spy on Schema> end System> stat System> sho var System> sel var X Variables Currently Selected System> list Then take the MDX and copy and paste it into BW txn code MDXTEST and you may get this error message: Error occurred when starting the parser: timeout during allocate / CPIC-CALL: 'ThSAPCMRCV' Message no. BRAINOLAPAPI011 Diagnosis Failed to start the MDX parser. System Response timeout during allocate / CPIC-CALL: 'ThSAPCMRCV' Procedure Check the Sys Log in Transaction SM21 and test the TCP-IP connection MDX_PARSER in Transaction SM59. In general: If you ever see a CPIC error message this means that RFC is not working properly. There is either a communication error or there is something not working in the BW back end. CPIC is the low level communication protocol underneath RFC. Errors like this have nothing to do with SSM nor PAS.

- 20 -

18. When creating the BW connection LINKID you get an error message saying could not load RFC dlls. You get this error if sapnwrfc.dll or any of the dlls that it depends upon are not present on your system. They should have all been put down by the install. Please check that sapnwrfc.dll,libsapucum.dll,various icu*34*.dll are there in the ApplicationServer dir or in the windows\system32 dir. One way to check that everything is there is to use dependency walker http://www.dependencywalker.com/ Just download it and click open then look for the lsdal.dll - it will show you all the dependent dlls and highlight any that are missing. We deliver the sapnwrfc dlls with the SSM install. The sapnwrfc dlls are build with the Microsoft compiler and require Microsoft run time dlls such as some MSVCxxx80.dll. A dll will fail to load if any dlls anywhere along the dependency tree can't be located or loaded. The install should be installing everything that is needed 19. An error like COM:ErrorRecord: HResult: 0x80004005 Always means that something has gone wrong in the driver or the BW backend itself and the driver doesn't know what to do about it whereas a message like Description: Failed to start asynch thread. Would imply to me that the machine was short of memory or resources at the time. A thread of execution is a subprocess within a process on the o/s. An asynchronous one is one that is going to go away and do something while the orignal thread carries on doingsomething else so that it doesn't have to wait for the second thread to do its stuff (it will wait for it later to catch up) and parallelizes execution. 20. For a customer to open a service connection: - Go to http://service.sap.com/support - Select #Help and Support# - Select #Connect to SAP# The customer is then provided with a step-by-step guide of how to open the connection to SAP. If they have any problems following these steps, there are two courses of action that they can follow: Preferably open a customer message -> component XX-SER-NET. Support for this component is available 24x7, and my understanding is that they are an extremely good 24x7 help desk. They can also call a 24x7 hotline which is available in Europe, Americas, Japan, Australia, New Zealand, and Singapore. Probably the best thing to do is simply attach note 35010 to the message. This note contains a full description of how to set things up, what component to use, and the hotline numbers to call. You can see the full text of the note here -> https://service.sap.com/sap/support/notes/35010.

- 21 -

2.5 Transports in a BICA environment


1. Ensure the Link ID name for BW is sufficiently generic (e.g. Link ID name should be "SAP_BW" rather than "BW_DEV", "BW_QA", "BW_PROD") and just change the appserver address in each Link ID definition in each environment. This saves you having to rebuild the model from scratch with a new Link ID name in each environment. 2. Ensure that the BW queries that feed our PAS models are migrated from BW DEV>QA>PROD using standard BW Transportation Tools. This is BW Project Best Practice. Lock down the BW environment by introducing Transportation Management for all of our SSM BW Queries to ensure consistency between the various BW servers. Without this consistency, PAS will always be at risk of trying to connect to a new BW Query definition using out dated BW query schema information. 3. How to PAS dump and load to move PAS model from DEV to QA or PROD: In PAS DEV get your model in exclusive mode and enter command DUMP file.dmp NO DATA This just dumps the dimension and measure definitions without any data values. It saves you from having to recreate all of the Scorecard Metrics in QA/PROD Create the PAS model shell in PAS PROD (e.g. using BICA). Exit BICA and logon to PAS and get the model in exclusive mode and enter command LOAD filename.dmp Then in BICA re-import schema (to update dimensions) Also in BICA, re-import data (to load data to the PAS model if appropriate) Please remember to check that if you have multiple queries in a PAS model that share a common characteristic, you must ensure all characteristics in the BW queries that are common return the exact same set of master data values. 4. Another option to move PAS models from one environment to another is to simply copy the file for the PAS DB from the Application Server/Home directory of the DEV system to the Application Server/Home directory of the QA or PROD environment. Once the file is copied across, go into PAS QA/PROD and enter command SUP ADD DATA <DBNAME> PAS with then find the DB file in the home directory, and add it to the MASTER DB After you add the DB to PAS in QA/PROD the following commands may also be necessary/useful REM DATA * SURE (when model is in exclusive mode) Then in BICA re-import schema (to update dimensions) Also in BICA, re-import data (to load data to the PAS model if appropriate) SUP CHANGE DATA <DBNAME> enable SUP CHANGE DATA <DBNAME> maxaccess update

- 22 -

5. In the SSM QA Server/Environment, you could establish mirror PAS models for every production PAS model and tie those models to an additional Link ID for BW QA to ensure that any changes made to SSM queries in BW QA do not interfere with the integrity of our Quality and Productive PAS models.

- 23 -

2.6 Miscellaneous
1. By default all KPIs are brought from BW in to PAS. Even the hidden key figures. If you do not want these hidden key figures in your PAS model you will need to go into PAS, get the model in exclusive mode and remove the PAS Measure variable that was created by the BW Connector based on your hidden key figure. The PAS commands for this would be: use <PASBWDB> excl sho var rem var <VARNAME> sure 2. For any measure/key figure imported from BW, PAS stores a PAS measure name based on the description of the key figure in BW (The BW Connector automatically converts some characters in the BW Key Figure name when creating the PAS Measure name. For example, . and / become _ and % becomes PCT) and a caption for PAS measure name (this is the BW Key figure description with no conversion of special characters - the long name on the PAS measure will therefore display as it does in BW.). In addition, when PAS requests data from BW, it uses the BW technical name of the measure. When drawing data from a BW Query this is the 32 character GUID for the BW Key Figure. When drawing data from a BW Cube this is the technical name of the Key Figure InfoObject. You can always see these from PAS by using command: exh var * mdxname 3. If bringing more than1 query into a single PAS Model, if the same Key Figure appears in both queries (i.e. same Key Figure description in BEx) it will be impossible to distinguish these two separate key figures/model measures in the Actual and Target dropdown selects on Create Scorecard Metrics of BICA. Consider distinguishing them with a relabel in the BW Query before importing 4. Once you have imported data from BW Fact Table into PAS, the definition of the PAS measure is changed and the reference to the BW Key Figure is lost. This Import Data and subsequent delinking of the PAS measure from BW can be undone and we can revert a measure back to being supplied from BW Fact Table Data. Use PAS command: set var <MEASURENAME> from <LINKID> prefix '<THE FULL QUERY/CUBE NAME>' 5. On the BICA>Create Scorecard Metrics Screen, when entering a name for your KPI Metric Set consider the following: a. %, ., / signs and other special characters are not supported. Only and _ are valid entries b. The KPI Metric Set name can have a maximum of 17 characters. c. You are allowed to have measure short names that start with a number but when you reference them in a formula you have to wrap them in single quotes. For example:

'23_INCOMING_ORDERS_VALUE'/'33_BILLING_VALUE' rather than 23_INCOMING_ORDERS_VALUE'/'33_BILLING_VALUE

- 24 -

6. After you delete Scorecard Metric Set in PAS and recreate Scorecard Metric Sets in BICA, then in SSM Admin>Set KPIs the original KPI Set names may still appear. Refresh the KPI set names in the dropdown by Deleting Temp Files and Cookies 7. The child KPIs that can be defined in BW 7.0 queries are read by SSM/PAS and BW Connector as just another metric without any issues (tested to 1 level down only) 8. With the SSM7 SP02 version of PAS there is an INI file setting that can be used to turn off BAPI SECURITY across the board. If you have no need for security in PAS/BW then it is recommended for you to add this "ODBOSECURITY=0" entry to the end of the [Windows] section of the c:\windows\lsserver.ini file on the server. The BICA automatically issues this ODBOSECURITY=0 command despite what is in the lssserver.ini file 9. AUTOUSE procedures may be useful if you would like to issue a PAS command that will be called every time the PAS model is opened by a user or by PIP (e.g. $ODBO SECURITY OFF if you are working in an SSM 7.0 version pre SP02). PAS command TYPE AUTOUSE allows you to view the contents of the Procedure without going into procedure edit mode. Similarly TYPE DIM XYZ allows you to see the members of the Dimension without going into Dimension editor 10. Whilst in your model in PAS, PAS Command: exh linkids used is useful to see all Link IDs used in the model. 11. In BW we can use System Variables with offsets to do restrictions on displayed data such as view all data from Current Calendar Day 365 to Current Calendar Day. To achieve the same in PAS you could do SET PERIOD DAILY SET LATEST TODAY SET EARLIEST LATEST-365 12. The Extended Listener sits between SSM and PIP. The Listener sits between PIP and PAS. When you logon to PAS directly you kick off a PASAdmin.exe process and when you logon to PAS via SSM/PIP you get an lsstcp.exe process (this is a cut down PAS admin process stripped of all GUI controls etc). In Model connections you can control how many PAS sessions/lsstcp.exe processes to launch. In SSM 2007, a new lsstcp exe process used to kick off a new DOS window on the desktop of the PAS Server. This no longer happens in SSM 7.0 as the property on the SAP SSM Listener Service has been disabled. It may be Best practice to enable this as every lsstcp process run within the DOS window has its own dedicated (small) allocation of desktop app memory whereas if the property is switched off and there are no DOS windows then all lsstcp processes share the same bit of small desktop memory. For large installations this may present a problem as a limit of lsstcp sessions will be reached, no more will be able to be created, they might stop, run out of memory etc. To re-enable the DOS windows right click on the SAP SSM Listener Service then select Properties. Go to Logon Tab and switch on flag Allow Service to interact with desktop. This will come into effect after restart of Listener.

- 25 -

13. The decimal setting made in BICA for decimal places only applies to PAS measures and not to SSM UI. The workaround is to modify the "DECIMALS 2" line in the file ...\InternetPub\procs\scorecard.rep (and also scorecardma.rep if they are displaying multiple Actual columns in the Scorecard). This is the PAS report set that is used to populate the scorecard and that line controls the number of decimals in the output. If the line is removed or commented out (add "..." to the beginning) then the measures will display with the number of decimal places set in PAS. For performance reasons, in 7.5 SP02, these external report sets used by the application were moved into the PAS database called APLIB. So, to make this same change in that release, the SCORECARD and SCORECARDMA reports in the database will have to be modified. 14. Handling multiple currencies and units of measure in BW queries imported to PAS In BW, key figures can be associated with a currency or a unit of measure and are then linked to a standard info object such as 0CURRENCY or 0UNIT. All data for this key figure is loaded for a single currency or unit of measure. At run time in the query it is possible that a mix of currencies exist in the output. A user then has the choice to view the amounts in the originally loaded currency, or to convert all amounts in the query result to a single currency. During the conversion process they can choose from a range of different conversion types (e.g. mean of monthly exchange rates, mean of daily exchange rates etc) which looks up a currency conversion table in BW. This table in turn may be updated from their SAP ERP system. In PAS there is no standard delivered dimension to model currency nor unit. A single level dimension could be established in PAS and populated by e.g. the 0CURRENCY info object in BW, but this would then lead to other challenges: 1. It would reduce the number of dimensions we can dimension a PAS measure by from 12 to 10 (with 2 always being taken up by 0CURRENCY and 0UNIT) 2. Currency translation can be achieved in PAS (and has been achieved in PAS) via the use of Virtual Variables and calculations, however in this case we would need to establish, populate and maintain a currency translation table in PAS also. This represents significant increased overhead and significantly increases the complexity of the PAS Model. 3. The SSM scorecard UI does not currently support a currency nor unit of measure choice as standard. If the PAS model is built to support multiple currencies/units with dimensions, the "filter" features of SSM could be used to view these. However, it complicates both the scorecard design and the end-user experience. For these reasons we recommend that a customer first translates all key figures into a single currency and single unit of measure before attempting to import the data from BW to PAS. Since the purpose of bringing this BW data in to PAS is to directly and consistently compare metric values to targets and over time, this should be acceptable to our SSM customers. 15. What do you do if E&A Load PAS Model doesnt actually load data to PAS? Look for the trace file generated by the load. It will be in the ApplicationServer\home directory and have the name wfmde_update_<MODEL>.trc. If it is finding the procedure for the load then errors in this file may explain the problem

- 26 -

16. To see the exact number of variables in the PAS model. In IDQL Tab output myoutput.txt exh index output off In the Home directory where PAS has been installed you will find myoutput.txt. Open it in Notepad and select View>Status Bar. Go to last entry in Notepad and it will tell you what line number you are on. 17. Handling a Virtual Variable calculation when the denominator is sometimes zero Get the PAS model in exclusive mode Right click on model and select New>Logic. Give your Logic set a name e.g. mylog Inside the Logic editor type the following (example syntax only)

vvar if BILLING_VALUE EQ 0 = OPEN_ORDERS otherwise = OPEN_ORDERS/BILLING_VALUE Save logic set and return to IDQL tab Enter PAS command (example only): create var vvar by Customer, Product Channel logic mylog

(To see your Logic set later you can enter PAS command: type log mylog) 18. If it has been established that the data prior to e.g. Feb 2000 is obsolete for various reasons you can remove data in PAS using the following commands: REMOVE DATA <yourvarname> BEFORE <MMMYY> e.g. REMOVE data sales BEFORE feb00 You can also delete measure values for certain dimension values e.g. SELECT CHANNEL c2 SELECT VARIABLE sales REMOVE SELECTED sales BEFORE feb00 And you can also use the keyword AFTER (a certain date) when you REMOVE DATA 19. The Actual, Target and Trend chart on the KPI Detail screen will show all measure data from the start date of the time series up to the "As of..." date set on the Scorecard. You could limit the start period that is used by issuing a SET EARLIEST command in PAS and by making a small addition to the PAS procedure that is used to generate the report used for the chart. 1. Set Earliest in your PAS model by issuing the command (e.g.) set earliest jan 2007 2. Then add the line shown in bold below to the scorecard_trend.pro file in the ...\SSM\InternetPub\procs directory and it will limit the data shown in the Trend chart. The new start date will be based on the EARLIEST setting in the PAS model. Note that the "&Period1" line in this procedure is what sets the LATEST date based on the Scorecard setting. SET REAS OFF

- 27 -

&Period1 Set &Period Sel &SelMeasure SET PERIOD EARLIEST - LATEST Across Time Down Var COPY REPORT 'scorecard_trend.rep';ext REP;&WORKDATABASE OVER RESOLVE COMPILE REPORT REP;&WORKDATABASE DISP REP;&WORKDATABASE WIDTH 32000 LENGTH 99999 20. There are three approaches to setting and evaluating time in PAS: 1. SET PER DEF (PAS selects the union of all available time spans for all measures in the model) 2. SET PER 2008 (PAS selects 2008 data regardless of what time spans are available in the measures) 3. SET LATEST (PAS selects MTD and YTD values based on this fixed date regardless of what time spans are available in the measures) - information in PAS Document Sets (like Doc LASTDATE) are irrelevant to PAS and are used only by calling applications such as SSM/PIP. - SSM/PIP checks PAS for SET LATEST date at the start of a new session (and only at the start of a new session) - If you update the PAS model through BICA then the LASTDATE document set will be updated at the same time as SET LATEST command is done but, DOC LASTDATE is not updated if the change in the date range is something that PAS is picking up automatically. This is not a problem in the SSM application because SSM is relying on the LATEST setting. The DOC LASTDATE still needs to be there because some older parts of the application code check to make sure it exists and, ideally, it should have the same setting as the SET LATEST. - SET LATEST sets the date to the last date of the period (e.g. last date of the month). This change is in 75. It has not been merged into any 70SPx 21. In SSM/PAS, do we ever have the option of displaying/not displaying nulls? For example, what if you would like to be able to show all nodes of a Dimension Hierarchy in SSM KPI DRILL screen - whether or not data exists for every node. Directly in PAS, you always have the option of displaying just the data that exists or all data points whether they contain data or not. At the Pas command line a plain LIST will only show data that exists but a LIST FULL will show all the data whether it exists or not. In SSM KPI Detail DRILL screen the view for this screen comes from a report set called scorecard_deviation.rep. If you take off the ",MISSING" in the "SUPPRESS" row, line shown below in bold, you should see all the dimension detail. This report is located in the ...Program Files\SAP\SSM\InternetPub\procs directory. SET

- 28 -

TABS SUPPRESS HEADING,PARHEADING,COLHEADING,MISSING AFTER OFF TABS WIDTH 25 ENDSET ColHeading Text "<COLHEADING LINK=NO>" Text over <heading 1> Text over <heading 2> Text over <heading 3> Text over <heading 4> Text "</COLHEADING>" EndColHeading ROW ALL Caution: Any customizations to this file would be over-written by a new install of PIP/PAS but it's a simple enough change to remake.

- 29 -

3 Appendix
3.1 SSM and PAS Maximums (Please check the latest release config guide for any updates to the below numbers)

Administrator Maximums
# Contexts 500 # Application Groups 100 # Perspectives Standard=20 # Objectives Standard=100. Custom=50 more. Total of up to 150. # Users per model connection 500 # Themes or Pathways Up to 12 themes. Minimum of three pathways. Maximum of six pathways. # Standard KPIs per context. Standard=100. Custom=100 more. Total of up to 200. # Index KPIs per context Unlimited # Users in one application group 1,000 # Model connections 500 # Contexts 500 # Application Groups 100 # Perspectives per context 20 # Objectives per context. Standard=100. Custom=50 more. Total of up to 150. # Users per model connection 500 # Total users 10,000

Strategy Management Application Maximums


# Initiatives per context 1,000 # Comments per context 10,000 # Milestones per initiative 50 # Submilestones per milestone 50 # User-Defined Hierarchies per dimension 100 # Members in a User-Defined Hierarchy. (The limit varies based on the length of the short names of the members selected. The limit of any one User-Defined Hierarchy may be between 40 and 150.) # Folders in which to save reports 100 # Public reports 1,000 # Group reports 1,000 # Private reports for one user 1,000 # Public dashboards 1,000 # Group dashboards 1,000 # Private dashboards for one user 1,000 # Characters in a row in a Navigator report 32,000 # Rows in a Navigator report 64,000 # Columns in a Navigator report 255 # Characters that can appear in the Report on drop-down list when adding a Rank Top 10 Dashboard 34-36

- 30 -

Dimensional Model Maximums


# Dimensions that measures are dimensioned by in a view. You cannot have more than 22 unique dimensions that the measures in the view are dimensioned by. # Dimensions per model 32 # Dimension members per dimension 500,000 # Levels per dimension 256 # Hierarchies per dimension 256 # User-Defined Hierarchies per dimension 100 # Dimension members in a User-Defined Hierarchy 10,000 # Attributes/dimensions in dimensional model 50 # Attribute dimension members 100,000 # Bytes in a dimension member label 128 # Bytes in a measure label 128 # Cases in a security procedure 100 # Characters in a text variable cell 50 (Navigator) 20 (Excel Add-In) # Measures in a dimensional model 10,000 # KPIs per dimensional model 400 standard and index KPIs combined Report width 255 columns and up to 32,000 bytes per row Report length 64,000 rows in conjunction with 100 columns # dimensions per measure 12, plus Time

- 31 -

www.sdn.sap.com/irj/sdn/bpx-epm