on ‎2019 Jun 28 4:37 PM
Dear experts,
I need to make a selection for a forecast period. The first month of the forecast is next to the last actual month and the last month is December in 4 years.
The selection schould be dynamic.
*SELECT (%FIRST_PLAN_PERIOD%,[PLANNING_PERIOD],VERSION,[ID] = %VE_201803090101)
*SELECT (%L_A_M%,[PREVMONTH],TIME,[ID] = %FIRST_PLAN_PERIOD%) //2018.03
*SELECT (%LAST_ACTUAL_MONTH%,[PREVMONTH],TIME,[ID] = %FIRST_PLAN_PERIOD%) //2018.03
*SELECT (%MY_YEAR%,[YEAR],TIME,[ID] = %FIRST_PLAN_PERIOD%) //2018
*SELECT (%NEXT_YEAR%,[YEAR],TIME,[PRIV_YEAR] = %MY_YEAR%)
*SELECT (%NEXT_2YEAR%,[YEAR],TIME,[PRIV_YEAR] = %NEXT_YEAR%)
*SELECT (%NEXT_3YEAR%,[YEAR],TIME,[PRIV_YEAR] = %NEXT_2YEAR%)
*SELECT (%NEXT_4YEAR%,[YEAR],TIME,[PRIV_YEAR] = %NEXT_3YEAR%)
*SELECT (%NEXT_5YEAR%,[YEAR],TIME,[PRIV_YEAR] = %NEXT_4YEAR%)
*SELECT (%LAST_PLAN_PERIOD%,[ID],TIME,[YEAR] = %NEXT_4YEAR% AND MONTHNUM = 12)
*SELECT (%FIRST_PERIOD_TIMEID%,[TIMEID],TIME,ID = %L_A_M%) //2018.03
*SELECT (%LAST_PLAN_PERIOD_TIMEID%,[TIMEID],TIME,[YEAR] = %NEXT_5YEAR% AND MONTHNUM = 12)
//*SELECT (%HOR%,[ID],TIME,ID> = %FIRST_PLAN_PERIOD% AND LEVEL = MONTH)
*SELECT (%FIRST_PLAN_PERIOD_TIMEID%,[ID],TIME,[TIMEID] = %FIRST_PLAN_PERIOD%)
//*SELECT (%HOR%,[ID],TIME,TIMEID > = %FIRST_PLAN_PERIOD_TIMEID% AND LEVEL = MONTH)
*SELECT (%HOR%,[ID],TIME,TIMEID>%FIRST_PERIOD_TIMEID% AND CALC = N)
*XDIM_MEMBERSET VERSION = VE_201803090101
*XDIM_MEMBERSET COMPANY = CO_0530006
*XDIM_MEMBERSET TIME = %LAST_ACTUAL_MONTH%
*XDIM_MEMBERSET ACCOUNT_PL = AC_ZRT005315
*XDIM_MEMBERSET TERM = TE_1,TE_2,TE_3,TE_4,TE_5,TE_6
//DATASOURCE All
//FOCUS ALL
//Partner All
//Vendor All
*FOR %T% = %HOR%
*WHEN ACCOUNT_PL
*IS *
*REC(EXPRESSION = %VALUE%*([ACCOUNT_PL].[AC_ZRT005233],[TIME].[%T%],[FOCUS].[FO_NA],[PARTNER].[PA_NA],[TERM].[TE_NA],[VENDOR].[VN_NA],[DATASOURCE].[DS_MANUAL],[RPTCURRENCY].[EUR_EUR]),ACCOUNT_PL = AC_ZRT005315,TIME = %T%)
*ENDWHEN
*NEXT
UJK_VALIDATION_EXCEPTION:No Value assigned to Dimension "TIME"
ComponentReleaseSP-LevelSupport packageSAP_BW7400020SAPKW74020CPMBPC8000021SAPK-80021INCPMBPCWe use SAP BusinessObjects EPM, Add-in for Microsoft Office
Version 10.0 SP 25 Patch2 .NET4
Calculation engine used: JAVASCRIPT
List of dimensions
ACCOUNT_PL (Accounts)
TIME
VERSION (Actual / Plan / Forecast)
COMPANY
DATASOURCE
FOCUS (Competence center / Business line)
MEASURE
RPTCURRENCY
TERM (Lifetime of the contract)
PARTNER (Client Segment)
Elements of VERSION are as follows:
IDVE_201803090101DECRIPTIONFORECAST 3+9CATEGORY_GROUPFORECASTNO_PLANNING_YEARS5PLANNING_PERIOD2018.04STRUCTURE_PERIOD2018.04UPDATE_RULEUPDATE_RULE_FORECASTYEARPARENTH1PARENTH2VE_H2PLANNINGNO_PREV_MON
Elemens of TIME are set as follows:ID2018.01BASE_PERIOD1LEVELMONTHMONTHNUM1PERIODJANPRIV_YEAR2017TIMEID20180100YEAR2018PARENTH12018.Q1PREVMONTH
2017.12
Request clarification before answering.
First error: instead of:
*SELECT (%FIRST_PLAN_PERIOD%,[PLANNING_PERIOD],VERSION,[ID] = %VE_201803090101)
Has to be:
*SELECT (%FIRST_PLAN_PERIOD%,[PLANNING_PERIOD],VERSION,[ID] = VE_201803090101)
"%" has to be removed!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
And in general, it's possible to create the script like this without using additional properties like PREVMONTH and PRIV_YEAR!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The idea of the script was to take a value for account AC_ZRT005315 from the %LAST_ACTUAL_MONTHS% and to multiply it with a factor AC_ZRT005233 and to write new data to the forecast periods.
The script schould be launched by DM package .
Now the script is working. Thank you very much!
Could you plase advise how can I set a forecast horizon without additional properties?
It would be great to have a lighter script
a.tkachova
Please read my blog: https://blogs.sap.com/2018/11/04/how-to-calculate-next-or-previous-time-member-in-bpc-script-logic/
You will see how to calculate prev/next without properties. For multiple years - just repeat the code!
Strange idea to use 2 variables with equal result:
*SELECT (%L_A_M%,[PREVMONTH],TIME,[ID] = %FIRST_PLAN_PERIOD%) //2018.03
*SELECT (%LAST_ACTUAL_MONTH%,[PREVMONTH],TIME,[ID] = %FIRST_PLAN_PERIOD%) //2018.03?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 7 | |
| 6 | |
| 4 | |
| 2 | |
| 2 | |
| 2 | |
| 2 | |
| 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.