Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Intersection number 1 will have dollar amount which are remained to be spent for the next year.
Client enters the duration months.
The start date is interfaced from a seperate interface.
The requirement is to spread or allocate the remain to spend amount based on the start date to number of months
(duration months).
To be more clear :
for example : #int1 : Remaint to spend is $1,00,000 #int 2: duration months is 10 and #int3: start date is
07/01/2016.
so the business rule should spread or allocate $1M/10 = $100,000 each to Jul, August, sep, oct, nov, dec of
2016 and jan thru june of 2017.
The start date is stored as 20160107. I need to map 2016 to FY16 etc. I am not sure if I am thinking in right way.
Thanks
SV
118 Views
Tags:
I am not part of development, but one of my friend has documented some thing
related to dates in the link.
Hyperion Planning and More...: Why these dates functions are not working for my
Planning Application
Thanks,
Mady
o
o
Thanks
SV
o
o
Thanks
SV
o
o
From what I understand it is very doable as I have developed something very similar
in the past. I was depreciating assets at a certain rate over period and years.
I would start with 3 accounts as you stated above. But for the date I used Smartlist to
for the users to select the year and the period.
Are you having issues with the calculation or more on how to go about it writing the
calculation?
Regards
Jimmy
o
o
Its is almost similar, but the startdate, duration months and Remain to spend are
members of a non-account dimension by the name Logistics.
Account member for this case is a task which has a status via smartlist and it has a
start date, duration months and dollar amount.
So the requirement is to look for the task`s start date and spread the dollar amount
based on the duration months to those many months beginning start year and month.
For example a tasks start date is 08/01/2017 and duration is 15 months and dollar
amount is $300,000. So the rule should spread $20,000 to all the months from
*********************************************************************
*********************************************************************
************************************
"BegBalance"
VarYear1 = @ROUND(VarStartDate/10000,0);
VarMonth1 = @ROUND((VarStartDate-VarYear1*10000)/100,0);
VarDate1 = VarStartDate-(VarYear1*10000+VarMonth1*100);
VarMonAlloc = VarRTS/VarDurMonths;
ENDIF ;
ENDFIX;
*********************************************************************
*********************************************************************
*************************************************
Now the next part is to spread VarMonAlloc to all the VarstartYear ->VarStartMonth
increasing until it reached VarDurMonths.
Thanks
SV
o
o
If you've Calc Manager 11.1.2.3.502 and above then it has some date functions which can perform date
addition. The issue for you will be is to determine when to swap years. When I did this once, I knew
that planners can't plan for more than 2 years, so I had that flexibility to fix years and perform 12duration > 0 logic. If it is true then for current year start from start month till December. next year
start from jan till end month.
You can try that logic, or you'll need a custom cdf which can compare years. I did create one which can
compare years. Essbase String to Number CDF ~ Oracle - Hyperion Labs...... get the alias of current
member and compare it with end year and run your logic.
Regards
Celvin Kattookaran
o
o
Please note that the date is actually stored as YYYYMMDD not as you have said,
regardless if you have your dates as MM/DD/YYYY or DD/MM/YYYY.
In Calc Manger there is a CDF called @CalcMgrAddMonths that you could use.
End Date then make what ever you are calculation equal to remaining spend /
duration.
So in your example you would get $100,000 only in the months that fall in the range
between the start and end date. So your start date of July 1st would be 20160701, it
would add 10 months to get an end date of 20170501 (1st May 2017). These dates can
then be tested against the Period End Dates you would have set against each of your
Year and Month combinations and only place data between the range.
Thanks
Anthony
o
o
SV
o
o
I actually have an end date already. I am calculating the duration months based on the
start date and enddate (@HSpDateDiff function).
I kind of unclear on your suggestion of creating -- system where I have year and
month combinations. How do I do it ?
Thanks
SV
o
o
I tried something like this .... I first wanted to just do it for one Entity (member with
CC_*******) and one program (PR_*********) combination if it works then I will
repeat... The year might be still an issue here ..
*********************************************************************
***************************************
//ESS_LOCALE English_UnitedStates.Latin1@Binary
VAR VarYear1, VarMonth1, VarDate1, VarStartDate, VarStartYear, VarStartMonth,
VarNoOfDays, VarRTS, VarMonAlloc;
VAR VarDurMonths =0;
FIX ("Current Service Level" , "FT_0" , "FN_00000" , "LO_000000" , "FD_200" ,
"Stage 1" , "Budget" , &ProposedYear,"Start Date","Duration Months","CIP Remain
To Spend", "CC_00000", "PR_AB000000" );
"BegBalance"
(
IF (@ISMBR(@CHILDREN(("Total CIP Task"))))
VarYear1 = @ROUND(VarStartDate/10000,0);
VarMonth1 = @ROUND((VarStartDate-VarYear1*10000)/100,0);
VarDate1 = VarStartDate-(VarYear1*10000+VarMonth1*100);
VarMonAlloc = VarRTS/VarDurMonths;
LOOP (VarDurMonths)
VarYear1->VarMonth1 = VarMonAlloc;
ENDLOOP;
ENDIF ;
)
ENDFIX;
*********************************************************************
*******************************************
I am not sure If I am going in the right direction. And also it throws an error. May be
issue with LOOP. Error: 1200324 Error compiling formula for [BegBalance] (line 24):
operator expected after [LOOP]
TIA .. !!
Thanks
SV
o
o
Regards
Celvin Kattookaran
o
o