Hi all,
I got a request to pick up the previous month number from a archived forecast version in the cube (this forecast version will change each month). For example, we are working on Feb forecast now. I need to pick up the Jan numbers from Jan month in Jan forecast version while Jul to Dec are coming from the Act version in the cube. When we work on Mar forecast next month, we need to pick up Feb nunmbers from Feb forecast version while Jul to Jan will come from the Act version.
As we have a number of versions in the version dimension, 1 actual version, 12 forecast versions (non-calculation versions) and 5 calculation versions. The source of data/feeder (i.e. left side of feeder statement) can come from any one of 12 forecast versions or 5 calculation versions depending on the business needs, thus, the cube is overfeeding.
While working on this request, I have been thinking the feeding issue if the business wants to put 2 or 3 months of data from 1 or more archived version. I have a small control cube that specifies the source version and use that data in the conditional feeder on the right side of the feeder statementto feed the specifiy calculation version. As I can't specify a version in the left side of the statement, I have feeders firing off from all versions. Is there a better way that I can somehow stop feeders firing off from all other versions (i.e. versions not specified in the control cube).
Regards,
Gary
Left Side Feeder
- Harvey
- Community Contributor
- Posts: 236
- Joined: Mon Aug 04, 2008 4:43 am
- OLAP Product: PA, TM1, CX, Palo
- Version: TM1 8.3 onwards
- Excel Version: 2003 onwards
- Contact:
Re: Left Side Feeder
If I understand your scenario correctly, there is no real way to do this without trade-offs. Here are the main techniques you can use.
Conditional feeder:
This is where you have an IF statement in the RHS of your feeder.
This technique is only really useful if you're trying to limit the amount of memory your feeder flags consume, but slows down feeders overall.
In your case, it would probably just slow things down, and you IF statement would be hard to write, as it would most likely be difficult to work out which versions are specified as source versions.
A Conditional Feeder takes the form:
['source'] => DB( IF(condition, 'cube name', ''), dim1, dim2... etc);
This makes TM1 feed a non-existent cube if the condition is not met.
Consolidation as the LHS feeder source:
A simple but easy to maintain technique is to create a consolidation in your version dimension and feed from that consolidated element. In TM1 this is just shorthand for feeding from all leaf elements under the consolidation. If you only have a limited number of source versions available, this can be the way to go, but it does tend to make your version dimension look a little messy.
Use a TI process:
If the data doesn't strictly need to update in real time, and can either be updated as a batch overnight, or can be triggered by an action button once the assumptions are updated, consider switching to TI. You won't need feeders and everything will run faster by orders of magnitude.
There are plenty of other posts on these techniques on the forum, so if you need more detail, you should be able to find what you need.
Conditional feeder:
This is where you have an IF statement in the RHS of your feeder.
This technique is only really useful if you're trying to limit the amount of memory your feeder flags consume, but slows down feeders overall.
In your case, it would probably just slow things down, and you IF statement would be hard to write, as it would most likely be difficult to work out which versions are specified as source versions.
A Conditional Feeder takes the form:
['source'] => DB( IF(condition, 'cube name', ''), dim1, dim2... etc);
This makes TM1 feed a non-existent cube if the condition is not met.
Consolidation as the LHS feeder source:
A simple but easy to maintain technique is to create a consolidation in your version dimension and feed from that consolidated element. In TM1 this is just shorthand for feeding from all leaf elements under the consolidation. If you only have a limited number of source versions available, this can be the way to go, but it does tend to make your version dimension look a little messy.
Use a TI process:
If the data doesn't strictly need to update in real time, and can either be updated as a batch overnight, or can be triggered by an action button once the assumptions are updated, consider switching to TI. You won't need feeders and everything will run faster by orders of magnitude.
There are plenty of other posts on these techniques on the forum, so if you need more detail, you should be able to find what you need.
Take your TM1 experience to the next level - TM1Innovators.net