by Steve Rowe » Fri Mar 12, 2010 11:53 am
Hi Dan,
Yes it sounds like a feeder issue.
You seem to be only feeding from the false part of your IF statement, is that always populated even when the condition is false? If not then your feeder fails when you are on the Elpar part of your rule....
Doing that bit properly is a bit of a challenge. Off the top of my head something like this.
#Subset style list of all the possible L1 parents that could be references in your ElPar
[{ 'L1 Parents'} ,....{'L1 Parents'}, 'Non Cost Centre Item']=>
#Conditionalise the Feeder as the LHS is quite large and general.
DB ( IF( (~DB('cbmCSRWBS', !dimProject, !dimCSRWBS, '07', !dimYear) = 0) & ATTRS('dimCSRWBS', !dimCSRWBS, 'Dummy') @= 'True' ,
#Put the cube name in the DB
'cbcCSRFacts' ,
#make the DB fail by putting a blank in
''),
#Rest of DB
dimChartOfAccounts, !dimCounterParty, !dimFunction, !dimCSRMeasures, !dimOrganisation,
!dimCSRPeriod, !dimProject, 'Non Tier Item', !dimYear, ELPAR('dimCSRWBS', !dimCSRWBS, 1), !dimCSRRBS, !dimCSRProfitMargin));
Note that we retain the elpar in the RHS of the feeder since the feeders only execute at the N level on the LHS so when we say Parent1 on the LHS side of the feeder this means 'all the children of Parent 1', so when the feeder executes you would have the same !dimCSRWBS on both sides of the feeder. This is not what we want as this is the same as the feeder you have currently. What we need to do is say all the children of Parent 1 feed all the children of Parent 1, which is achieved by putting the elpar in the RHS too.
Note that I'm not saying this is the best approach, without knowing alot more about your data and what you are trying to achieve, this is the best I can do (noting my previous point about not using Elpar in rules and feeders.
Anyway HTH.
Cheers