![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Hi, I have 12 measures according to the months in a year: Period 01 .... ... Period 12 I want to create hierarchy in the measure dimension, like Q1...Q4 and Total Year. The structure should have the months at the bottomlevel. Is this |
|
The background of my problem is actually a currency conversion approach where I can't us the months, quarters and total year in a dimension. I have |
|
However, the conversion should first calculated at month level (by calculated members) and then roll-up. Custom roll-up with |
#3
| |||
| |||
|
#4
| |||||||
| |||||||
|
|
Hi Tom, If the Measure dimension is flat by definition I think this topic will move forward to a currency conversion problem. I will give more information what I have been doing: In a datawarehouse financial information is stored in local currencies. A DTS is filling a FACT table where all local data is converted to a base |
|
However it's not important in this case, I would also like to mention that two conversion rates are applicable. End-of-month rates for balance sheet |
|
1st approach) Financial Cube: Account dimension consiting of P&L and B/S items Period dimension consisting of Total Year, Q1..Q4, M01...M12 (drill down hierarchy) Year dimension consisting of fiscal years Measure dimension consisting of measures/members Actual, Budget and Forecast Exchangerate Cube: The Financial cube is using xchange rates via LookupCube function to Exchangerate cube. The conversion logic has been implemented (without giving details of the MDX statements). The problem I'm facing is an order of calculation. Since |
|
2nd approach) Probably this approach feels strange, but the Measure dimension contains now the months, quarter and total year. The Actual, Budget and Forecast |
|
Finally, I think the 1st approach is preferrable since a hierarchy is available. The problem is actually how can I perform a "Custom Rollup |
|
If not possible, the alternative is multiplying the fact tables by the amount of reporting currencies and do a pre-calculation before reading into |
|
Regards, Jeroen Nathalia OLAP consultant Hyperion Essbase & MS Analysis Services The Netherlands |
#5
| |||
| |||
|
|
"J. Nathalia" <anonymous (AT) discussions (DOT) microsoft.com> wrote in message news:961E18B6-2B83-4DA4-9408-06A801F0D121 (AT) microsoft (DOT) com... Hi Tom, If the Measure dimension is flat by definition I think this topic will move forward to a currency conversion problem. I will give more information what I have been doing: In a datawarehouse financial information is stored in local currencies. A DTS is filling a FACT table where all local data is converted to a base currency (in case GBP). The cube(s) will basically store financial data in GBP (base currency). The cube should also report in different currencies (so called reporting currencies). However it's not important in this case, I would also like to mention that two conversion rates are applicable. End-of-month rates for balance sheet items and Average month rates for profit & loss. This is captured in the logic by evaluating the member property of the financial account. 1st approach) Financial Cube: Account dimension consiting of P&L and B/S items Period dimension consisting of Total Year, Q1..Q4, M01...M12 (drill down hierarchy) Year dimension consisting of fiscal years Measure dimension consisting of measures/members Actual, Budget and Forecast Exchangerate Cube: The Financial cube is using xchange rates via LookupCube function to Exchangerate cube. The conversion logic has been implemented (without giving details of the MDX statements). The problem I'm facing is an order of calculation. Since the aggregation of dimensions is performed first and secondly the execution of calculated members, the conversion is correct at month level but not at Quarter level. It's converting the quarter value of the financial account against the rate at quarter level. However the latter part can be solved by taking the last quarter of the month, principally this is not correct because the order of calculation should be first the conversion of the financial account at month level (pass n), following by aggregating the result to quarter level (pass n+1). This will cause into a aggregated figure at quarter level instead of converted value at quarter level which is wrong. 2nd approach) Probably this approach feels strange, but the Measure dimension contains now the months, quarter and total year. The Actual, Budget and Forecast members are now moved to a Scenario dimension. The reporting currencies are now calculated by a calculated member with one simple statement. Conversion of the months are again perfectly executed. Quarters and total year can also be perfectly calculated by a calculated member since the solve_order or order of the individual calculated members (Mxx, Qx, Total Year) implies already that Qx and Total Year are calculated correctly. The only disadvantage thing is the lack of a hierarchy. Finally, I think the 1st approach is preferrable since a hierarchy is available. The problem is actually how can I perform a "Custom Rollup Formula" after the execution of a calculated member. The Custom Rollup Formula is just an SUM of the children within a quarter etc. Is applying CalculationPassValue appropriate or is this problem simply not possible? If not possible, the alternative is multiplying the fact tables by the amount of reporting currencies and do a pre-calculation before reading into the cube. This is absolutely not preferrable since the cube data will be blown up unnecessarily by the amount of reporting currencies. Regards, Jeroen Nathalia OLAP consultant Hyperion Essbase & MS Analysis Services The Netherlands |
#6
| |||
| |||
|
#7
| |||
| |||
|
|
Correction, there was an extra comma: IIF( Time.CurrentMember.Level IS [Month], currency conversion formula here> , SUM(Descendants(Time.CurrentMember,[Month]), Measures.X) ) public @ the domain below www.tomchester.net |
#8
| |||
| |||
|
|
This is really an interesting discussion.... Does this formula sum up itself ? Does it mean below that It will make a sum of the currency converted amount ? \Michael Vardinghus Tom Chester <publicNOSPAM (AT) tomchester (DOT) net> wrote in message news:Gl5Zb.36$xq6.36861 (AT) news (DOT) uswest.net... Correction, there was an extra comma: IIF( Time.CurrentMember.Level IS [Month], currency conversion formula here> , SUM(Descendants(Time.CurrentMember,[Month]), Measures.X) ) public @ the domain below www.tomchester.net |
#9
| |||
| |||
|
#10
| ||||
| ||||
|
|
Tom, Thanks for you recommendation. The approach works fine!!! 1) Before closing this issue I would like to know the arguments why you do not prefer Scenario (Actual, Budget, Forecast) in the measures dimension but |
|
2) Is it better to disable the Period dimension by a custom rollup formula equal to "0" for performances reasons? Or is a ~ as unary operator better? 3) If I apply a SOLVE_ORDER of < -5119 to my original calculated member, why is still my calculated member executed after the roll-up. I have read in |
|
4) What are the consequences in terms of performance of having your approach against multiplying the fact table by the amount of reporting |
|
Thanks in advance, I do appreciate you recommendation very much! Regards, Jeroen |
![]() |
| Thread Tools | |
| Display Modes | |
| |