on 02-25-2014 3:20 AM
Hi Experts,
We are implementing BPC 10 NW - release 801 level 3 - we are building a forecasting solution whereby we need a script that can roll-over actuals+forecast values from 1 period to the next.
I have attached a spreadsheet explaining how forecasting / actuals work and we need help or any guidance on how the script logic should look like if indeed it's the best way to archive the goal.
For example:
Start of a project - Version 0 / P1
Budget Actual Forecast - P1 P2 P3 P4 and so on
20000 0 20000 1000 1000 1000 2000
July - Version P2
Budget Actual Forecast - P1 P2 P3 P4 and so on
20000 900 19100 900 (actual) 1050 1050 2000
Aug - Version P3
Budget Actual Forecast - P1 P2 P3 P4 and so on
20000 1900 19100 900 (actual) 1000 (actual) 1100 2000
Any help will be much appreciated on how to archive this scenario.
Thx,
Shane
But in order to do this they must be in the same dimension right??
If so do you have a sample of the script logic for the above scenario
thx again for your help Vadim
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
In my original posting (top of the page) i have given an example of the beginning of the project v0/v1 which has all forecast data and no actuals and then we need a scrip (as per your explination) whereby we Need to copy this forecast actual months from ACTUAL and planned months from previous forecast to version 2 and then in aug (forecast version 3) etc etc
hope that clear
Simple example:
We have:
ACTUAL 2013.01-2013.09
FORECAST08 2013.01-2013.08 from ACTUAL and 2013.09-2013.12 - planned
We want to create:
FORECAST09 2013.01-2013.09 from ACTUAL and 2013.10-2013.12 - from FORECAST08
Then the script will be:
//Clear data to be able to run multiple times
*XDIM_MEMBERSET CATEGORY=FORECAST09
*XDIM_MEMBERSET TIME=BAS(2013.TOTAL)
*WHEN CATEGORY
*IS *
*REC(EXPRESSION=0)
*ENDWHEN
//Copy from ACTUAL 2013.01-2013.09
*XDIM_MEMBERSET CATEGORY=ACTUAL
*XDIM_MEMBERSET TIME=2013.01,2013.02,2013.03,2013.04,2013.05,2013.06,2013.07,2013.08,2013.09
*WHEN CATEGORY
*IS *
*REC(EXPRESSION=%VALUE%,CATEGORY=FORECAST09)
*ENDWHEN
//Copy from FORECAST08 2013.10-2013.12
*XDIM_MEMBERSET CATEGORY=FORECAST08
*XDIM_MEMBERSET TIME=2013.10,2013.11,2013.12
*WHEN CATEGORY
*IS *
*REC(EXPRESSION=%VALUE%,CATEGORY=FORECAST09)
*ENDWHEN
Vadim
Hi Vadim,
I have a question with regards to the below code - lets say for example this specific project has a forecast from 2013.10 thru to 2015.12 will all those periods need to be hard coded or is it possible to make the time dynamic for example: > (greater than) a specific period, in this case 2013.10
//Copy from FORECAST08 2013.10-2013.12
*XDIM_MEMBERSET CATEGORY=FORECAST08
*XDIM_MEMBERSET TIME=2013.10,2013.11,2013.12
*WHEN CATEGORY
*IS *
*REC(EXPRESSION=%VALUE%,CATEGORY=FORECAST09)
*ENDWHEN
And as we have 12 Forecast Versions - will we need to create 12 different script logic for each "roll-over" Version ??
Thx
Hi Shane,
You can dynamically choose all periods greater then a selected time period using a couple of select statements.
The first you'll need to return the TIMEID of the selected time period.
The second you'll need to return all members who's TIMEID is greater then the value returned in the first select statement.
You can then use all the values returned in the second select statement in your equation.
Let me know if you want any help on this.
Cheers,
Chris
Hi Shane,
The idea is to have some property of the category dimension to specify the first planned month. Example STARTMONTH. Also you can have property to specify previous forecast - PREVFCST Then using select you can:
//%CATEGORY_SET% - contains FORECAST09, STARTMONTH = 10, PREVFC=FORECAST08
*SELECT(%SM%,"[STARTMONTH]",CATEGORY,"[ID]='%CATEGORY_SET%')
//$YY$ - contain planning year selected by user from DM combobox
*SELECT(%FCSTMNTH%,"[ID]",TIME,"[ID]>'$YY$.%SM%'")
*SELECT(%ACTMNTH%,"[ID]",TIME,"[ID]<'$YY$.%SM%'")
*SELECT(%PF%,"[PREVFCST]",CATEGORY,"[ID]='%CATEGORY_SET%')
//To copy FORECASTXX we use
*XDIM_MEMBERSET CATEGORY=%PF%
*XDIM_MEMBERSET TIME=$YY$.%SM%,%FCSTMNTH%
//To copy ACTUAL we use
*XDIM_MEMBERSET CATEGORY=ACTUAL
*XDIM_MEMBERSET TIME=%ACTMNTH%
Vadim
Hi Vadim,
Not sure I follow with regards to the property for STARTMONTH and PREVFCST in the Dimension are you able to give me an example pls
I know you mentioned added complexity having 1 Dim for CATEGORY and 1 Dim for VERSION but we are unable to combine the 2 at the stage, I have tried altering your code to be:
//Clear data to be able to run multiple times
*XDIM_MEMBERSET F_VERSION=P9
*XDIM_MEMBERSET TIME=BAS(2013.TOTAL)
*WHEN F_VERSION
*IS *
*REC(EXPRESSION=0)
*ENDWHEN
//Copy from ACTUAL 2013.01-2013.09
*XDIM_MEMBERSET F_CATEGORY=ACTUAL
*XDIM_MEMBERSET TIME=2013.001,2013.002,2013.003,2013.004,2013.005,2013.006,2013.007,2013.008,2013.009
*WHEN F_CATEGORY
*IS *
*REC(EXPRESSION=%VALUE%,F_VERSION=P9)
*ENDWHEN
//Copy from FORECAST P8 2013.10-2013.12
*XDIM_MEMBERSET F_VERSION=P8
*XDIM_MEMBERSET TIME=2013.010,2013.011,2013.012
*WHEN F_VERSION
*IS *
*REC(EXPRESSION=%VALUE%,F_VERSION=P9)
*ENDWHEN
But it's bringing back zero records and always referencing back to P9 which is hard coded.
and how would you fill the property STARTMONTH and PREVFCST in the Dim with those values?
Hi Vadim,
As mentioned we now have 1 DIM with Forecast versions as member and it actually makes more sense - thx for pushing the subject.
I've validated the below logic and have a quick question:
So with regards to STARTMNTH and PREVFCST as DIM properties - would these need to be maintained or should they be a prompt when running the script?
//%CATEGORY_SET% - contains FORECAST09, STARTMONTH = 10, PREVFC=FORECAST08
*SELECT(%SM%,"[STARTMONTH]",CATEGORY,"[ID]='%CATEGORY_SET%')
//$YY$ - contain planning year selected by user from DM combobox
*SELECT(%FCSTMNTH%,"[ID]",TIME,"[ID]>'$YY$.%SM%'")
*SELECT(%ACTMNTH%,"[ID]",TIME,"[ID]<'$YY$.%SM%'")
*SELECT(%PF%,"[PREVFCST]",CATEGORY,"[ID]='%CATEGORY_SET%')
//To copy FORECASTXX we use
*XDIM_MEMBERSET CATEGORY=%PF%
*XDIM_MEMBERSET TIME=$YY$.%SM%,%FCSTMNTH%
//To copy ACTUAL we use
*XDIM_MEMBERSET CATEGORY=ACTUAL
*XDIM_MEMBERSET TIME=%ACTMNTH%
Ups, yes I forget to include some year dependent conditions, the full selection line will be like:
*SELECT(%ACTMNTH%,"[ID]",TIME,"[ID]<'$YY$.%SM%' AND [YEAR]='$YY$' AND [CALC]='N'")
the same for other selection:
*SELECT(%FCSTMNTH%,"[ID]",TIME,"[ID]>'$YY$.%SM%' AND [YEAR]='$YY$' AND [CALC]='N'")
Hi Vadim
I've maintained ACTMNTH & PREVFCST in the CATEGORY Dim as follows:
PREVFCST STARTMNTH
P1 Forecast Version 1 | 1 |
P2 Forecast Version 2 P1 2
P3 Forecast Version 3 P2 3
P4 Forecast Version 4 P3 4
P5 Forecast Version 5 P4 5
P6 Forecast Version 6 P5 6
P7 Forecast Version 7 P6 7
P8 Forecast Version 8 P7 8
P9 Forecast Version 9 P8 9
P10 Forecast Version 10 P9 10
P11 Forecast Version 11 P10 11
P12 Forecast Version 12 P11 12
When I run the below script it returns zero results - am I missing something, and the only prompt I have is CATEGORY, can you pls advise? |
//%CATEGORY_SET% - contains Forecast P9, STARTMNTH = 10, PREVFC=P8
*SELECT(%SM%,"[STARTMNTH]",F_CATEGORY,"[ID]='%F_CATEGORY_SET%')
//$YY$ - contain planning year selected by user from DM combobox
*SELECT(%FCSTMNTH%,"[ID]",TIME,"[ID]>'$YY$.%SM%' AND [YEAR]='$YY$' AND [CALC]='N'")
*SELECT(%ACTMNTH%,"[ID]",TIME,"[ID]<'$YY$.%SM%' AND [YEAR]='$YY$' AND [CALC]='N'")
*SELECT(%PF%,"[PREVFCST]",F_CATEGORY,"[ID]='%F_CATEGORY_SET%')
//To copy FORECAST XX we use
*XDIM_MEMBERSET F_CATEGORY=%PF%
*XDIM_MEMBERSET TIME=$YY$.%SM%,%FCSTMNTH%
//To copy ACTUAL we use
*XDIM_MEMBERSET F_CATEGORY=ACTUAL
*XDIM_MEMBERSET TIME=%ACTMNTH
Ups, looks like you don't read the provided document about UJKT usage:
You need to properly fill:
PARAM field: YY=2014 this will be used as a value of $YY$ variable.
Data Region: F_CATEGORY=P9 this will be used as a value of %F_CATEGORY_SET% variable
Also for UJKT don show screenshot, just copy contents of:
PARAM
Data Region
Script text
Log
Please post results
And don't forget to correct values of STARTMNTH property - have to be a month part of TIME ID.
Vadim
P.S. Don't spend time on DM combobox logic, first ensure that everything is running in UJKT
Hi Vadim
I did correct the STARTMNTH property to 001 002, etc (thx)
PARAM - YY=2014
DATA REGION - F_CATEGORY=P9
SCRIPT TEXT
//%CATEGORY_SET% - contains P9, STARTMNTH = 10, PREVFC=P8
*SELECT(%SM%,"[STARTMNTH]",F_CATEGORY,"[ID]='%F_CATEGORY_SET%')
//$YY$ - contain planning year selected by user from DM combobox
*SELECT(%FCSTMNTH%,"[ID]",TIME,"[ID]>'$YY$.%SM%' AND [YEAR]='$YY$' AND [CALC]='N'")
*SELECT(%ACTMNTH%,"[ID]",TIME,"[ID]<'$YY$.%SM%' AND [YEAR]='$YY$' AND [CALC]='N'")
*SELECT(%PF%,"[PREVFCST]",F_CATEGORY,"[ID]='%F_CATEGORY_SET%')
//To copy FORECAST XX we use
*XDIM_MEMBERSET F_CATEGORY=%PF%
*XDIM_MEMBERSET TIME=$YY$.%SM%,%FCSTMNTH%
//To copy ACTUAL we use
*XDIM_MEMBERSET F_CATEGORY=ACTUAL
*XDIM_MEMBERSET TIME=%ACTMNTH%
LOG
LGX:
*XDIM_MEMBERSET F_CATEGORY=P8
*XDIM_MEMBERSET TIME=2014.009,2014.010,2014.011,2014.012
*XDIM_MEMBERSET F_CATEGORY=ACTUAL
*XDIM_MEMBERSET TIME=2014.001,2014.002,2014.003,2014.004,2014.005,2014.006,2014.007,2014.008
-------------------------------------------------------------------------------------------------------------------------------------
LOG:
LOG BEGIN TIME:2014-03-07 16:51:17
FILE:\ROOT\WEBFOLDERS\F_COUNCIL \ADMINAPP\Forecasting\TEST.LGF
USER:096655
APPSET:F_COUNCIL
APPLICATION:Forecasting
SCRIPT RUNNING TIME IN TOTAL:0.32 s.
LOG END TIME:2014-03-07 16:51:17
As you can see the result in
LGX:
*XDIM_MEMBERSET F_CATEGORY=P8
*XDIM_MEMBERSET TIME=2014.009,2014.010,2014.011,2014.012
*XDIM_MEMBERSET F_CATEGORY=ACTUAL
*XDIM_MEMBERSET TIME=2014.001,2014.002,2014.003,2014.004,2014.005,2014.006,2014.007,2014.008
is fine, the scope is correct.
Then you need to add code (in bold) that will actually write values:
//%CATEGORY_SET% - contains P9, STARTMNTH = 10, PREVFC=P8
*SELECT(%SM%,"[STARTMNTH]",F_CATEGORY,"[ID]='%F_CATEGORY_SET%')
//$YY$ - contain planning year selected by user from DM combobox
*SELECT(%FCSTMNTH%,"[ID]",TIME,"[ID]>'$YY$.%SM%' AND [YEAR]='$YY$' AND [CALC]='N'")
*SELECT(%ACTMNTH%,"[ID]",TIME,"[ID]<'$YY$.%SM%' AND [YEAR]='$YY$' AND [CALC]='N'")
*SELECT(%PF%,"[PREVFCST]",F_CATEGORY,"[ID]='%F_CATEGORY_SET%')
//To copy FORECAST XX we use
*XDIM_MEMBERSET F_CATEGORY=%PF%
*XDIM_MEMBERSET TIME=$YY$.%SM%,%FCSTMNTH%
*WHEN F_CATEGORY
*IS *
*REC(EXPRESSION=%VALUE%,F_CATEGORY=%F_CATEGORY_SET%)
*ENDWHEN
//To copy ACTUAL we use
*XDIM_MEMBERSET F_CATEGORY=ACTUAL
*XDIM_MEMBERSET TIME=%ACTMNTH%
*WHEN F_CATEGORY
*IS *
*REC(EXPRESSION=%VALUE%,F_CATEGORY=%F_CATEGORY_SET%)
*ENDWHEN
Test it in UJCT!
B.R. Vadim
Hi Vadim,
pls see the LOG below:
LGX:
*XDIM_MEMBERSET F_CATEGORY=P8
*XDIM_MEMBERSET TIME=2014.009,2014.010,2014.011,2014.012
*WHEN F_CATEGORY
*IS *
*REC(EXPRESSION=%VALUE%,F_CATEGORY=P9)
*ENDWHEN
*XDIM_MEMBERSET F_CATEGORY=ACTUAL
*XDIM_MEMBERSET TIME=2014.001,2014.002,2014.003,2014.004,2014.005,2014.006,2014.007,2014.008
*WHEN F_CATEGORY
*IS *
*REC(EXPRESSION=%VALUE%,F_CATEGORY=P9)
*ENDWHEN
-------------------------------------------------------------------------------------------------------------------------------------
LOG:
LOG BEGIN TIME:2014-03-07 17:13:18
FILE:\ROOT\WEBFOLDERS\F_COUNCIL \ADMINAPP\Forecasting\TEST.LGF
USER:096655
APPSET:F_COUNCIL
APPLICATION:Forecasting
[INFO] GET_DIM_LIST(): I_APPL_ID="Forecasting", #dimensions=8
F_CATEGORY,F_ENTITY,F_PERSON,F_PROJECT,F_SECTION,F_WBSE,MEASURES,TIME
#dim_memberset=2
F_CATEGORY:P8,1 in total.
TIME:2014.009,2014.010,2014.011,2014.012,4 in total.
REC :%VALUE%
CALCULATION BEGIN:
QUERY PROCESSING DATA
QUERY TIME : 1002.01 ms. 72 RECORDS QUERIED OUT.
QUERY REFERENCE DATA
CALCULATION TIME IN TOTAL :232.96 ms.
72 RECORDS ARE GENERATED.
CALCULATION END.
ENDWHEN ACCUMULATION: 72 RECORDS ARE GENERATED.
DATA TO WRITE BACK:
F_CATEGORY F_ENTITY F_PERSON F_PROJECT F_SECTION F_WBSE TIME SIGNEDDATA
P9 4000 000000 A-000036 000 A-000036.1 2014.009 34.00
P9 4000 000000 A-000036 000 A-000036.1 2014.010 35.00
P9 4000 000000 A-000036 000 A-000036.1 2014.011 234.00
P9 4000 000000 A-000036 000 A-000036.1 2014.012 234.00
P9 4000 000000 A-000036 000 A-000036.1.01 2014.009 43.00
P9 4000 000000 A-000036 000 A-000036.1.01 2014.010 44.00
P9 4000 000000 A-000036 000 A-000036.1.01 2014.011 3333.00
P9 4000 000000 A-000036 000 A-000036.1.01 2014.012 3333.00
P9 4000 000000 A-000036 000 A-000036.1.01.01 2014.009 59.00
P9 4000 000000 A-000036 000 A-000036.1.01.01 2014.010 60.00
P9 4000 000000 A-000036 000 A-000036.1.01.01 2014.011 2222.00
P9 4000 000000 A-000036 000 A-000036.1.01.01 2014.012 2222.00
P9 4000 000000 A-000036 000 A-000036.1.01.01.01 2014.009 94.00
P9 4000 000000 A-000036 000 A-000036.1.01.01.01 2014.010 85.00
P9 4000 000000 A-000036 000 A-000036.1.01.01.01 2014.011 6733.00
P9 4000 000000 A-000036 000 A-000036.1.01.01.01 2014.012 6733.00
P9 4000 000000 A-000036 000 A-000036.1.01.01.02 2014.009 28.00
P9 4000 000000 A-000036 000 A-000036.1.01.01.02 2014.010 29.00
P9 4000 000000 A-000036 000 A-000036.1.01.01.02 2014.011 6767.00
P9 4000 000000 A-000036 000 A-000036.1.01.01.02 2014.012 6767.00
P9 4000 000000 A-000036 000 A-000036.1.01.02 2014.009 19.00
P9 4000 000000 A-000036 000 A-000036.1.01.02 2014.010 9876.00
P9 4000 000000 A-000036 000 A-000036.1.01.02 2014.011 9876.00
P9 4000 000000 A-000036 000 A-000036.1.01.02 2014.012 9876.00
P9 4000 000000 A-000036 000 A-000036.1.01.02.01 2014.009 222.00
P9 4000 000000 A-000036 000 A-000036.1.01.02.01 2014.010 222.00
P9 4000 000000 A-000036 000 A-000036.1.01.02.01 2014.011 222.00
P9 4000 000000 A-000036 000 A-000036.1.01.02.01 2014.012 222.00
P9 4000 000000 A-000036 000 A-000036.1.01.02.02 2014.009 789.00
P9 4000 000000 A-000036 000 A-000036.1.01.02.02 2014.010 789.00
P9 4000 000000 A-000036 000 A-000036.1.01.02.02 2014.011 789.00
P9 4000 000000 A-000036 000 A-000036.1.01.02.02 2014.012 789.00
P9 4000 000000 A-000036 000 A-000036.1.01.03 2014.009 654.00
P9 4000 000000 A-000036 000 A-000036.1.01.03 2014.010 654.00
P9 4000 000000 A-000036 000 A-000036.1.01.03 2014.011 654.00
P9 4000 000000 A-000036 000 A-000036.1.01.03 2014.012 654.00
P9 4000 000000 A-000036 000 A-000036.1.01.03.01 2014.009 3.00
P9 4000 000000 A-000036 000 A-000036.1.01.03.01 2014.010 3.00
P9 4000 000000 A-000036 000 A-000036.1.01.03.01 2014.011 3.00
P9 4000 000000 A-000036 000 A-000036.1.01.03.01 2014.012 3.00
P9 4000 000000 A-000036 000 A-000036.1.01.03.02 2014.009 22.00
P9 4000 000000 A-000036 000 A-000036.1.01.03.02 2014.010 22.00
P9 4000 000000 A-000036 000 A-000036.1.01.03.02 2014.011 22.00
P9 4000 000000 A-000036 000 A-000036.1.01.03.02 2014.012 22.00
P9 4000 000000 A-000036 000 A-000036.1.01.03.03 2014.009 67.00
P9 4000 000000 A-000036 000 A-000036.1.01.03.03 2014.010 67.00
P9 4000 000000 A-000036 000 A-000036.1.01.03.03 2014.011 67.00
P9 4000 000000 A-000036 000 A-000036.1.01.03.03 2014.012 67.00
P9 4000 000000 A-000036 000 A-000036.1.01.03.04 2014.009 897.00
P9 4000 000000 A-000036 000 A-000036.1.01.03.04 2014.010 897.00
P9 4000 000000 A-000036 000 A-000036.1.01.03.04 2014.011 897.00
P9 4000 000000 A-000036 000 A-000036.1.01.03.04 2014.012 897.00
P9 4000 000000 A-000036 000 A-000036.1.01.04 2014.009 111.00
P9 4000 000000 A-000036 000 A-000036.1.01.04 2014.010 111.00
P9 4000 000000 A-000036 000 A-000036.1.01.04 2014.011 111.00
P9 4000 000000 A-000036 000 A-000036.1.01.04 2014.012 111.00
P9 4000 000000 A-000036 000 A-000036.1.01.04.01 2014.009 383.00
P9 4000 000000 A-000036 000 A-000036.1.01.04.01 2014.010 383.00
P9 4000 000000 A-000036 000 A-000036.1.01.04.01 2014.011 383.00
P9 4000 000000 A-000036 000 A-000036.1.01.04.01 2014.012 383.00
P9 4000 000000 A-000036 000 A-000036.1.01.04.02 2014.009 643.00
P9 4000 000000 A-000036 000 A-000036.1.01.04.02 2014.010 643.00
P9 4000 000000 A-000036 000 A-000036.1.01.04.02 2014.011 643.00
P9 4000 000000 A-000036 000 A-000036.1.01.04.02 2014.012 643.00
P9 4000 000000 A-000036 000 A-000036.1.01.04.03 2014.009 434.00
P9 4000 000000 A-000036 000 A-000036.1.01.04.03 2014.010 434.00
P9 4000 000000 A-000036 000 A-000036.1.01.04.03 2014.011 434.00
P9 4000 000000 A-000036 000 A-000036.1.01.04.03 2014.012 434.00
P9 4000 000000 A-000036 000 A-000036.1.01.05 2014.009 88.00
P9 4000 000000 A-000036 000 A-000036.1.01.05 2014.010 88.00
P9 4000 000000 A-000036 000 A-000036.1.01.05 2014.011 88.00
P9 4000 000000 A-000036 000 A-000036.1.01.05 2014.012 88.00
72 RECORDS HAVE BEEN WRITTEN BACK.
WRITING TIME :1217.21 ms.
[INFO] GET_DIM_LIST(): I_APPL_ID="Forecasting", #dimensions=8
F_CATEGORY,F_ENTITY,F_PERSON,F_PROJECT,F_SECTION,F_WBSE,MEASURES,TIME
#dim_memberset=2
F_CATEGORY:ACTUAL,1 in total.
TIME:2014.001,2014.002,2014.003,2014.004,2014.005,...8 in total.
REC :%VALUE%
CALCULATION BEGIN:
QUERY PROCESSING DATA
QUERY TIME : 736.03 ms. 43 RECORDS QUERIED OUT.
QUERY REFERENCE DATA
CALCULATION TIME IN TOTAL :202.72 ms.
43 RECORDS ARE GENERATED.
CALCULATION END.
ENDWHEN ACCUMULATION: 43 RECORDS ARE GENERATED.
DATA TO WRITE BACK:
F_CATEGORY F_ENTITY F_PERSON F_PROJECT F_SECTION F_WBSE TIME SIGNEDDATA
P9 4000 000000 A-000001 000 A-000001.1.01 2014.008 409.09
P9 4000 000000 A-000001 000 A-000001.1.03 2014.005 605.00
P9 4000 000000 A-000001 000 A-000001.1.03 2014.007 275.00
P9 4000 000000 A-000001 000 A-000001.1.03 2014.008 6779.00
P9 4000 000000 A-000005 000 A-000005.1.01.06 2014.005 27520.00
P9 4000 000000 A-000005 000 A-000005.1.02.01 2014.008 5984.00
P9 4000 000000 A-000005 000 A-000005.1.04.01 2014.007 5500.00
P9 4000 000000 A-000005 000 A-000005.1.04.01 2014.008 500.00
P9 4000 000000 A-000005 000 A-000005.2.01 2014.008 9400.00
P9 4000 000000 A-000009 000 A-000009.1.01.01.01 2014.005 6300.00
P9 4000 000000 A-000011 000 A-000011.1.01.01.02 2014.005 37050.00
P9 4000 000000 A-000011 000 A-000011.1.01.01.02 2014.006 3600.00
P9 4000 000000 A-000011 000 A-000011.1.01.02 2014.005 7560.00
P9 4000 000000 A-000011 000 A-000011.1.01.02.01 2014.005 3990.00
P9 4000 000000 A-000011 000 A-000011.1.01.02.01 2014.006 - 3600.00
P9 4000 000000 A-000011 000 A-000011.1.01.02.07 2014.005 12425.00
P9 4000 000000 A-000011 000 A-000011.1.01.02.08 2014.005 5775.00
P9 4000 000000 A-000011 000 A-000011.1.02 2014.005 3400.00
P9 4000 000000 A-000011 000 A-000011.1.02 2014.008 800.00
P9 4000 000001 A-000015 000 A-000015.1.01.02 2014.005 3800.00
P9 4000 000001 A-000015 000 A-000015.1.01.02 2014.006 6840.00
P9 4000 000001 A-000019 000 A-000019.1.01.01.02 2014.007 1600.00
P9 4000 000000 A-000020 000 A-000020.1.01.01 2014.007 - 770.00
P9 4000 000000 A-000020 000 A-000020.1.01.01.01 2014.007 770.00
P9 4000 000001 A-000020 000 A-000020.1.01.01.02 2014.007 150.00
P9 4000 000000 A-000020 000 A-000020.2.01 2014.007 770.00
P9 4000 000001 A-000021 000 A-000021.1.01.01.01 2014.007 2850.00
P9 4000 000001 A-000022 000 A-000022.1.01.01.01 2014.007 75.00
P9 4000 000000 A-000026 001 A-000026.1.01.01.01 2014.007 4900.00
P9 4000 070359 A-000032 000 A-000032.1 2014.008 - 9400.00
P9 4000 000000 A-000032 000 A-000032.1.01.02 2014.008 9400.00
P9 4000 000000 A-000032 000 A-000032.1.01.05.01 2014.007 15500.00
P9 4000 000000 A-000032 000 A-000032.1.01.06.01 2014.008 45070.00
P9 4000 000000 A-000032 000 A-000032.1.02.01 2014.008 30406.00
P9 4000 000000 A-000032 000 A-000032.1.02.02 2014.008 4503.60
P9 4000 000000 A-000036 000 A-000036.1.01.01 2014.007 348840.00
P9 4000 000000 A-000036 000 A-000036.1.01.01 2014.008 188100.00
P9 4000 000000 A-000036 000 A-000036.1.01.05.01 2014.008 32250.00
P9 4000 000000 A-000036 000 A-000036.1.01.06.01 2014.008 3610.00
P9 4000 000000 A-000502 002 A-000502.1.01.01.01.01.1 2014.007 6000.00
P9 4000 000000 A-000502 002 A-000502.1.01.01.01.01.1 2014.008 2080.00
P9 4000 000000 A-000502 000 A-000502.1.01.02.01 2014.008 6875.00
P9 4000 000000 B-000001 000 B-000001.1.01.02 2014.008 100.00
43 RECORDS HAVE BEEN WRITTEN BACK.
WRITING TIME :1034.24 ms.
SCRIPT RUNNING TIME IN TOTAL:5.04 s.
LOG END TIME:2014-03-07 17:13:23
To make it work in DM package you have to edit DM advanced script (assuming you create DM for the chain /CPMB/DEFAULT_FORMULAS:
PROMPT(MESSAGE,"Create Forecast Based on Previous")
PROMPT(COMBOBOX,%YY%,"Select Forecast Year:",0,,{2014,2015,2016,2017,2018})
PROMPT(SELECTINPUT,%SELECTION%,,"Select the Forecast Version:","F_CATEGORY")
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,SUSER,%USER%)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,SAPPSET,%APPSET%)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,SAPP,%APP%)
INFO(%EQU%,=)
INFO(%TAB%,;)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,TAB,%TAB%)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,EQU,%EQU%)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,SELECTION,%SELECTION%)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,LOGICFILENAME,FORECAST.LGF)
TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,REPLACEPARAM,YY%EQU%%YY%)
Where FORECAST.LGF is the name of script file.
Vadim
Hi Vadim,
Another quick question pls (and everything is working fine - thx) once we have rolled-over the forecast is it possible to highlight the "ACTUAL" values that replace the Forecast values for the previous month so that the user can clearly see that it's an "ACTUAL" value and not a Forecast value?
Thx,
Shane
Thx Vadim,
I'm being doing some testing regards to the forecast roll-over script which as I mentioned works fine provided you are the same forecast year (Fiscal Year), the issue I have for example:
If I have project TEST and it started in 2013.011 and ends in 2014.004, I have forecast values for all periods so when I run the script I'm prompted to "select forecast year" and "select forecast version based on previous period"
So when I run from 2013.11 (forecast version P11) to 2013.12 (forecast version P12) that works fine but it's not working to roll-over from 2013.012 to 2014.001 - are you able to pls advise?
Thx
Shane
Hi Shane,
Project planning with project start and end ("If I have project TEST and it started in 2013.011 and ends in 2014.004,") is absolutely different story.
You have to describe requirements and may be not in this topic (open a new one).
In general - what is the year scope of your forecasting - 2 years or more? The scripts proposed are for single year scope.
Vadim
Thx Vadim - we have had to seperate them due to various calculations etc but are you able to help in regards to the forecast rollover (copy) ?
Cheers
shane
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Vadim,
I may have intercommunicated my issue - so for example if I have project A starting in Jul 2014 and Forecast Version 1, I'm forecasting my whole project that's going to take 15 months.
So as I want to keep version 1 in tact -> is it possible (without having to re forecast the whole project again) to roll-over Forecast version 1 into version 2, 3 , 4 etc
hope that clear?
Thx,
Shane
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Sorry forgot to mention that we Forecast versions P1 -> P12 and Category Actual / Budget / Forecast etc
Thx
Shane
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Shane,
After looking on the dimension structure (from e-mail) I can see a very strange approach:
You have a CATEGORY dimension with Actual, Budget, Forecast...
And you also have VERSION dimension (versions of forecast?)
It looks overcomplicated and creates misunderstanding...
Why not to have single CATEGORY dimension with members for Forecast versions?
Vadim
User | Count |
---|---|
11 | |
3 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.