Ruling values between dimension elements

Post Reply
MarcFrankel
Posts: 1
Joined: Wed Oct 02, 2013 2:12 pm
OLAP Product: TM1 Perspectives
Version: 9.5.2
Excel Version: 2007

Ruling values between dimension elements

Post by MarcFrankel »

Hi All,

I'm working on a CapEx model for my organization and I'm running into a little snafu with the rules that I'm hoping to get some guidance on. Essentially, I'm wondering if it's possible to rule values from one intersection in a cube into another intersection using an attribute of one of the elements to determine where the value would be ruled to. First a little bit of background info on the model:

All relevant CapEx calculations take place in the CapEx cube.
The Dimensions of the cube are:
1) Versions
2) Companies
3) Cost Centers
4) Time Months
5) Projects
6) CapEx Measures

The Projects dimension has two attributes relevant to this question: 1) Mgt CC & 2) Depr CC.
~The Mgt CC is the managing cost center to which all cost is assigned
~The Depr CC is the depreciating cost center to which depreciation is to be recorded/reported.
The Cost Centers dimension has a Company attribute which shows to which company the Cost Center belongs
Currently I have a working depreciation rule that is calculating depreciation at the Mgt CC (since all cost is stored there)
I also have a TI process that is copying the depreciation from CapEx Measure "Depreciation" to the "Ruled Depr" Measure.

Ultimately what I'm hoping for is either the ability to move the values from the source intersection:
DB('CapEx', 'Forecast', !Companies, attrs('Projects', !Projects, 'Mgt CC'), !Time Months, !Projects, 'Depreciation')
to the destination intersection:
DB('CapEx', 'Forecast', attrs('Cost Centers', !Cost Centers, 'Company'), attrs('Projects', !Projects, 'Depr CC'), !Time Months, !Projects, 'Ruled Depr')

Currently, I've tried the following rule and both of the following feeders; and while these do copy the values from the source intersection to the destination intersection, they also copy the source values into the same intersection as the source but in the Ruled Depr measure:

Rule:
['Ruled Depr', 'Forecast']= N:
DB('CapEx', 'Forecast', 'All Companies', 'All Cost Centers', !Time Months, !Projects, 'Depreciation');

Feeder attempt 1:
['Depreciation', 'Forecast']=>DB('CapEx', 'Forecast', attrs('Cost Centers', attrs('Projects', !Projects, 'Depr CC'), 'Company'), attrs('Projects', !Projects, 'Depr CC'), !Time Months, !Projects, 'Ruled Depr');

Feeder attempt 2:
['Depreciation', 'Forecast']=>DB(IF(!Cost Centers @= attrs('Projects', !Projects, 'Depr CC'), 'CapEx', '')
,'Forecast', attrs('Cost Centers', attrs('Projects', !Projects, 'Depr CC'), 'Company'), attrs('Projects', !Projects, 'Depr CC'), !Time Months, !Projects, 'Ruled Depr');

Any help is greatly appreciated!

Thanks all!
tomok
MVP
Posts: 2836
Joined: Tue Feb 16, 2010 2:39 pm
OLAP Product: TM1, Palo
Version: Beginning of time thru 10.2
Excel Version: 2003-2007-2010-2013
Location: Atlanta, GA
Contact:

Re: Ruling values between dimension elements

Post by tomok »

It would appear you have a misguided notion as to what a feeder actually does. Are you perhaps new to TM1? Nevertheless, it would behoove you to either spend some time reading the manuals, take a training course, or read postings on this site to gain a better understanding of what a feeder does. I can see where you've attempted to use the attributes to do a lookup to determine which cost center and company to feed, why you didn't do that for the actual rule calculation is a mystery to me (which led to my first two deductions).

You need to actually move the balances into the intersections you want via the attribute lookups. Referencing "All Companies" or "All Cost Centers" is not going to handle that for you since those two elements are just nodes in the dimension (at least I assume you have created these nodes), like any other. TM1 can't read your mind to know that "All Companies" is actually supposed to mean all companies since there is no programming construct in TM1 called "All this" or "All that". All TM1 knows is what you tell it and all you can tell it about "All Cost Centers" is that it is a rollup that contains certain specified children, nothing more.

What your rule should look like is something like this:

Code: Select all

['Ruled Depr', 'Forecast']= N:
IF(!Cost Centers @= attrs('Projects', !Projects, 'Depr CC'),
  DB('CapEx', 'Forecast', attrs('Cost Centers', attrs('Projects', !Projects, 'Depr CC'), 'Company'), !Cost Centers, !Time Months, !Projects, 'Depreciation'),
  STET);
This may not be perfect since I'm not sure what this statement:
The Cost Centers dimension has a Company attribute which shows to which company the Cost Center belongs
i don't know if that means the balance is supposed to move from an existing company into the company as specified in the attribute, or whether they are the same, or whatever.
Tom O'Kelley - Manager Finance Systems
American Tower
http://www.onlinecourtreservations.com/
User avatar
Martin Ryan
Site Admin
Posts: 2003
Joined: Sat May 10, 2008 9:08 am
OLAP Product: TM1
Version: 10.1
Excel Version: 2010
Location: Wellington, New Zealand
Contact:

Re: Ruling values between dimension elements

Post by Martin Ryan »

Marc, great to see someone paying attention to the guidelines for making postings. It makes it much easier to provide meaningful replies when the question is well put.

A few key points to help you on your way: Feeders don't move the data, they just flag which cells need to be calculated with a rule. There's a bit on feeders here and on other posts on the forum.

Rules do not move data - you can't pick up one figure and move it to another place using a rule. Instead Rules are for referencing/linking. They're very similar to the way that formulas in Excel work. They rely on the source number(s) staying where they are and the formula references those values and works with them.

It looks like you've tried to put all your logic into the feeder, when in actual fact the logic should be in the rule. You can start by disabling feeders (just don't have "SkipCheck" or "Feeders" in the rule file) then once you get the rule sorted then you can look at getting the feeder figured out.
Please do not send technical questions via private message or email. Post them in the forum where you'll probably get a faster reply, and everyone can benefit from the answers.
Jodi Ryan Family Lawyer
Post Reply