Tuesday, November 22, 2011

BPC 10 for NetWeaver Authentication Scenarios

Overview

One of the major differences in BPC 10 for NetWeaver from previous releases is that all client to server traffic from the EPM Add-In (Office client) and Web client go through NetWeavers WAS (Web Application Server) as opposed to the .NET server.  Since the web server performs authentication services, this change brings new options and security considerations to the table.

Client Communication Overview

As I alluded to earlier, there are two primary ways users access BPC 10:

  1. The EPM Add-In which is the new office client.
  2. The BPC Web client which has been totally redesigned in this release.

Both clients access content in BPC by querying RESTFUL web services, which is similar to previous versions – just a different format.  Why am I going over all this?  The different clients each support different authentication mechanisms, in addition to the web services themselves.  The chart below provides an overview of what is supported where.  We will cover each scenario in more detail later on.

image

Basic Authentication

Basic authentication is used in the EPM Add-In by default and results in a prompt for your username and password during each login.

This authentication type is not secure unless using SSL as usernames and passwords are only Base64 encoded.  Due to this, SSL should always be used when using basic authentication.

HTML Form based Authentication

HTML form based authentication is used by default by the BPC web client and results in an HTML form that prompts you for your username and password.

Like basic authentication, form based authentication requires SSL (HTTPS) to be secure “across the wire”.   Due to this, SSL should always be used when using form based authentication.

Client Certificate

Client certificates are supported by both the EPM Add-In (for BPC 10 NetWeaver connections) and the BPC web client.  Users are not prompted for credentials when using client certificates, and as such it provides Single Sign On capabilities.  The configuration of client certificates is beyond the scope of this blog; however they basically work like this:

  1. The BASIS team installs an SSL certificate on the BW instances and enables the HTTPS protocol.
  2. The BASIS team then maps X.509 certificates to BW users (using STRUST, etc).
  3. The security or networking teams deploy user specific X.509 certificates to end users’ desktops.
  4. When a user executes a request, the client (either the EPM Add-In or web browser) verifies that it trusts the server certificate, and the server verifies that it trusts the client certificate allowing each side to validate each other’s identity before carrying out the request.

Client certificates must be installed in the end users’ desktop certificate store to be used with the BPC web client or EPM Add-In.  Additionally, you must enable client certificates for the EPM Add-In connection by checking the Client Certificate checkbox and selecting the appropriate certificate in the connection manager.

This authentication mechanism is convenient since it delivers SSO but comes along with more overhead then the other scenarios, since the X.509 certificates have to be maintained and deployed to end users systems.

SAP Logon Ticket

SAP Logon ticket’s allow users to obtain a ticket (which is stored in the form of a MYSAPSSO2 cookie) from one system and use it to authenticate to other trusted SAP systems.  SAP Logon tickets can also be used to generate reentrance tickets, which can be used by applications other than browsers (like the EPM Add-In) for authentication purposes without prompting users for credentials.

This makes a number of single sign on scenarios possible.  For example:

  1. A user can login to the EPM Add-In from the BPC web client without being prompted for credentials using a reentrance ticket.
  2. A user can logon to an SAP Portal instance, connect to the BPC web client (as a new page in Portal Content) and launch the EPM Add-In while only having to log in once – at the Portal.
  3. A user can logon to an SAP Portal instance and launch the EPM Add-In directly while only having to login to the portal.
    • Note – This doesn’t work out of the box, but I was able to create a relatively simple web application that can be deployed in an AS JAVA portal that enables this behavior.  It will be posted to SDN as an HTG soon.

Like the basic and html form authentication models, it is crucial that all communication occurs over HTTPS to ensure that the MYSAPSSO2 cookie is not compromised.  This scenario also requires that the BASIS team configure the required SAP systems to “trust” each other.

SAML 2.0

SAML 2.0 authentication is not used directly by any of the BPC clients at this time, but is supported by the BPC Web Services.  SAML 2.0 may be valuable for integration and custom development scenarios.

Suggestions…

I have but one suggestion and if you’ve made it this far, you probably already know what it is.  Whatever authentication mechanism(s) you chose to deploy, ensure you enable and use SSL / HTTPS.  Your network security auditors will thank you.

Ownership Manager System Generated Proposals from SAP Business Objects Planning and Consolidation 10.0, version for Netweaver

Similar in function to the Dynamic Hierarchy Editor available in BPC 7.x versions, the SAP Business Objects Planning and Consolidation 10.0, version for Netweaver (BPC10NW), Ownership Manager allows the definition of complex holding/subsidiary relationships that can be time, category, and scope specific.  The organizational structures defined by Ownership Manager are also used by the Consolidation Monitor and the Controls Monitor to display and status the defined organizational levels.

New to the Ownership Manager functionality is the ability for the BPC system to propose key consolidation parameters. 

There are three main prerequisites for activating system calculations for ownership manager:

1. Model and Master Data requirements

Ownership manager functionality requires a configured ownership manager model as defined by : 

Ownership-based Hierarchy Requirements

Summary requirements:

Required member ids in the O_ACCOUNT (ownership model account) dimension:

METHOD

METHOD_SYS is populated by the system to store the generated proposal for the consolidation method

PCON

PCON_SYS is populated by the system to store the generated proposal for the consolidation rate

POWN

POWN is also known as the ultimate percent ownership of an entity by the holding company. It is the calculated share percentage based upon a specified calculation method (Direct Share or Group Share).  For the Direct Share calculation, the percent ownership is assumed to be 100% of the subsidiary ownership.  For Group Share calculations, the percent ownership is the product between the various subsidiaries percentages. 

Example:

Holding Company (H1) owns 70% of subsidiary (S1) and S1 owns 50% of subsidiary S2.

Using the Direct Share method, the ultimate percent ownership of S2 is 50%.

Using the Group Share method, the ultimate percent ownership of S2 is 35% (=70%x50%).

directly or indirectly

PCTRL

PCTRL identifies the ultimate percent of control for each entity in a model. 

Member ids used internally during Ownership Manager Calculations

METHOD_SYS

METHOD_SYS is populated by the system to store the generated proposal for the consolidation method

PCON_SYS

PCON_SYS is populated by the system to store the generated proposal for the consolidation rate

POWN_SYS

POWN_SYS is populated by the system to store the generated proposal for the financial interest rate, or percent shares owned. Shares Owned contains the number of shares and voting shares that an entity owns of another entity.

PCTRL_SYS

PCTRL_SYS is populated by the system to store the generated proposal for the percent of subsidiary control

Required O_ACCOUNT Dimension Properties

The IS_INPUT property for the O_ACCOUNT dimension identifies the dimension members which can be displayed in the Ownership Manager hierarchy display.

2. A Defined Method Business Rule:

OWNERSHIP_BLOG_100

The Method Business Rule table supports the Ownership Manager calculations by identifying a relationship between a range of shares allowing a system derived consolidation method (METHOD) as well as a proposed Financial Interest Rate (PCON):

  • indentifying source accounts
  • Indentifying target accounts
  • Indentifying source flows
  • Indentifying target flows

Note the unique syntax for identifying the share ranges. 

0.20<,<=0.49 is interpreted by the system as a range definition:  “any value greater than 20%, through any value less than or equal to 49%”.

0.50<,<=1.00 is interpreted by the system as a range definition:  “any value greater than 50%, through any value less than or equal to 100%”.

3. Implementing a Cross Ownership Matrix

Automatic ownership calculations require additional information to allow the ultimate ownership share ownership values.  An input schedule providing details on Percent Control and Percent Ownership data must be provided by entity and intercompany partner.  Data is saved to the OWNERSHIP model.

In the following example:

- Germany controls 80% of a UK subsidiary, and the UK subsidiary controls 60% of a French subsidiary

- Germany owns a 70% share of a UK subsidiary, and the UK subsidiary owns a 50% share of a French subsidiary

OWNERSHIP_BLOG_200

Note: Share and control data must be entered without any scope (group) specification (i.e.: S_NONE). 

Once all prerequisites have been completed, the user can request system generated ownership manager calculation through the CALCULATE option available in the edit mode of the ownership definition:

OWNERSHIP_BLOG_300

User can select the accounting principle for calculating the ultimate ownership and control (Direct or Group share methods).

Checkbox options allow the user to update the “Current” sub column values for Method, Percent Consolidation, and calculated ownership percentages.

A graphical illustration of the data flow between the three prerequisites:

OWNERSHIP_BLOG_400

SAP Change and Transport System for SAP Business Planning and Consolidation, version for Microsoft platform

The requirement to integrate into a change control infrastructure refers to the set of concepts, procedures and tools involved in managing information related to the software or application lifecycle, i.e. application lifecycle management (ALM) from initial installation and deployment to end of maintenance and replacement.

SAP Business Objects Business Planning and Consolidation, version for Microsoft platform (BPC MS), now supports the SAP Enhanced Change and Transport System (CTS+) to implement and operate proper change control procedures. BPC MS software objects, which had been changed and modified in a development system, can now be efficiently and effectively transported into pre-production and production systems. This facilitates the application’s compliance with IT management standards and practices, i.e. that software changes are quality assured before applied to any productive system. The assumption behind being that development activities are performed in development systems (DEV), changed or modified software objects are consolidated in consolidation systems (QAS), and after quality assurance, these changes and modifications are applied in productive systems (PRD).

BPC MS supports the controlled transport of the following object types:

Transportable objects of BPC MS

Table 1: Transportable Objects of BPC MS

SAP Change and Transport System (CTS) together with SAP Change Request Management (ChaRM) and SAP Change Diagnostics as part of SAP Solution Manager Diagnostics (SMD) provide the infrastructure and the tools to implement and support the processes and tasks of Software Change Management and Change Control. CTS organizes transport requests and transports objects between systems of a system landscape, i.e. a transport landscape. Enhanced CTS or CTS+ is an add-on to CTS which enables the transport of non-ABAP objects across CTS+ enabled systems. Another component of CTS, the Transport Management System (TMS), manages the distribution of transportable objects within the transport landscape and triggers their import/deployment into the target systems.

BPC MS 7.5 (as of SP06) and 10.0 (as of SP01) are CTS+ enabled, i.e. make use of CTS to achieve the following goals:

  • Transport changes and modifications through multi-tier product system landscape

  • Avoid multiple changes and modifications in different dependent repositories

  • Enforce similarity or equality of all systems in the product system landscape

  • Record and control changes and modifications

In essence, the purpose of transporting content with CTS is to ensure that two or more BPC MS systems maintain the same content - by transporting it from one system to another in a controlled way.

Example of a BPC MS transport route in a Transport Management System

Figure 1: Example of a BPC MS Transport Route in a Transport Management System

BPC MS provides a user interface to easily work with Change and Transport System. The integration is part of the BPC MS Administration Client. The well-known BPC Action Pane offers the action “Transport Content with CTS” (or Ctrl + F8). The following screenshots are taken from a BPC MS 10.0 system.

BPC MS Action Pane in the Context of Environment Tasks including Task Transport Content with CTS

Figure 2: BPC MS Action Pane in the Context of Environment Tasks including Task Transport Content with CTS

In sub-screen “Transport Content with CTS”, the transport object selection as well as transport request review is executed.

BPC MS Environment Task of Selecting Changed Objects for Transport/Export

Figure 3: BPC MS Environment Task of Selecting Changed Objects for Transport/Export

For a detailed description of requirements and prerequisites, setup and configuration steps, as well as application and usage of CTS for BPC MS please refer to SAP Note 1582525 and SAP SDN article Using SAP Change and Transport Management for SAP Business Objects Planning and Consolidation. The functionality will be briefly introduced in SAP TechEd 2011 session ALM 219

Demystifying Financial Consolidation Part I

In this blog series, we will be covering concepts related to financial statements consolidation. As the topic is bit complex for people from non-finance background, I will start from the basics covering each and every term, what it means, and relevant context and so on. In this series I won’t be covering how these things are implemented in BOFC or BPC but the functional knowledge required to implement it.

Before moving on to this topic we need to understand why we are required to consolidate financial statements.

We observe lot of merger/acquisitions happening around us every day, recently we have seen Google acquiring Motorola mobility for $ 12.5 Billion, Microsoft acquiring Skype for $ 8.5 Billion and the list is endless.

These acquisitions were friendly acquisitions, means the management of Target Company wanted to sell the company to the acquirer, whereas in a hostile takeover Target Company management does not want to sell the company to the acquirer.

Hostile takeover are portrayed in negative shade, than friendly acquisitions but both create and destroy value to the shareholders in long term depending on the post acquisition scenarios/synergy and on lot of other factors.

Management of Target Company takes lot of steps to prevent acquisition in hostile takeover. If the company is owned more than 51 percent by one individual or group of people then hostile takeover can’t happen. Even if the acquirer company acquires 49 percent stake in the company it won’t be able to govern it or control it as rest of the 51 percent stake is with other party. We can take the case of Wipro, in it approx. 70 percent equity stake of the company is owned by Azim Premji and members of his family, therefore acquirer can’t acquire more than 30 percent in Wipro so hostile takeover can’t happen.

Hostile takeover happens when the management of the target is not willing to sell the company, or if there is difference in the valuation of Target Company between target & Acquirer Company and lastly sometimes because of vested interests of management in the company.

To prevent hostile takeover, the management of Target Company can takes lot of steps:

Poison Pill: In it, the management of target company gives right to the existing shareholders to get more shares of the company at price far below than fair value. Current shareholders will get this option only when other company acquirers a certain percentage stake in the company. This way target company increases the cost of acquisition for the acquirer company and is beneficial for the shareholders. These again can be divided further, but we won’t be going deep in it. In 2004, News Corporation used this method to ward off acquisition from US cable group Liberty Media. It allowed its shareholders to increase stakes in the company at half the price if some acquirer buys more than 15 percent of the company i.e. company offered to its existing shareholders to buy new shares at half the price.

White Knight: Management of the target company which is currently looked for hostile takeover looks for some other company whom they can sell their company at friendlier terms. Sometimes, management of the target company puts his own interest first, as in a hostile takeover most of the management is removed while in friendly acquisition it depends on the negotiation and sometimes current management is allowed to continue. Around three months back Teva acquired Cephalon by outbidding hostile acquirer Valeant. Teva offered 12 % percent premium to Valeant’s offer.

Staggered Board of Directors: Instead of electing all the directors every year, in staggered boards only a fraction of the members of board of directors are selected every year. In this case, even though the acquirer company acquires majority stake in the target company, it takes 1-2 year to get actual representation in Board of members depending on the fraction of the members of boards of directors selected every year.

Selling the crown jewels: management of the target company sells vital assets to make the target less attractive

Greenmail or greenmailing is the practice of purchasing enough shares in a firm to threaten a takeover and thereby forcing the target firm to buy those shares back at a premium in order to suspend the takeover.

There are lots of other tactics to discourage acquisitions by Target Company in case of hostile takeover; we can’t cover all of them in detail. These tactics are normally used in combinations instead of only one technique. We have seen normally staggered board of directors being applied along with Poison pill provisions.

From the view point of Acquirer, it looks at the earning potential of the company, if it makes economic sense for it to acquire target company (Financial Analysis & Modeling), if it is in line with its strategic vision, if it will be able to realize synergy between both the companies, if it will be able to gain tax benefits out of it and so on.

Whenever one company acquires another company, we need to write it in our books of accounts the money we paid to acquire the company, the assets we acquired and the liabilities we inherited. There are various methods of consolidating financial statements depending on the equity one holds in the target company. The basic rule is if acquirer holds between 0-20 percent, the stake will be valued at fair value, in case of 20-50 percent stake we opt for equity method and in case of 50-100 percent stake we go for acquisition method (purchase method in IFRS3 2004).

According to new IFRS guidelines, if the company owns more than 50 percent stake in the target company it will be called as subsidiary and if the percentage stake lies in between 20 to 50 i.e. significant influencer it will be an associate. These guidelines also covers lot of scenarios like if the acquirer company owns more than 50 percent stake in the company but is not able to govern the company because of some reasons than we can opt for equity method and vice-versa i.e. if the acquirer owns between 20-50 percent but it is able to govern the policies of the target company then it can opt for purchase method.

In the next blog, we will look at the various terms used in consolidating financial statements, their utility and how they are calculated like fair value, goodwill, ownership, control etc. Once we are clear with the basics, we will further look in detail acquisition method (purchase method), equity method and proportional method of consolidating financial statements

Prior to 2001, we used to have one more method of consolidating financial statements i.e. pooling method, but the same was discontinued by regulatory bodies. We will also cover some of the differences between both the methods (Purchase and Pooling), though it is not required to understand it but knowing it will help us to appreciate the purchase method.

Making The Case for Investing in Financial Excellence

One of the fun aspects of working closely with a wide range of retailers is the friendly competition and passionate sharing of ideas that highly competitive retailers show when they have the chance for dialog. It's always fun to listen to companies like Under Armour and New Balance as they highlight their differences but then also dive deep into what they can learn from each other's internal processes.

This week 30 current and potential customers from 16 companies met at SAP's Newtown Square campus to share best practices in driving Financial Excellence using SAP's Business Planning and Consolidation solution. The highly focused two day event gave a sharp and vivid snapshot of how some of retail's most innovative companies are using BPC to transform the role that their finance functions play.

Financial Excellence for Retailers

Making the case for excellence is always a challenge for any supporting function in a retailer. Executive leadership and key stakeholders rightly focus transformation close to the customer, where the connection between investment and increased sales or increased GMROI is clearly visible. What this week's discussion showed though is that flexible tools like BPC can drive real transformation in finance and enable finance functions to provide much stronger value to the business.

Here are a few examples of how customers are using BPC to dramatically improve their own processes, better inform the business and deliver tangible results:

  • New Balance reduced their monthly financial close from several weeks to just a couple of days
  • Given that more than 40% of a typical retailer's SKUs are unprofitable based on Net Margin Return on Investment level - merchants need to see this data and use it to transform their assortments
  • Even with a complex landscape of legacy systems, Charming Shoppes is able to deliver full store P&Ls to each of its 6,900+ stores to empower store management
  • No business can grow 300% without changing the way it plans - in the middle of the Nook's unexpectedly dramatic growth, BarnesAndNoble.com was able to deploy BPC in just seven weeks so that it now has the ability to plan and adapt successfully for its new world
  • By assessing total cost of risk at store level, Family Dollar is able to drive highly effective loss prevention
  • Under Armour is now able to complete a bottom-up budgeting cycle in just two weeks instead of 8 weeks
  • Leading multi-banner retailers using shared service organizations for key back office functions can provide the business with clear visibility on shared service usage and costs to enable them to control their shared service costs

Flexible and Intuitive Tools Deliver Ongoing Transformation

In addition to the significant value customers have been able to deliver, one of my other key takeaways from the event was that the BPC tools are so flexible and intuitive (thanks partly to the familiarity of Excel) that both finance and business users are constantly pushing to use them more widely and expand their use within the company.

Successful and flexible Enterprise Performance Management empowers executives, finance, IT and the business to focus on what they do best.

  • Executives get rapid and actionable insight that they can use to drive strong performance.
  • Finance has robust tools that allow their operational processes to be streamlined and enables them to invest in developing new insight, improving the strategic dialog with the business and driving incremental performance.
  • The business no longer has to wait for IT or finance to let them access new data or detail and can get the answers they need when they need them.
  • And IT... gets to put a solution in place and see the business vigorously engage and want to expand it to new areas, contribute to its administration and own the data in a way that can take years to achieve with other solutions.

it's very much to the credit of SAP's partners who focus on implementing Enterprise Performance Management and BPC that so many customers at the event were able to enthusiastically share evidence of how their organizations continue to extend using the strong foundation their implementation partner had put in place. Throughout the two days, customers mentioned that the expertise they had relied on from Aster Group, Column5, The Glenture Group, Sandpoint Consulting and SAP Consulting had been one of the most crucial success factors in their successful transformations.

Now Make It Real Time

Looking into the very near future, Steve Townsend of SAP gave a vivid outline of how SAP HANA will enable customers to take the scattered legacy of data sources that they have to aggregate, transfer and consolidate today and provide amazing fast access to real-time data with no aggregation. Combining this power with tools like Sales Analysis for Retail, a great foundation of retail intelligence available today using POS data feeds, will transform the speed at which customers can respond to the dynamic retail environment of rapidly changing consumer preferences, highly volatile demand, and long, risky supply chains.

What if every financial report and dashboard in your company was in real time? Replay your last major holiday event or promotion - if the lessons learned in preparing for and executive the event could have been identified and responded to in real time, think how the results could have been significantly improved.

Find Out More

More details on SAP BPC can be found here and any of us on SAP's Value Engineering team would be keen to work with you and your customers on developing the case for implementing or extending your use of SAP BPC.

How to manage scope changes with SAP BusinessObjects Planning and Consolidation 10.0, Version for SAP Netweaver Starter Kit for IFRS? Part 1

This first series of seven blogs is dedicated to handling scope changes using “SAP® BusinessObjectsTM Planning and Consolidation 10.0, Version for SAP Netweaver Starter Kit for IFRS". The objective is to illustrate in the BPC Starter kit for IFRS some of the most frequent scope changes.

Blog #1: Acquisition of a subsidiary (full goodwill method) - this blog

Blog #2: Loss of control without any retained interest

Blog #3: Acquisition of further equity interests from NCI

Blog #4: Partial disposal of an investment in a subsidiary while control is retained

Blog #5: Step acquisition

Blog #6: Loss of control while retaining an interest

Blog #7: Internal merger between two subsidiaries

Each blog introduces a practical guide that deals with the following questions:

-          What are the regulation requirements that applies to the business case

-          How to handle the business case in the starter kit for IFRS

-          What are the impacts on the financial statements

The business cases presented in these blogs are included in the set of data provided with BPC NW 10.0 Starter kit for IFRS. You can consult them in the database. Please, refer to the operating guide delivered along with the starter kit for further detail on the consolidation process.

These blogs have been written by members of the SAP EPM (Enterprise Performance Management) Starter Kits & Innovations team that develops starter kits on top of SAP financial consolidation products, Financial Consolidation (FC) and Business Planning and Consolidation (BPC). The starter kits are preconfigured contents created to deliver business logic, to speed-up the application deployment and to provide guidance to help maximize advantages of the product. The contents provided in the starter kits consist of reports, controls and rules for performing, validating and publishing a legal consolidation in accordance with IFRS. SAP starter kits for IFRS are provided to BPC/FC customers at no additional charge; they can be downloaded from SAP service market place at http://help.sap.com/.

Now to the first blog!

Presentation of the business case

Practical guide

Please click here to access the practical guide

The Next Blog

In the next blog of this series, we will look at the loss of control without retaining an interest in a foreign subsidiary

Acknowledgements to Laetitia Lamoureux, Caroline Verrier and Jean-François Bouillon from the EPM SK&I team for their high contribution to the "Consolidation Practical guide".

Your comments about the contents are very welcome. Let us know what you wish to write about.
http://forums.sdn.sap.com/forum.jspa?forumID=400

Facebook http://www.facebook.com/sapifrs

Twitter http://twitter.com/SAP_IFRS_XBRL

SAP BusinessObjects Operational Performance Management Elite Enablement - Spend 3.0, Supply Chain 2.0, Data Enrichment 1.0 - Sep 26-30, 2011, Palo Alto

BE THE FIRST TO HAVE LIVE SPEND 3.0, SCPM 2.0 and DEC 1.0 EXPERIENCE at the SAP BusinessObjects Operational Performance Management Elite Enablement.

After successful Elite enablement sessions for BPC in US, Shanghai and (soon to come) in EMEA and a great PCM 10.0 Elite enablement session in Palo Alto, we felt that is was time to extend the offering to the Operational Performance Management (OPM) suite that is part of EPM 10.0:

  • SAP BusinessObjects Spend Performance Management / Spend Analytics 3.0 (SPM)
  • SAP BusinessObjects Data Enrichment and Classification 1.0 OnDemand (DEC)
  • SAP BusinessObjects Supply Chain Performance Management 2.0 (SCPM)

This action-packed week conducted by OPM product and solution management and Customer Solution Adoption (CSA – former RIG), will provide customers and partners invaluable "hands-on" exercises and information to ensure you hit the ground running with the latest OPM suite. In addition to mingling with the solution experts you will also have the opportunity to meet our OPM executive leadership team.

This Elite enablement workshop will cover a large variety of topics including:

  • Day 1 – Hands-on walk thru of new features in SAP BusinessObjects Spend Performance Management 3.0 (SPM), SAP BusinessObjects Supply Chain Performance Management 2.0 (SCPM) & SAP BusinessObjects Data Enrichment and Classification OnDemand (DEC) including What-If-Analysis, Advanced Analytics and Risk Management Integration
  • Day 2 – Product deep dives covering User Interface configuration, data sourcing and integration from SAP ERP, integrating Spend and Data Enrichment & Classification
  • Day 3 – Product deep dives (continued): Extensibility of SPM data model, integration of External Factors, Risk management integration and related applications configuration, Integration of SPM & BPC
  • Day 4 – performance tuning SAP NetWeaver BW 7.3, SCPM, SPM, DEC, Backend Modification to extend out-of-the-box functionalities (JAVA and ABAP Extensions), standard transports, install, security
  • Day 5 – SAP In-Memory (HANA), best practices project setup, documentation, issue handling, project scoping

Also hear from the experts on the roadmap and future of OPM and OPM with HANA – SAP's in-memory technology.

We will distribute iPads to the participants to support the exercises.

Space is limited so register today! We will be limiting space per company in order to ensure we can meet the demand from all partner companies, so we encourage you to respond quickly to ensure your registration.

What other Elite enablement is coming up?

A BPC 10.0 MEGA Elite training completely on BPC 10.0 NW is planned for Nov 14-18, 2011 in Philadelphia. For the first time this will be open for over 100 customers and partners to go hands-on and dive deep into BPC 10.0 NW. Register here. Contact liz.fitzgibbons@sap.com for details and follow us on Twitter at #BPCElite or directly @SAPEPMRIG and @jenskoerner

Also SAPinsider is hosting a 3 day BPC bootcamp seminar in Chicago, Orlando, Amsterdam, Las Vegas and Philadelphia for customers and partners. For details check out www.bpcbootcamp.com and http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/24378

Debugging BPC 10 for NetWeaver

Debugging in BPC 10

In my opinion the ability to debug is one of the biggest advantages in the BPC for NetWeaver platform.  It has proven to be a huge asset when writing custom logic (BAdi’s and custom integration scenarios) in addition to general troubleshooting tasks.

The good news is that the latest release of BPC for NetWeaver (BPC 10) also allows you to debug the BW tier but there have been a couple of changes that you need to be aware of:

  1. The .NET tier has been removed from the 10.0 release of BPC for NetWeaver.  This means you don’t have to map accounts on the .NET tier to enable debugging anymore.
  2. The entry point for debugging has changed

After reading this (short) blog you will be prepared to debug BPC 10 for NetWeaver to your heart’s content.

Let’s get started…

Setting up your debug user

The only thing you need to start debugging BPC 10 is a valid BW user account with the same access as the BPC BW System Account.  You can find the required roles in section 4.1 of the Installation guide.

Once that is complete, grant the user the appropriate rights to the environment / model (application set / application) and set your breakpoints.

Where do I set my breakpoints?

There has been a pretty good amount of rework in the UJ package for BPC 10 and this has also impacted where you need to set your breakpoints.  I’ll cover two different scenarios below, debugging EPM Add-In and Administration functions and debugging data manager packages.

Debugging EPM Add-In and Administration functions

  1. Log into the BPC client you want to debug (EPM Add-In or Web Administration console) with your BW debug user account.
  2. Go to the portion of the use case you want to debug, but don’t execute the action yet.
  3. Log into SAPGUI with your BW debug user.image
  4. Go to transaction SE80
  5. Navigate to the class CL_BPC_REST_RES (under package UJX, embedded package UJX0).
  6. Go to line 56 of the HANDLE_REQUEST method and set an external breakpoint.
    • Note – If you know the specific location you want to debug you can set the external breakpoint there and skip the breakpoint mentioned above.
  7. Switch to the BPC client and execute the action you want to debug.
  8. This will launch a SAPGUI debugging session
  9. The case statement on line 60 will get you to the code you need to evaluate.

image

Debugging Data Manager Packages

image

  1. Log into SAPGUI with your BW debug user.
  2. Go to transaction SE80
  3. Navigate to the class CL_UJXD_PACKAGES_RES (under package UJX, embedded package UJXD).
  4. Go to line 179 of the DO_POST method and set an external breakpoint.
  5. Switch to the BPC client and execute the data manager package you want to debug.
  6. This will launch a SAPGUI debugger
  7. Double click on the ‘ls_package_run-if_debug’ exporting parameter and set its value to true (represented by the character X).
  8. You can then continue to any downstream external breakpoints you already set (for instance, in your BAdi) or can step through the code line by line.

image

How to manage scope changes with SAP BusinessObjects Planning and Consolidation 10.0, Version for SAP Netweaver Starter Kit for IFRS? Part 2

his series of seven blogs is dedicated to handling scope changes using “SAP® BusinessObjectsTM Planning and Consolidation 10.0, Version for SAP Netweaver Starter Kit for IFRS". The objective is to illustrate in the BPC Starter kit for IFRS some of the most frequent scope changes.

Blog #1: Acquisition of a subsidiary (full goodwill method)

Blog #2: Loss of control without any retained interest - this blog

Blog #3: Acquisition of further equity interests from Non Controlling Interests

Blog #4: Partial disposal of an investment in a subsidiary while control is retained

Blog #5: Step acquisition

Blog #6: Loss of control while retaining an interest

Blog #7: Internal merger between two subsidiaries

Each blog introduces a practical guide that deals with the following questions:

-          What are the regulation requirements that applies to the business case

-          How to handle the business case in the starter kit for IFRS

-          What are the impacts on the financial statements

The business cases presented in these blogs are included in the set of data provided with BPC NW 10.0 Starter kit for IFRS. You can consult them in the database. Please, refer to the operating guide delivered along with the starter kit for further detail on the consolidation process.

These blogs have been written by members of the SAP EPM (Enterprise Performance Management) Starter Kits & Innovations team that develops starter kits on top of SAP financial consolidation products, Financial Consolidation (FC) and Business Planning and Consolidation (BPC). The starter kits are preconfigured contents created to deliver business logic, to speed-up the application deployment and to provide guidance to help maximize advantages of the product. The contents provided in the starter kits consist of reports, controls and rules for performing, validating and publishing a legal consolidation in accordance with IFRS. SAP starter kits for IFRS are provided to BPC/FC customers at no additional charge; they can be downloaded from SAP service market place at http://help.sap.com/.

Now to the second blog!

Presentation of the business case

Year 2013

The 1st of January, parent company P2 (USD) acquires 100% interest of subsidiary PS2 (EUR) for USD 95 000 in cash. PS2 net value of the identifiable assets and liabilities is EUR 87 500

Goodwill calculation = EUR 7 500 (x rate: 1 USD = 1 EUR)

PS2 profit for the year = EUR 10 000 (average rate for 2013: 1 USD =0,80 EUR)

On December 31st, the exchange rate is 1 USD =0,85 EUR

Year 2014

PS2 goodwill impairment = EUR 4 000

PS2 profit for the year = EUR 15 000

The 1st of December P2 sells its 100% controlling interests in PS2 for

USD 100 000. The average rate from January 1st to December 1st is

1 USD = 0,75 EUR. The spot rate on December 1st is 1 USD = 0,80 EUR

Note: For a matter of simplification, the case study is displayed on two years even if it is not fully relevant from an IFRS perspective (e.g. IFRS5)

PS2 net assets at the disposal date is EUR 112 500 (87 500 + 10 000 + 15 000).

PS2 individual accounts converted in USD and including goodwill are as follows:

Calculation of net gain/loss on the disposal

Practical guide

Please click here to access the practical guide

The Next Blog

In the next blog of this series, we will look at the Acquisition of further equity interests from Non Controlling Interests (Equity transaction)

Acknowledgements to Laetitia Lamoureux, Caroline Verrier and Jean-François Bouillon from the EPM SK&I team for their high contribution to the "Consolidation Practical guide".

Your comments about the contents are very welcome. Let us know what you wish to write about.
http://forums.sdn.sap.com/forum.jspa?forumID=400

Facebook http://www.facebook.com/sapifrs

Twitter http://twitter.com/SAP_IFRS_XBRL

Impact of Maintaining Debug Users in BPC NW

BPC is a tool for planning and consolidation, which is available in two platforms one in Microsoft and other in Netweaver. All the objects created in BPC Netweaver platform are created as BI objects and saved in the backend BI system connected to it.

All the logics and functions defined in BPC NW frontend are developed using ABAP logics in the backend. Also we have option to write custom ABAP codes using standard BADI’s delivered with the tool for various business requirements. So for checking the malfunctioning of any function in BPC frontend we need to debug the corresponding ABAP logic of that function in backend. For which we need the option for debugging. The same is provided in the BPC NW system which has to be configured in the server end with the details for Domain User, BI user ID and its Password.

System Connection Issue:

The user details what we use in the front end to connect to the BPC system is domain/system specific, whereas different set of user details are used to connect to BI system in the back end. So when a domain specific user connects to the BPC system in front end, simultaneously a connection is established with the backend BI system.

To establish this connection with the backend BI system, it uses different BI user details depending on the debug user maintained in the server. Below flow chart clearly states the procedure for connection establishment between BPC and BI system.

So having said these one can connect to a BPC NW system only when,

  1. Domain User ID and Password are correct
  2. Backend BI user ID and Password are correct

The Domain user ID and Password are the one we would be providing from the front when connecting to the BPC system, but BI user ID and password are automatically taken by the system for establishing the connection with BI system. These values are taken either from the key user details or from debug user details depending on the user logging in and the debug user table.

Consider we have a domain user maintained with his corresponding BI user ID and password in the debug user screen of the server. When the user tries to connect to BPC, the BI credentials provided in the debug user screen of the server will be used for establishing connection with BI system. Having said this, if the details are not maintained correctly or the BI password is locked then the user will not be able to connect to the system.

Authorization Issue:

When we don’t have any debug user maintained in the system, we are connected using a Key BI user ID which will have all access to the system and so from the frontend we will not face any problem in performing any operations. But if a debug user is maintained for a domain user and if the BI user used has a limited access in the BI system we may have problems in performing certain tasks from BPC end.

Consider a domain user which is maintained in the debug user screen with BI user ID and password. The BI user provided in the debug user screen has access only to certain functions like create BI objects and to some other transactions used for programming but do not have access to the transactions to save files in the SAP system. When this particular domain user logins to the BPC system and tries creating any BPC object he will not have any problem, as he have access to create any object.

But when he tries to run some Data Manager Package for loading a master data from a flat file which is in the BI server, since the BI user provided in the debug user screen doesn’t have authorization to access the file the data manager will fail stating “No Authorization for Accessing the file” in the error log.

So when we maintain debug user screen in the server we need to make sure of the following,

  1. The BI credentials provided are correct
  2. The Password for BI user provided is not locked
  3. BI user provided for debug user has all access which will be required when working from the front end BPC system.

If we miss the first and second option, the user will not be allowed to login to the system. If we miss the third option, it is not sure that user can perform all the actions from BPC end.

To prevent all these problems it is better to make sure that the Debug user details are maintained as and when it is required for debugging and removed when we don’t have the work with debugging.

BPC Script logic for Dummies? (Part 2)

I explained basic 3 parts of script logic in the last post. It was Scoping, Calculation and writing.

We will find out more advanced features for scoping In this post.

1. Scope using member property

      We found how to use *XDIM_MEMBERSET last time.

      *XDIM_MEMBERSET is for scoping based on the member ID.
      What if user wants to scope members based on a specific property value?
      For example, a user wants to filter Account dimension members those are Asset.
      To achieve this, we need to use ACCTYPE property which has the type value of account.
      AST is the value for ASSET account. (Note: Value is based on the APSHELL of BPC.)
      The command is *XDIM_FILTER.
      The usage is

*XDIM_FILTER <DIMENSIONNAME> = [DIMENSIONName].Properties("Property name") = "Property value"

      So above example can be written as below.
      *XDIM_FILTER ACCOUNT = [account].properties(“ACCTYPE”)=”AST”

      Let's say Account dimension has 3 members as below.

         ID           ACCTYPE
      Extsales          INC
      CASH              AST
      TAXES             EXP
      NETINCOME    INC

      Then about *XDIM_FILTER_ACCOUNT will select CASH member only.

      Let's assume If you already used multiple *XDIM_MEMBERSET command

      and below are selected data from the fact tables.

      *XDIM_MEMBERSET TIME = 2011.JAN
      *XDIM_MEMBERSET CATEGORY = BUDGET

     <Result>
     EXTSALES , 2011.JAN, BUDGET, 9000
     CASH     , 2011.JAN, BUDGET, 3000
     TAXES    , 2011.JAN, BUDGET,  800
     NETINCOME, 2011.JAN, BUDGET, 1500

     Now if you add *XDIM_FILTER against ACCOUNT dimension.

     *XDIM_MEMBERSET TIME = 2011.JAN
     *XDIM_MEMBERSET CATEGORY = BUDGET
     *XDIM_FILTER ACCOUNT = [account].properties(“ACCTYPE”)=”AST”

     Only one record will be selected from above result because CASH is

     the only account member that has 'AST' value of ACCTYPE property.

     <Result>
     CASH     , 2011.JAN, BUDGET, 3000

2. Scope using member value
      We just figured out how to scope the source data based on the property.
      Then someone might ask this question.
      "Can we scope based on the value?

      For example, can we select all data that an account value greater than 100?

      Of course, we can do it.
      The command is *XDIM_GETMEMBERSET. Unlike other command,

      it needs  *ENDXDIM command to specify data.

      Here is the grammar of XDIM_GETMEMBERSET and an example.

      *XDIM_GETMEMBERSET {dimension} [={member set}]
           [*APP={application}] //optional
           [*XDIM_MEMBERSET {dimension} [={member set}] //as many of these as needed
           [*QUERY_TYPE= 0 | 1 | 2] //optional
           *CRITERIA {expression} //required
      *ENDXDIM

      *XDIM_GETMEMBERSET P_CC=[P_CC].[H1].[AAPJ].CHILDREN
           *APP=PLANNING
           *XDIM_MEMBERSET P_DataSrc=INPUT
           *CRITERIA [P_ACCT].[H1].[CE0001000]>1000 
      *ENDXDIM  

      It will get the data and those are..

           a. Children member of AAPJ in the P_CC dimension.  AND
           b. from the PLANNING application  AND
           c. INPUT member of P_Datasrc dimension AND
           d. CE0001000 member's value of the P_ACCT dimension should be greater than 100000

      Let's Assume Fact table has below records.

      CE0001000, 2011.JAN, ACTUAL, INPUT, KOREA , 2500
      CE0002000, 2011.JAN, ACTUAL, INPUT, CHINA , 5000
      CE0001000, 2011.JAN, ACTUAL, ADJ  , CHINA , 3000
      CE0002000, 2011.JAN, ACTUAL, INPUT, JAPAN , 1999
      CE0003000, 2011.JAN, ACTUAL, INPUT, JAPAN , 2222
      CE0001000, 2011.FEB, BUDGET, ADJ  , KOREA ,  345
      CE0001000, 2011.FEB, BUDGET, INPUT, TURKEY, 1999
      CE0003000, 2011.JAN, ACTUAL, INPUT, TURKEY, 1100
      CE0001000, 2011.FEB, BUDGET, INPUT, CHINA , 1050
      CE0001000, 2011.FEB, BUDGET, INPUT, JAPAN ,  450

      Which records will be selected?

      The answer is         
      CE0001000, 2011.JAN, ACTUAL, INPUT, KOREA, 2500
      CE0001000, 2011.FEB, BUDGET, INPUT, CHINA, 1050

      Below records will not be selected even though P_ACCT is CE0001000
      because its value is less than 1000
      or Datasrc is not INPUT
      or it is not the child member of AAPJ (Asia Pacific)
      CE0001000, 2011.JAN, ACTUAL, ADJ  , CHINA , 3000  (datasrc is not input)
      CE0001000, 2011.FEB, BUDGET, ADJ  , KOREA ,  345  (datasrc is not input)
      CE0001000, 2011.FEB, BUDGET, INPUT, TURKEY, 1999  (Turkey is not child member of AAPJ)
      CE0001000, 2011.FEB, BUDGET, INPUT, JAPAN ,  450  (Value is less than 1000)

      Here are some important Notes for using this command.

      Note 1: This command works only for BPC MS.
      Note 2: if you don't specify each dimension's scope, it will be performed in the

           corresponding members of the pre-selected region which is defined with

           DIMMEMBERSET of previous line or Passed by Data Manager.

      Note 3: This command will generate MDX statement so it takes more time to execute.
                 if your dataset has only base members, you can use

                      *XDIM_GETINPUTSET. (please refer help file)

3. When user wants to add more members on top of current scoped data.


      Let's say a user wants to add USASales entity on top of predefined memberset.
      In that case user defines as below.

      *XDIM_ADDMEMBERSET Entity = USASales

      The main reason why we need this is
          a. Sometimes XDIMMEMBERSET doesn't work with some specific functions like BAS(parent).
             For example, IN BPC NW,  *XDIM_MEMBERSET = BAS(US),CANADA will not work.
             Therefore, we should use *XDIM_MEMBERSET and *XDIM_ADDMEMBERSET.

             *Note: In BPC MS, BAS() will not work with XDIM_MEMBERSET.

          b. if user always wants to run a specific memberset whenever logic runs,

              should use *XDIM_ADDMEMBERSET

4. Dynamic Scope and saving it to a variable.

      Sometimes we need to save our scoped data into a script logic variable.
      But... what if your dimension members are updated frequently?
      As I know, almost every customer updates their dimension at least once a month.

      If customer changes their dimension members, what will happen in your script logic?
      You can use *Filter but sometimes it may not work all the time.

      Then we can use *SELECT and *MEMBERSET command as a dynamic scope tool. 

      Like other script engine, Logic script also supports Variable to save some data.
      The Variable is defined using % symbol.Here are some examples, %MYTIME% , %CUR% etc.

      So how can we save some data into the variable and when it can be used?

      Usually, the variable can be filled using *SELECT command and *MEMBERSET command.
      Both of them is scope command but *SELECT will be faster because it will create SQL statement.
      Here is the grammar of both commands.
          *SELECT ({variable}, {What}, {From}, {Where})
          *MEMBERSET({variable}, {member set in MDX format})

      Let's see how to use *SELECT command.

           *SELECT(%REPORTING_CURRENCIES%, “ID”, “CURRENCY”, “[GROUP] = 'REP'”)

      This command will get the 'member ID(what)' from the 'currency dimension(From)' that the

      GROUP property has the value 'REP' (where).

      Actually, it will create a SQL statement as below

SELECT ID from mbrCurrency where [GROUP] = 'REP'

      After it executes above SQL command, all result will be saved into

      %REPORTING_CURRENCIES% variable.

      Here is an example of *MEMBERSET which will make same result but execute MDX statement

      instead of SQL.
           *MEMBERSET(%REPORTING_CURRENCIES%, “filter{[CURRENCY].members,

           [currency].properties(“GROUP”)=”REP””)   
      The variable can be used anywhere in the logic, like in this example:
                        *XDIM_MEMBER_SET CURRENCY=%REPORTING_CURRENCIES%

      Let's assume Currency dimension has below members.
          ID           GROUP

         USD            REP
         EUR            REP
         KRW           
         JPY

      Then above statement will be converted as
                        *XDIM_MEMBER_SET CURRENCY = USD,EUR   

      When you define and fill in data using *SELECT and *MEMBERSET,

      please remember this as 'MEMBERSET Variable'

      Note: MEMBERSET command is only supported by MS version.

We reviewed key command of scoping today.

We will review advanced calculation command and control command like *IF or *FOR - *NEXT in the next post.

If you have questions or want to know something about it, please leave a comment.

Thank you.

Comparision list of BPC Script Logic command between NW version and MS version

I guess many consultants already know the difference between BPC NW version and MS version.

Even though you know the difference, I think this chart will help us as a reference.

If you find anything wrong in the list, please leave a comment so that I can update it continuously.

Thank you.

*Index of Color

     YELLOW : Supported by both version.

     GREEN : Supported by NW version only

     WHITE : Supported by MS version only

     ORANGE : It was supported by MS version before 7.0 but not suppported any more.

Here is a link of Google docs. If you want to add more, please use it and edit, I will convert it as image and will publish it later

https://spreadsheets.google.com/spreadsheet/ccc?key=0AlNX_-VUdSnudFhZSlpibzJ1NmpTX0N1Ty1WcUZUbFE&hl=en_US&authkey=CM3FoJkB

image image image image

OSS Note Reply - It is By Design ?

In BPC you may encounter the need to do currency conversion by business rules.  In the Net Weaver Platform when using business rules, SAP delivers a program for currency conversion.  It is indeed a good program and gives great flexiblity to customers that want detailed control over currency conversion and currency effects on forecasts.

In the Microsoft Platform and even in the Net Weaver platform there remains standard script logic forms of currency conversion, but in many cases this is significantly limiting.

In our planning scenarios we often encounter plans that have 15 month rolling plans or other planning features that  span fiscal years or calendar years.  For example we might have planning for January to December for 2011 and also include the first three months of 2012.  As the months roll by we add a new month of forecast to the plan so we are often if not always entering LC in periods that are in two different years.

In our default logic we want currency conversion and in the case above using business rules, the system simply is built to ONLY convert the LOWEST NUMBERED year and its related time periods.  SAP says this is by design.  The work around is a performance hit relative to a better approach.

We say, yes it may be by design but as is often the case with SAP development, the design makes no practical business sense and limits customer use of the business rules process and code.

We urge SAP to not simply reply to notes with "it is by design" but also consider the design as perhaps meaningfully flawed in real world applications.

The currency conversion program in Net Weaver that engages currency conversion and business rules use is by design flawed.