Scenarios

Expose Scenario Planning Range time horizon and Module Planning and Forecast Preparation configuration task information as expressions, which allow you to specify the following:

  • Start Year: Returns the start year in string format for the given scenario.
  • End Year: Returns the end year in string format for the given scenario.
  • Start Month: Returns the start month in string format for the given scenario.
  • End Month: Returns the end month in string format for the given scenario.
  • Module Start Year: Returns the start year in string format for the given module and scenario.
  • Module End Year: Returns the end year in string format for the given module and scenario.
  • Module Start Period: Returns the start period in string for the given module and scenario.
  • Module End Period: Returns the end period in string format for the given module and scenario.
  • Module Plan Start Year: Returns an integer value of "1" if Current Fiscal Year and "0" if Next Fiscal Year.

Note:

Module Start Year, Module End Year, Module Start Period, Module End Period, and Module Plan Start Year are only valid for Planning Modules and Strategic Workforce Planning applications and require the "PlanningFunctions" syntax.

Calculation Manager Syntax:

[[getStartYear("ScenarioName")]]
[[getEndYear("ScenarioName")]]
[[getStartMonth("ScenarioName")]]
[[getEndMonth("ScenarioName")]]
[[PlanningFunctions.getModuleStartYear("ModuleName","ScenarioName")]]
[[PlanningFunctions.getModuleEndYear("ModuleName","ScenarioName")]] 
[[PlanningFunctions.getModuleStartPeriod("ModuleName","ScenarioName")]] 
[[PlanningFunctions.getModuleEndPeriod("ModuleName","ScenarioName")]] 
[[PlanningFunctions.isPlanStartYearSameAsCurrentFiscalYear("ModuleName")]]
  

Scenario Name

ScenarioName can be a typed in Scenario member, or a Calculation Manager run-time prompt member type variable. The member must be enclosed in double quotes. For example, [[getStartYear("Actual")]].

ScenarioName can also be a substitution variable in the following formats:

  • getSubVarValue("CubeName", "SubstitutionVariableName") returns the substitution variable value for a given substitution variable at the cube level defined by the CubeName

  • getSubVarValue("SubstitutionVariableName") returns the substitution variable value for a given substitution variable at the application level for all cubes

The CubeName and SubstitutionVariableName must be enclosed in double quotes, do not use & or {}. See Example 3 and Example 4 below.

Module Name

ModuleName must be a pre-defined name of a current Module in Planning and Strategic Workforce Planning. These expressions using ModuleName as a parameter use the Planning and Forecast Preparation configuration tasks time horizon information for ScenarioName, which may have different time horizons per Module within an application for the Plan and Forecast Scenarios.

Other Scenarios beyond Plan and Forecast can also be referenced in these expressions, but will only return the time horizon set for the Scenario Planning Range in the dimension editor, which will be the same for all Modules within the application. See About Scenarios for more information on the Scenario Planning Range.

The Plan Start Year is another Planning and Forecast Preparation configuration task that is specific to the Plan Scenario for Modules. This expression returns a value relative to its setting such that it returns an integer value of "1" if set to Current Fiscal Year and "0" if set to Next Fiscal Year. This expression is only available within the context of a conditional statement as it does not return a dimension member as a value. See Example 5 below.

Valid values for ModuleName are as follows and are applicable to the specific business process:

Table 10-4 Valid ModuleName Values

Business Process Valid ModuleName Value
Planning Modules
  • "Capital"
  • "Financials"
  • "Projects"
  • "Workforce"
Strategic Workforce Planning
  • "Strategic Workforce"
  • "Workforce"

Note:

The ModuleName value must be enclosed in double quotes and is not case-sensitive.

Example 1

The following syntax, where {rtpScenario} is a run-time prompt variable of type member with a default value of actual:

FIX({rtpScenario}, [[getStartYear({rtpScenario})]]:[[getEndYear({rtpScenario})]],
   [[getStartMonth({rtpScenario})]]:[[getEndMonth({rtpScenario})]])
      FIX ( Working, P_000, "111")
        "5800" = 5500;
      ENDFIX
ENDFIX  

returns the following script:

FIX ("Actual", "FY10" : "FY18", "Jan" : "Dec") 
    FIX (Working, P_000, "111") 
      "5800" = 5500;
    ENDFIX 
ENDFIX

Example 2

The following syntax:

FIX({rtpScenario}, [[PlanningFunctions.getModuleStartYear("CAPITAL",{rtpScenario})]]:
[[PlanningFunctions.getModuleEndYear("CAPITAL",{rtpScenario})]] , "Jan" : "Dec")
  FIX(OEP_Working, P_000, "111")
    "5800" = 5500;
  ENDFIX
ENDFIX

returns the following script, where the Capital module Planning and Forecast Preparation configuration task set the Start and End Years for FY18 and FY22, respectively, for the Plan Scenario:

FIX("OEP_Plan", "FY18" : "FY22", "Jan" : "Dec")
  FIX(OEP_Working, P_000, "111")
    "5800" = 5500;
  ENDFIX
ENDFIX

Example 3

The following syntax uses a substitution variable at the cube level. In this example, Plan1 is the cube name and CurrentMonth is the substitution variable name.

FIX ("OEP_Plan", [[getStartMonth(getSubVarValue("Plan1", "CurrentMonth"))]], "FY15", 
"BU Version_1", "No Currency", "No Entity", "No Grades") 
"Current" = 15; 
ENDFIX

This produces the following script:

FIX ("OEP_Plan", "Jan", "FY15", "BU Version_1", "No Currency", "No Entity", "No 
Grades") 
"Current" = 15; 
ENDFIX

Example 4

The following syntax uses a substitution variable at the application level. In this example, CurrentMonth is the substitution variable name.

FIX ("OEP_Plan", [[getStartMonth(getSubVarValue("CurrentMonth"))]], "FY15", "BU 
Version_1", "No Currency", "No Entity", "No Grades") 
"Current" = 15; 
ENDFIX 

This produces the following script:

FIX ("OEP_Plan", "Jan", "FY15", "BU Version_1", "No Currency", "No Entity", "No 
Grades") 
"Current" = 15; 
ENDFIX

Example 5

The following syntax:

FIX("OEP_Plan","OEP_Working",FY20:FY24)
     "Bonus"
     (
     IF([[PlanningFunctions.isPlanStartYearSameAsCurrentFiscalYear ("Workspace")]] == 1)
	      "Bonus" = "Salary" * 0.2;
     ELSEIF([[PlanningFunctions.isPlanStartYearSameAsCurrentFiscalYear ("Workforce")]] == 0)
	      "Bonus" = "Salary" * 0.3;
     )
ENDFIX

produces the following script where the Workforce module Planning and Forecast Preparation configuration task has set the Plan Start Year to Next Fiscal Year such that first conditional test (IF) fails and is not executed while the second conditional test (ELSEIF) passes and is executed since the isPlanStartYearSameAsCurrentFiscalYear returns an integer of "0" if set to Next Fiscal Year:

FIX("OEP_Plan","OEP_Working", FY20:FY24)
     "Bonus"
     (
     IF(0 == 1)
	      "Bonus" = "Salary" * 0.2;
     ELSEIF(0 == 0)
	      "Bonus" = "Salary" * 0.3;
     )
ENDFIX