Page 1 of 1
Locking Actual Months in Forecast Scenario from User's Editing
Posted: Sun May 09, 2021 2:34 am
by SBK88
Hi All,
Need your help
We have a cube where we have ACTUAL scenario - ACTUAL
and Forecast Scenarios as - 1+11 /2+10 /3+9 ....... 11+1
1+11 will have Jan as ACTUAL month, and FEB.... DEC as Forecast months
2+10 will have Jan, Feb as ACTUAL months, and Mar.... DEC as Forecast months
.
.
We load ACTUAL DATA first in ACTUAL Scenario and copy the same in ACTUAL MONTHS in Forecast Scenario
Now I want to lock the ACTUAL MONTHS in Forecast scenarios from users editing
Can this be implemented thru TM1 Perspective or TI process ?
Need guidance on that.
Need guidance on this.
Re: Locking Actual Months in Forecast Scenario from User's Editing
Posted: Sun May 09, 2021 8:22 am
by burnstripe
Create a cell security cube which refers to a year and period where actuals end or forecasts begin. (normally I store these in a control cube containing a list of system variables such as current reporting period)
You can apply a rule in the cell security cube which means users only have read access to actuals and write access to forecast.
Re: Locking Actual Months in Forecast Scenario from User's Editing
Posted: Sun May 09, 2021 1:55 pm
by SBK88
Thanks for replying,
Yes I have done that only, created a CELL SECURITY cube and have applied following rules, bt getting error while saving the rules
Can you check and suggest what is wrong here
(error with some parenthesis)
[{'1+11','2+10','3+9','4+8','5+7','6+6','7+5','8+4','9+3','10+2','11+1'}, {'Grp1','Grp2', 'Grp3', 'Grp4'}]
= S:
IF(DIMIX('year', !year) < DIMIX('year', DB('Control', 'Forecast Year', 'Comment')),
'Read',
IF(DIMIX('year', !year) = DIMIX('year', DB('Control', 'Forecast Year', 'Comment')),
IF(DIMIX('Scenario', !Scenario) < DIMIX('Scenario', DB('Control', 'Forecast Scenario', 'Comment')),
'Read',
IF(DIMIX('Scenario', !Scenario) = DIMIX('Scenario', DB('Control', 'Forecast Scenario', 'Comment')),
IF(DIMIX('Annual', !Annual) < DIMIX('Annual', DB('Control', 'Forecast Month', 'Comment')), 'Read',
''),
''),
),
''),
);
Re: Locking Actual Months in Forecast Scenario from User's Editing
Posted: Mon May 10, 2021 2:43 pm
by burnstripe
They'll be a syntax error.. difficult to see without looking the dimensions in the cell security cube. I'd also advise against using the TM1 Index as this may not always be in the expected sequential order, either just use the element name or create a separate index as an attribute
This is an example though, which assumes you have year elements saying 2011, 2012, 2013... and month elements saying 1, 2, 3... (If you have names for your months store an attribute for month/period number
# Set Read access for all historic years
[{'1+11','2+10','3+9','4+8','5+7','6+6','7+5','8+4','9+3','10+2','11+1'}, {'Grp1','Grp2', 'Grp3', 'Grp4'}] = S:
IF( !Year @< DB('Control', 'Forecast Year', 'Comment')
, 'Read'
, Continue);
# Set Write access for all future years
[{'1+11','2+10','3+9','4+8','5+7','6+6','7+5','8+4','9+3','10+2','11+1'}, {'Grp1','Grp2', 'Grp3', 'Grp4'}] = S:
IF( !Year @> DB('Control', 'Forecast Year', 'Comment')
, 'Write'
, Continue);
# Set Write for current forecast month and future months in current year
# Set Read for prior months in current year
[{'1+11','2+10','3+9','4+8','5+7','6+6','7+5','8+4','9+3','10+2','11+1'}, {'Grp1','Grp2', 'Grp3', 'Grp4'}] = S:
IF (!Year @= DB('Control', 'Forecast Year', 'Comment')
, IF( !Month @>= DB('Control', Forecast Month', 'Comment')
, 'Write'
, 'Read'
, Continue);
Re: Locking Actual Months in Forecast Scenario from User's Editing
Posted: Mon May 10, 2021 3:55 pm
by PavoGa
Have you looked at the TI CubeDataReservation functions? These will apply security to any slice of a cube and can be managed with TIs.
I've tested them to see how they work, but have not actually used them in practice, so not familiar with their pros and cons. They did not seem overly difficult use.