How To : Enterprise Performance Management
How To : Enterprise Performance Management
How To : Enterprise Performance Management
Document Version
1.1
Last Updated:
Jan 2009
Enterprise Performance
Management
www.sdn.sap.com/irj/sdn/bpx-epm
1 Scenario
In this scenario, we will try to pass runtime parameters (called prompts) from data manager to script logic.
2 Introduction
There will be multiple scenarios where we want to get the user input and then, use that value in the script
logic calculation. For Example, users may want to pass the percentage value of the budget increase when
they execute the script logic, not hard-coded inside the script logic. As of Business Planning and
Consolidation 7.0 Version for NetWeaver Support Package 1 (scheduled to be released on Dec 12 2008),
we are supporting dynamic replacements inside script logic, which means values can be provided from
data manager and will be replaced dynamically during runtime of your script file.
This how to guide walks through a step-by-step example in the ApShell Planning cube. Please note you
must have appropriate NetWeaver BI and BPC authorizations to perform the required steps.
2. Go to transaction RSPC.
3. Click New.
16. Click OK
You dont have to create new process chain for each script file you want to execute. You can pass the script
file dynamically either in the data manager dynamic script (explained in section 3.3) of the package or
prompt the user for the script file (explained in Appendix section).
Please note that currently you can create only one Data Manager package per process chain.
1.
2.
Note that this dynamic replacement can also be used to pass multiple member values to the script
(you would pass one long string with all the values as you would type in the script logic).
Furthermore, you could even combine these parameters with the use of the START BADI keyword
in script logic, and pass parameters all the way from the user input through to your custom written
BAdI.
4 Appendix
4.1 Sample Source Code for Script Logic file:
*XDIM_MEMBERSET P_ACCT= CE0004020, CE0004010
*XDIM_MEMBERSET CATEGORY = ACTUAL
*XDIM_MEMBERSET TIME=2006.SEP
*XDIM_MEMBERSET ENTITY= C9000
*XDIM_MEMBERSET P_ACTIVITY=NONE
*XDIM_MEMBERSET P_DATASRC=UPLOAD
*XDIM_MEMBERSET RPTCURRENCY = LC
//Increase Wage and Salary & Personnel Exp. by entered percentage
[P_ACCT].[#CE0004020] = [P_ACCT].[CE0004020] * ( 1 + $WS_PERCT$ / 100)
[P_ACCT].[#CE0004010] = [P_ACCT].[CE0004010] * ( 1 + $EXP_PERCT$ / 100)
*COMMIT
REPLACEPARAM in the last TASK basically builds a look up table with variable name & its value
entered by the users. During execution of the script logic, wherever the variables appear in the script, they
will first replaced by the user entered value, before execution of the script.
4.3 Data Manager dynamic script to prompt for Script Logic file:
PROMPT(SELECTINPUT,,,,"%ENTITY_DIM%,%CATEGORY_DIM%,%CURRENCY_DIM%,%TIME_DIM%")
PROMPT(TEXT,%SCRIPT_FILE%,"Choose Script Logic File",)
PROMPT(TEXT,%WS_PERCT%,"Input W/S Percent in decimals",)
PROMPT(TEXT,%EXP_PERCT%,"Input Exp. Percent in decimals",)
INFO(%EQU%,=)
INFO(%TAB%,;)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,TAB,%TAB%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,EQU,%EQU%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,SUSER,%USER%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,SAPPSET,%APPSET%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,SAPP,%APP%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,SELECTION,%SELECTION%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,LOGICFILENAME,%SCRIPT_FILE%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,REPLACEPARAM,WS_PERCT%EQU%%WS_PERCT%%TAB%EXP_PERCT%EQU%%EXP
_PERCT%)
Adding Prompt for script logic file (shown in bold) will prompt the users to choose a script logic file which
they want to execute.