TM1 Feeder not firing until rules / feeders reprocessed
Posted: Wed Apr 30, 2014 10:20 pm
I have seen a similar problem discussed on this forum about this, but the peculiarities of that do not quite mesh with this problem.
The problem is a conditional feeder that is not firing unless the server is restarted, the rule file is resaved or CubeProcessFeeders is executed.
Our staffing application that allows a Cost Center (CC) to transfer a position to another CC. The transfer subsystem has been rewritten so that all staffing types (dimension Staffing_Types) land in the same element, Transfers. We have Current Staff (mostly salaried), Skill Based, and Adds. Added positions can be either salary or skill based. Of course, each type of position has its own set of rules regarding incentives, pay bumps and when they occur, etc, etc. The transfer process takes any position marked to transfer and places it in the Transfers element, so a CC can see all their transferred in positions in one place. Of course the rules that apply in the Transfers element differ depending on the source element. It works very well but ran into problem today that has just not given up its secret.
In January of the budget period, each skill-based position receives an automatic bump to a pre-determined market rate. The bump up calculates, but the feeder does not fire.
How I test:
1) Eliminate the transfer
2) Run the transfer process clearing the destination CC
3) Cycle the server to clear any feeders
4) Mark the position to transfer
5) execute the transfer process.
6) Open the Input cube
At which point, we see the Operations Adjustment is calculated, but it is not being fed. Interestingly, if I Check Feeders on Operations Adjustment, it says it is not fed, but if I go to CountFlag1 and Trace Feeders, it reports it is feeding Operations adjustment.
Feel free to ask any questions and, especially, suggestions as to what is wrong.
The problem is a conditional feeder that is not firing unless the server is restarted, the rule file is resaved or CubeProcessFeeders is executed.
Our staffing application that allows a Cost Center (CC) to transfer a position to another CC. The transfer subsystem has been rewritten so that all staffing types (dimension Staffing_Types) land in the same element, Transfers. We have Current Staff (mostly salaried), Skill Based, and Adds. Added positions can be either salary or skill based. Of course, each type of position has its own set of rules regarding incentives, pay bumps and when they occur, etc, etc. The transfer process takes any position marked to transfer and places it in the Transfers element, so a CC can see all their transferred in positions in one place. Of course the rules that apply in the Transfers element differ depending on the source element. It works very well but ran into problem today that has just not given up its secret.
In January of the budget period, each skill-based position receives an automatic bump to a pre-determined market rate. The bump up calculates, but the feeder does not fire.
Code: Select all
FEEDSTRINGS;
SKIPCHECK;
['Budget', 'Transfers', 'Operations Adjustment'] = N: IF(['Hourly Rate Adjustment'] > 0
& ['Hourly Rate'] > 0
& ['Total Monthly Salary Change'] <= 0
& NUMBR(!Com_Months) = ATTRN('Com_Months', DB('Staffing Global Assumption',
!Com_Versions,
ATTRS('Com_Months', !Com_Months, 'Staffing_Global_Value'),
'BY Market Rate Change Month'), 'MonthNumber')
& DIMNM('Staffing_Types', DIMIX('Staffing_Types',
SUBST(DB('Staffing Input', !Com_Versions, !Staffing_Types, !Com_Slots, !HIERARCHY_STAFFING, 'Transfer ID'), 10, 1))) @= 'BSKL'
, ['Hourly Rate Adjustment'] * (['FTE'] * ['Monthly Work Hours']) * ['CountFlag1']
, 0);
FEEDERS;
['Budget', {'BSKL', 'Transfers'}, 'CountFlag1'] => DB(IF(['Hourly Rate Adjustment'] > 0 &
(!Staffing_Types @= 'BSKL' %
DIMNM('Staffing_Types', DIMIX('Staffing_Types', SUBST(DB('Staffing Input',
!Com_Versions, !Staffing_Types, !Com_Slots, !HIERARCHY_STAFFING, 'Transfer ID'), 10, 1) ) ) @= 'BSKL' )
, 'Staffing Calc'
, ''),
!Com_Versions,
!Staffing_Types,
!Com_Slots,
!HIERARCHY_STAFFING,
!Com_Months,
'Operations Adjustment');
1) Eliminate the transfer
2) Run the transfer process clearing the destination CC
3) Cycle the server to clear any feeders
4) Mark the position to transfer
5) execute the transfer process.
6) Open the Input cube
At which point, we see the Operations Adjustment is calculated, but it is not being fed. Interestingly, if I Check Feeders on Operations Adjustment, it says it is not fed, but if I go to CountFlag1 and Trace Feeders, it reports it is feeding Operations adjustment.
Feel free to ask any questions and, especially, suggestions as to what is wrong.