Sei sulla pagina 1di 30

SAP BPC Embedded Architecture

Welcome to the tutorial about SAP BPC Embedded Architecture where you will
learn about the architecture and main components of SAP Business Planning and
Consolidation (InfoProviders, Planning Modeller, Web Client, and front-end
applications). This tutorial is part of our free SAP BPC training course.

In the previous tutorial, I discussed the history of SAP BPC, this tutorial will go into
the architecture of SAP BPC embedded in more detail. Graphically, the architecture
can be represented as shown on the picture below. Let look at the SAP BPC
embedded architecture. Each of the components will also be covered in the future
tutorials, so we will start off with an overview of the various components.

SAP BPC Architecture


InfoProviders

Each InfoProviders can be seen as a type of planning activity and is typically


referred to as a ‘Model’ or ‘Planning Application’. For example, planning of sales
volumes will be planned in a Sales Cube, sales prices in a Price Cube, etc. I strongly
advise against mixing the applications in one cube, as it reduces the flexibility for
later expansions and unnecessarily expands the number of Characteristics required
for planning.

BPC Embedded allows for several types of InfoProviders for planning. They are:

 Real-time InfoCubes
 MultiProviders
 Local Providers
 Composite Providers
 Plannable DSOs
 SAP HANA Views
 SAP HANA Analytic Views

The choice of the InfoProvider is important and each have their strengths and
weaknesses and we will cover each in more detail in later tutorials.

Planning Modeller

The Planning Modeller is where most of the configuration work for a planning
application occurs and is accessed through transaction RSPLAN. In the planning
Modeller, we define the rules of how the planning application should behave and
how the user will interact with the application. More specifically, we define:

 Rules specific to the InfoProvider, such as Characteristic Relationships, Data-


Slices and any planning sequences that must run when data is saved.
 Aggregation levels, which represent a subset of characteristics from my cube,
 Filters, used in queries and planning functions
 Planning functions that performs calculations and data manipulations and
 Planning Sequences, which is a set of planning functions bundled together.
The configuration typically takes place in the sequence of the menu tabs as each
step is dependent on the step before it.

Planning Modeller
For example, a filter requires an aggregation level, an aggregation level requires an
InfoProvider.

SAP BPC Web Client

While the configuration of the planning application takes place in the Modeller, the
Web Client enables the setting of rules to manage the configured planning
process, although some modelling facilities are also provided. The Web Client
more specifically has functions for:

 User security
 Work Status
 Business Process Flows
 Data Audit
 Comments
 Reports Library and
 Web report Builder

Admin View of the Web Client


One important piece of configuration is also performed in the Web Client and that
is the setting up of the Embedded Environment. It is possible to configure a
sophisticated planning application without ever accessing the Web Client at all,
using the classic BI-IP (Business Intelligence Integrated Planning) functionality. The
choice whether to use the functions is based on the requirements of the project.

Front-end Options

Up to this point we covered configuration of the application and some of the


management thereof. Now let’s look at the presentation options of planning
applications. There are several options to present the planning application to the
user. Thankfully, three of the options involve Excel, which provides a powerful and
familiar environment for users to enter data and report on it. The Excel options
include:

 BEx Analyser
 Excel with the EPM Add-in
 Business Objects Analysis for Microsoft Office (BOA)

The BOA option is by far the most user-friendly, stable and powerful presentation
option. It offers most of the functionality of the EPM Add-in, but is far more stable.
In fact, SAP has decided that BoA will be the presentation tool for BPC Embedded
in the future and at this point it is unclear what future development work will take
place on EPM.

BoA Input Schedule


There is also the option of entering data on the Web, with input schedules
designed in the Web Client. The advantage of this option is that the input schedule
produces a link that can be sent to another user via email.

Web Input Schedule

Common Platform – What ‘Embedded’ Means?


The term ‘Embedded’ refers to the fact that SAP ERP, BPC and HANA now shares a
common platform. BPC is embedded in the overall landscape, it is possible to have
direct access to ERP transactional or master data, through the use of HANA/BW
objects such as composite providers. The benefit of this approach of embedding
BPC into the overall landscape is that there is potentially less data redundancy,
planning functions, data input and reporting is much faster because of the ability
to push down calculations to the HANA database layer. BPC also provides the
developer tools to easily access the HANA layer, through the provision of interfaces
and classes specifically designed to execute SQL code, for example, the
Characteristic Relationships functions provides the interface and method for
derivation executed on HANA:

Method for Derivation


Looking ‘Under the Hood’
As with all areas in SAP, BPC’s code is allocated to its own package, in this case,
several packages each starting with RSPL. The image below is from transaction
SE80 and shows the available classes of Package RSPLF – Services Type Planning:

Package RSPLFC in Transaction SE80


It is possible to have a closer and more detailed look at what the steps the
standard code follows when executing a standard planning function or why the
parsing of FOX code fails. The Package RSPLC above has a class called
‘CL_RSPLFC_COPY’. This represents the Standard Copy Planning Function in
transaction RSPLAN (which we will cover in a later tutorial). Expanding this class
until we reach the method ‘EXECUTE’ under the
IF_RSPLFA_SRVTYPE_IMP_EXEC_REF Planning Function Type: Impl. Execution (with
Ref. Data) interface,

Method Execute in Class CL_RSPLFC_COPY


it is possible to place a breakpoint in the method’s code, run the planning function
and start debugging.
Breakpoint in Method EXECUTE

This is very useful when SAP’s standard function does not behave like you expect it
to behave, which is often the case as the error messages and documentation is
sometimes unclear and confusing as to what settings you need to configure.

Summary

In this tutorial we covered the basics of SAP BPC Embedded architecture, starting
with Planning Modeller down to the Embedded Platform. In the next tutorial we
will start creating our first planning application.

Did you like this tutorial? Have any questions or comments? We would love to hear
your feedback in the comments section below. It’d be a big help for us, and hopefully
it’s something we can address for you in improvement of our free SAP BPC tutorials.
SAP Real-Time InfoCubes and Aggregation Levels
Welcome to the tutorial about SAP Real-Time InfoCubes and Aggregation Levels.
This tutorial is part of our free SAP BPC training. After studying this tutorial, you
will learn about defining InfoProviders and Aggregation Levels in SAP BPC. We will
use a real-time SAP InfoCube as an InfoProvider in our example.

In the previous tutorial, we discussed the architecture of SAP BPC Embedded. In


this tutorial we will look at the SAP Real-Time InfoProviders in more details.

SAP BPC Architecture

Planning Scenario
You may recall from the previous tutorial that InfoProviders represent a type of
activity, for example, Revenue Planning. Let’s have a close look at a typical
planning application and taking the example of Revenue Planning. This scenario will
also form the base of all the following tutorials:
“I want to be able to see planned revenue per material and Sales Organisation. Our
actual sales quantities should be used as the basis. I then want to average the last
six months’ actuals, apply a growth percentage on Material Group and then extend
the sales quantities to all the future planning periods. Because I have so many
materials, I don’t want to plan a price for every single one manually. Can we plan
prices on Material Group level and apply that to the quantities? Oh, and when I
change a planned quantity, the revenue must immediately update when I save the
data.”

From the customer’s statements, several requirements are clear:

 Sales Quantities are planned on the lowest level, which is material


 We need an input schedule to capture growth percentages
 We will need a planning function to average out sales and apply those
percentages
 Prices must be planned on a higher level, Material Group
 The planning sequence that calculates revenue, must execute on save.

SAP Real-Time InfoCubes (InfoProviders)

The first step we will cover, is translating the requirements into a technical view of
what InfoObjects we need in the application, and thus the InfoCube.
As characteristics, we will need:
0SALESORG, as the organizational unit,
0MATERIAL, for individual materials
0MATL_GROUP, for plan prices
0VERSION, to distinguish between plan and actual values
0FISCPER, which will represent the planning periods

Key Figures will hold the planned values, and for that we will need:
0PRICE, for prices, and its unit 0CURRENCY,
0QUANTITY, for sales quantities, and its unit 0UNIT,
ERLOS, for the calculated revenue and its unit 0CURRENCY.
These are the minimum number of InfoObjects we need to create a simple
Revenue Planning application to meet our customer’s needs.
Create SAP Real-Time InfoCube (InfoProvider)
The steps to create a real-time InfoProvider is the same as any other InfoProvider
in BW and is done in the transaction RSA1. Under Modelling sidebar, select
InfoProvider. Then, select the InfoArea you want to create the InfoProvider under
(either a standard InfoArea or a custom InfoArea), right click and select Create
InfoCube.

Create SAP Real-Time InfoCube

When creating the InfoCube for planning, set the Real Time checkbox as shown
below. Create the InfoCube as REV_PLAN, under a suitable InfoArea:

Create SAP Real-Time InfoCube – Select InfoProvider Type


Next, add the InfoObjects as discussed above into the InfoCube. The cube should
look as follows:

SAP Real-Time InfoCube

The Sub-Type SAP HANA optimized InfoCube is set automatically, since we are
using BPC Embedded. The Auditable setting allows us to see who changed data
and when. A new dimension is automatically created with the required
InfoObjects. We will not set this yet and will discuss the details of this in a later
lecture. Nothing else need to be set for this to be a planning enabled cube.

SAP HANA Optimized InfoCube

We saw that one of the settings of the cube is SAP HANA optimized InfoCube. What
does it mean? Classic InfoCubes are represented in SAP by an Extended Star
Schema. There are two fact tables, an F and E table. The F table is a write & delete
optimized table, while the E table is read optimized. This is no longer required, as
we move away from classic RDBMS to a modern, column based, In-memory
database such as HANA. As there is no difference in performance when reading,
writing or deleting data, a single fact table is directly joined to the master data
tables. This can be graphically represented below:

SAP HANA Optimized InfoCube

Planning Properties of the InfoCube


In transaction RSPLAN, the first tab we can see is InfoProvider.

Transaction RSPLAN Initial Screen – InfoProvider Button


This is where some InfoProvider specific properties are set. These properties
include:

 Central Settings, which sets the rules for the Key Date and also the planning sequence that
executes when saving data.
 Characteristic Relationships, which specifies rules for creating combinations, checking plan
data and performing derivations.
 Data Slices, used for locking data regions.

Each of these settings will be covered in more detail in later tutorials.

SAP Aggregation Levels


From the requirements from our customer, we can see that there are more
characteristics in the InfoCube than we may require in all instances of planning. For
example, Prices are planned on Material Group, not Material. Including Material in
our input sheets will results in unnecessary clutter and complicity for our users
(and us!). We really just need a subset of characteristics and the SAP structure to
create that subset is called an Aggregation level.

Let’s create our first Aggregation Level based on our REV_PLAN InfoProvider, for
planning of Sales Quantities on Material level. To create the Aggregation level, click
on the Aggregation Level button in the transaction RSPLAN.

Transaction RSPLAN Initial Screen – Aggregation Level Button


Enter a name and description of the Aggregation level, for example:

Create SAP Aggregation Level

Drag the InfoObjects from the InfoProvider (left partition) to the Aggregation Level
(right partition).

Create Aggregation Screen

Note:

 Only drag 0FISCPER as the Time Characteristic. SAP will automatically derive the
other time characteristics.
 When selecting a Key Figure from the InfoProvider for the Aggregation Level,
SAP will automatically select the corresponding Unit InfoObject. Avoid selecting
the Unit InfoObjects manually, as that may lead to unnecessary InfoObjects in
the Aggregation Level.
The Aggregation Level should contain the following InfoObjects after activation:

SAP Aggregation Level

Remember to activate the SAP aggregation level.

In the next Tutorial we will create the Filter and Input-Ready query to capture the
Sales Quantities.

Did you like this tutorial? Have any questions or comments? We would love to hear
your feedback in the comments section below. It’d be a big help for us, and hopefully
it’s something we can address for you in improvement of our free SAP BPC tutorials.

SAP Filters and Queries

Welcome to the tutorial about using SAP Filters and Queries. This tutorial is part of
our free SAP BPC training. After studying this tutorial, you will learn about creating
new filters and design of input-ready queries in SAP BPC. While talking about filters
we will explain how to create different kinds of variables. We will also provide tips
about testing and troubleshooting queries in SAP BEX.

In the previous tutorial, we covered the use of SAP Real-Time InfoCubes and
Aggregation Levels. In this tutorial, we will look at the SAP Filters and Queries in
more details.
SAP BPC Architecture

Let’s look at the planning requirements of our user again:

 Sales Quantities are planned on the lowest level, which is material


 We need an input schedule to capture growth percentages
 We will need a planning function to average out sales and apply those
percentages
 Prices must be planned on a higher level, Material Group
 The planning sequence that calculates revenue, must execute on save.

Create SAP Filter

In the previous tutorial, we started with the process for quantity planning on
aggregation level REV_01. The filter controls the selection of data for the Input
Ready Query and can contain the following:

 A characteristic value, for example, it is possible to ‘hardcode’ the selection for a


characteristic to a specific value, such as ‘K4’ for Fiscal Variant;
 A variable, for example, a selection range for Fiscal Year/Period. Note that any
type of variable available in SAP BEX can be used here and Replacement Path
Variables are very useful;
 Leave a characteristic in the filter empty.
Now let’s build the filter in the transaction RSPLAN. In the transaction RSPLAN,
select the Filters button.

Transaction RSPLAN – Initial Screen

Enter the name and description of the filter, as well as the Aggregation level on
which the filter will be built, for example:

Create SAP Filter

To track our objects easily, we will use the convention of naming our filters
sequentially, starting with F01, after the Aggregation Level.

After you press Enter button, you will be presented with a list of all the
characteristics in the Aggregation level, as well as all the available Navigational
Attributes.
An Empty SAP Filter

Let’s maintain the various characteristics based on the following rules:

InfoObje Descriptio Variable Name/ Variable Entry


Processin
ct n Represen Require
g Type
Default Entry ts d

Mandato
User
Fiscal year ry
0FISCPER ZIP_FISCPER Entry/Defau Range
/ period Variable
lt Value
Entry

0FISCVAR Fiscal year ZRP_FISCVARNT_SALES Replaceme


NT variant 0RG nt Path

User Optional
0MATERIA
Material ZIM_MATERIAL Entry/Defau Selection Variable
L
lt Value Entry

Mandato
Sales User
0SALESOR Single ry
Organizatio ZP_SALESORG Entry/Defau
G Value Variable
n lt Value
Entry
Unit of
0UNIT ST’
Measure

Mandato
User
Single ry
0VERSION Version ZP_VERSIO Entry/Defau
Value Variable
lt Value
Entry

Creating Variables

Let’s look at the process of adding a variable for the InfoObject 0FISCPER. To add a
variable for a characteristic in the filter, click on the Selection button for the
characteristic as shown on the screenshot below.

Selection Button in SAP Filter

You will be presented with the Input Help box. Under the view drop down field,
select Variables.
Enter the Variables View
Next, click on the Create Variable button.

Create Variable Button

Create Variables: Specify Properties (1)

Enter details of the variables as follows:

Create Variables: Specify Properties (2)

Input Description Value

Variable Name Technical name of the variable ZIP_FISCPER


Fiscal Year/Period
Long Description Text description of the variable
(Interval, Mandatory)

Select the InfoObject. It should default


InfoObject Fiscal year/period
to the InfoObject 0FISCPER

How the system handles the


Processing Type. Range
processing of the variable

Single Value, Interval or several single


Value Represents Single Value
values

Mandatory, Initial Value


Entry Required Optional or Mandatory
not Allowed

Determines if variable is filled by user


Variable ready for input Select
or a user exit

Add personalization Should we add a personalization from


Empty
from Variable another variable

Should this variable have a default


Default value(s) Empty
value

After you saved the variable, click on the Add button to add the variable to the
filter as shown below.
Add Variable to SAP Filter

Rest of the Variables

Let’s look at some of the values in the Filter. First, I want to discuss the Fiscal Year
Variant. We can either hardcode it, or get the value from the master data. In this
case, since we restricted the Sales Organization to a single, mandatory value, we
can grab the value from the value selected in the variable, through a replacement
path variable. The variable’s configuration is as follows on the screenshot below.

Replacement Variable for Fiscal Year Variant

Note that we are hardcoding the unit of measure. This is not ideal, since not all the
materials in our selection will use the same unit of measure (UoM). For example,
the InfoObject 0MATERIAL may have the following entries with its base unit of
measure:

Material Base_Uom

D304 H

D403 LE

D404 H

E100 MWH

F1000 ST

F1000-G1 ST

Ideally, we want to use the UoM from the material master. But since the variable
selection in this case is a range, we can’t use the same method as we did for the
Fiscal Year Variant. But let’s continue with this to illustrate a principle and then
later we will create the coding to correct the situation.
The completed filter should look as follows:

Completed SAP Filter

We can now save the filter and move to the query.

Create an Input Ready Query

Creating an input ready query for SAP BPC is basically the same as a normal BW
BEX query. In the Query Designer, we select the Aggregation level as the
InfoProvider.

Create Query on Aggregation Level


Once selected, select the filter and drag it into the Characteristic Restrictions
column:

Filter in Characteristic Restrictions

It is generally, the best practice is to place as many of the restrictions into the
filter, rather as local restrictions in the query, but the requirements of the
customer will dictate it.

The following general principles apply in building an input ready-query, and it’s
generally something that inexperienced consultants battle with:

 Each Key Figure that is planned, must address a unique intersection of data.
Characteristics that contain multiple values or ranges cannot be in the ‘Free
Characteristics’ section.
 The selection of ‘Master Data’ versus ‘Posted Values’ has a significant effect on
output of the query. You will see either no data, or too much data, or any
combination in between. Use the ‘Master Data’ setting with care, especially
when you have several characteristics that are restricted on ranges.

Query Rows and Columns

Now let’s use these principles to build the rest of the query:

Since 0MATERIAL’s restriction contains more than one material, we have to place it
in rows or columns. We will place it in rows.

Under Extended Settings, we will mark the Access Type as ‘Master Data’. This will
return empty, imputable fields for all the materials in the selection, even if there is
no values in the cube.
Characteristic Properties (Material)

Drag 0UNIT to rows as well and set the Access Type to Master Data.

As 0FISCPER is also a range, do the same with 0FISCPER, but add it to the columns.

The rest of the Characteristics can be added to Free Characteristics, as they are
restricted to single values.

Since we are planning quantities, drag the Key Figure 0QUANTITY to the Columns.
In the Key Figure’s properties, select the Planning tab and set to ‘Input-Ready
(Relevant for Locking).
Key Figure Properties (Quantity)

The completed query should look like this:

SAP
Query Rows and Columns
Make the Query Input Ready

The last setting is to make the query Input Ready by default. To do this, select the
properties of the query and under the Planning Tab, check the ‘Start Query in
Change Mode’.

Test the Query

We can quickly test the query in the transaction RSRT. Select your query (I called it
REV_01_Q0001) and enter some variables for the query, for example:

Transaction RSRT – Variable Selections

The query should be displayed with empty columns that are input ready for all the
materials in the selection. You should be able to enter values in the fields.

Input
Ready Query
Troubleshooting

If the query returns the following:

No Application Data Displayed in Query

It means that you have not set all the characteristics to Access Type ‘Master Data’.

If you cannot enter any values in the Key Figure, the cause may be one of the
following:

 You have not made the Key Figure 0QUANTITY input ready or
 You have not made the query ready for planning or
 The cube may be in ‘Load-Mode’ or
 The characteristics in the rows/columns do not create a unique intersection on
the Key Figure. For example, you may have incorrectly defined version as a
range and selected more than one value.

In the next tutorial, we will look at how the data is represented in the cube. We will
also build the remaining Aggregation Levels and Queries to complete the Input
Schedules.

Did you like this tutorial? Have any questions or comments? We would love to hear
your feedback in the comments section below. It’d be a big help for us, and hopefully
it’s something we can address for you in improvement of our free SAP BPC tutorials.

Potrebbero piacerti anche