Conditional feeder - how to force reevaluation
Posted: Fri Jul 03, 2015 9:23 am
I would like to get your views on the following situation/challenge:
- a cost centre dimension
- cubes A and B which contain this cost centre dimension
- cube A feeds B with conditional feeder based on whether cost centre has status = Active (this information is in Cost Centre Info cube)
- processing these feeders takes more than the user would want to wait (let's say like +15 minutes)
- server is restarted every night so feeders get reevaluated latest by the next night
- in real life the cubes are more complex and therefore processing the feeders actually takes more than 15 minutes
So the feeder in Cube A would be:
['Value'] => DB(IF(DB('Cost Centre Info',!Cost Centre,'Status') @= 'Active', 'Cube B', ''), !Cost Centre, 'Value');
How would you handle a situation where a user changes status of a single cost centre from Inactive into Active during the day and would therefore of course expect to see numbers in Cube B?
I guess one would normally use TI process with CubeProcessFeeders to force reevaluation of the feeders, but in this case it is a bit tricky because it takes too long.
The only viable option I've come up with so far is to set up some kind of temporary cube that would feed Cube B. The temporary cube would only contain data for this changed cost centre and the temporary cube would be populated by TI process after the status has been changed from Inactive to Active. This data and temporary source for feeding would not be needed after the nightly restart of course. Another option might be to feed from the Cost Centre Info cube from the status element, but that would end up in overfeeding. What do you think?
- a cost centre dimension
- cubes A and B which contain this cost centre dimension
- cube A feeds B with conditional feeder based on whether cost centre has status = Active (this information is in Cost Centre Info cube)
- processing these feeders takes more than the user would want to wait (let's say like +15 minutes)
- server is restarted every night so feeders get reevaluated latest by the next night
- in real life the cubes are more complex and therefore processing the feeders actually takes more than 15 minutes
So the feeder in Cube A would be:
['Value'] => DB(IF(DB('Cost Centre Info',!Cost Centre,'Status') @= 'Active', 'Cube B', ''), !Cost Centre, 'Value');
How would you handle a situation where a user changes status of a single cost centre from Inactive into Active during the day and would therefore of course expect to see numbers in Cube B?
I guess one would normally use TI process with CubeProcessFeeders to force reevaluation of the feeders, but in this case it is a bit tricky because it takes too long.
The only viable option I've come up with so far is to set up some kind of temporary cube that would feed Cube B. The temporary cube would only contain data for this changed cost centre and the temporary cube would be populated by TI process after the status has been changed from Inactive to Active. This data and temporary source for feeding would not be needed after the nightly restart of course. Another option might be to feed from the Cost Centre Info cube from the status element, but that would end up in overfeeding. What do you think?