Skip to Content Former Member

### Evaluate calculated KPIs in BW IP

Hi experts,

I m new in BW Integrated planning and I have already worked on SAP BPC 10...So I have just some questions regarding BW-IP...

I m wondering what is the fonctionnality in BW-IP that allows to calculate values for calculated KPIs?

Let me explain.

Let's say I have an agregated level that contains KPI1, KPI2 and KPI3. The KPI3 = KPI1/KPI2. Through the BO analysis/BW Analzer the user specifies the value for KPI1 and KPI2. While saving the data I want to call some function to calculate the value for the KPI3 for every records...How can I acheive that with BW-IP ?

My second question is when I need some value from other InfoCubes to calculate the value for KPI3 while saving data in my InfoCube?

Thank's a lot form your help.

Abdess,

##### Add comment
10|10000 characters needed characters exceeded

### 2 Answers

• Best Answer Former Member
Jan 23, 2015 at 10:51 AM

Hi Gregor,

Thank's a lot for your response.

Since the storage hardware has become less expensive than what it was, I think that storing maximum of information will decrease the requests execution time, Also that increasse the server performance because the requests execution uses less RAM space ...This is the first point.

The second point is that in the most cases we agregate KPIs and then we evaluate the calculated KPI. , but sometimes we have to evaluate a calculated KPI before doing agregation, in this case we must store the calculated KPI.

Let me explain, suppose we have 3 dimensions: Dim1, Dim2 and Dim3 and 3 KPIs: KPI1 and KPI2 and KPI3= KPI1 * KPI2

Dim1     Dim2     Dim3     KPI1     KPI2     KPI3

A1       B1          C1          10          5          50

A1       B2          C2          20          15        300

A1       B3          C3          30          25         750

If we calculate the KPI3 on the fly, using the Dim1=A1 we will get: (10+20+30)*(5+15+25) = 60*45=2700

But if we store in the InfoCube, we will have: 50+300+750 = 1100. It's defferent!

Now, I created a FOX to calculate a KPI, The issue I have is that when we execute the FOX, it is executed on the data stored in the DB...if this is true, so, each time I execute the FOX, it will traits all rows stored in the InfoCube, even those that are already traited (We can use filters select the data to be manipulated by the Fox ...)

What I m looking for is, when an end user writes/modifies some rows in the Excel sheet and clicks on the button save, the data being in the Excel gets manipulated by the Fox before it is stored in the target....This is what I dont understand how it can be done through BW IP fonctionnalities...

Thank's a lot for your help

Abdess,

##### Add comment
10|10000 characters needed characters exceeded
• Former Member Gregor Dieckmann

Thank's a lot Gregor ^^

• Former Member
Dec 31, 2014 at 08:18 AM

Hi,

About your first question, IP has a set of pre defined planning functions such as copy, delete etc.

In addition there is a FOX formula in IP where you can manipulate the data as you want (A+B/C*D etc.).

About your second question, aggregation level can be built over multi cube, which contains planning data as well as other cube with any other data, so you can access to such "side" data in planning function.

BR,

##### Add comment
10|10000 characters needed characters exceeded
• Gregor Dieckmann Former Member

Hi Abdess,

why do you want to store KPIs on the DB? That something can be calculated indicates that this information is redundant and thus should not be stored on the DB. In addition, almost all non-trivial KPIs can not be aggregated, so storing these KPIs as basic key figures will lead to garbage if the corresponding delta records stored in an InfoCube will be aggregated.

If you come from BPC the concept comparison

http://scn.sap.com/docs/DOC-58899

might be helpful.

Just to calculate KPIs to have the values in a report do this in a BW query. For the 'Price' examples you can use inverse formulas: this allows you to change 'Prices' (formuals), but only the base key figures will be stored on the DB.

If you have some use cases where you need to store KPIs on the DB you should use a DSO; you can use FOX to calculate these KPIs. But by definition of 'store KPIs' you will get the values from the DB but you can recalculate the values in FOX. But here we come back to my initial statement, why to store redundant data if you can calculate the values on the fly?

Regards,

Gregor