Member formula is widely used in BPC environment, but many customers facing the same challenge when running queries with aggregation on member formulas, the calculation result is incorrect. For example in following table, the correct result should be 0.2, but query result usually displayed as 0.5:
ACCOUNT | ENTITY | PERIODIC | explanation |
T100T | C1000 | 30 | T100T=SUM(T101, T102) |
T101 | C1000 | 10 | |
T102 | C1000 | 20 | |
T200T | C1000 | 150 | T100T=SUM(T101, T102) |
T201 | C1000 | 100 | |
T202 | C1000 | 50 | |
R100T | C1000 | R100T=T100T/T200T Not: SUM(R101, R102) | |
R101 | C1000 | 0.1 | R101=T101/T201 |
R102 | C1000 | 0.4 | R102=T102/T202 |
This is a BPC production limitation at the moment, which is unable to handle exception aggregation on member formula for transient queries, and this can’t be handled in BW side alone either, as BW BEX query is unable to recognize the difference between member formula rows and normal rows.
The solution below is to combine both BPC member formula and BW exception aggregation methodology to handle this challenge for reporting.
Here is account type, account hierarchy setup from BPC side:
R100T and its children nodes R101 and R102 are ratio nodes, which are calculated from T101, T201 etc.
R101 and R102 are member formula to calculate ratio. Besides the member formula on children nodes, also design accordingly member formula on parent node level (R100T = T100T/T200T).
‘Formula 1’ + ( ‘Formula 1’ == 0 ) * ‘Periodic’
This formula is used to check the value for “Formula 1”, if “Formula 1” has a value (not empty), then (“Formula 1” == 0) will return false value, which is 0, it’s going to use the value from “Formula 1”. If “Formula 1” is empty ( because no aggregation on hierarchy for the exception aggregation), then (“Formula 1” == 0) will return true value, which is 1, the value from “Periodic” will used for the final result.
“Periodic” is 0.7 (incorrect), which is a result of 0.2(number calculated from member formula in BPC) + 0.5 (aggregation result from BW, 0.1 +0.4) “Formula 1” on R100T is correct, 0.2(number calculated from member formula in BPC), but it’s empty for T100T, T200T, because we set exception aggregation on BW ( No aggregation on hierarchy).“Formula 2” is correct for all aggregation nodes, because we used formula in BEX query.(if “Formula 1” is empty, take the value from original aggregation value from “Periodic”.
The query result will look like below, correct aggregation numbers will be displayed for all nodes:
Above is just an example for hierarchy with periodic, similar method could be used for YTD/QTD calculations like:
2014.01 | 2014.02 | 2014.03 | 2014.Q1 | |
A | 10 | 20 | 30 | 60 |
B | 5 | 8 | 6 | 19 |
C=A/B | 2 | 2.5 | 5 | ? |
Feedback:
If you have any comments, questions or feedback, please kindly send an e-mail to:
George Yang (ge.yang@sap.com)
Freeter Xie (freeter.xie@sap.com)
Alex Shen (yang.shen@sap.com)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
5 | |
5 | |
4 | |
4 | |
3 | |
2 | |
2 | |
2 | |
1 | |
1 |