将“方案规划范围”时间范围和模块的“规划和预测准备工作”配置任务信息作为表达式公开,这些表达式允许您指定以下信息:
模块规划起始年份:如果为当前财政年度,则返回整数值 "1",如果为下一财政年度,则返回整数值 "0"。
注:
“模块起始年份”、“模块结束年份”、“模块起始期间”、“模块结束期间”和“模块规划起始年份”仅对 Planning 模块和 Oracle Strategic Workforce Planning Cloud 应用程序有效,并且需要遵循 "PlanningFunctions" 语法。
Calculation Manager 语法:
[[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")]]
方案名称
ScenarioName
可以是键入的方案成员,也可以是 Oracle Hyperion Calculation Manager 运行时提示输入成员类型的变量。成员必须用双引号括起来。例如 [[getStartYear("Actual")]]
。
ScenarioName
还可以是以下格式的替代变量:
getSubVarValue("CubeName", "SubstitutionVariableName")
返回在 CubeName
定义的多维数据集级别给定替代变量的替代变量值
getSubVarValue("SubstitutionVariableName")
返回在所有多维数据集的应用程序级别给定替代变量的替代变量值
CubeName
和 SubstitutionVariableName
必须括在双引号中,请勿使用 & 或 {}。请参阅下面的示例 3 和示例 4。
模块名
ModuleName
必须是当前模块在 Oracle Hyperion Planning 和战略性人员规划中的预定义名称。这些使用 ModuleName
作为参数的表达式使用 ScenarioName
的“规划和预测准备工作”配置任务时间范围信息,对于规划和预测方案,时间范围在应用程序的每个模块中是不同的。
除规划和预测之外的其他方案也可以在这些表达式中引用,但是只能返回在维编辑器中为“方案规划范围”设置的时间范围,该时间范围在应用程序的所有模块中是相同的。有关“方案规划范围”的详细信息,请参阅“关于方案”。
“规划起始年份”是另一个特定于模块规范方案的“规划和预测准备工作”配置任务。此表达式根据其设置返回值,例如,如果设置为当前财政年度,则返回整数值 "1",如果设置为下一财政年度,则返回 "0"。此表达式仅在条件语句上下文中可用,因为它不会将维成员作为值返回。请参阅下面的示例 5。
ModuleName
的有效值如下,并且适用于特定业务流程:
表 8-8 有效的 ModuleName
值
业务流程 | 有效的 ModuleName 值 |
---|---|
Planning 模块 |
|
战略性人员规划 |
|
注:
ModuleName
值必须括在双引号内,并且不区分大小写。
示例 1
在以下语法中,{rtpScenario}
是 member 类型的运行时提示变量,其默认值为 actual:
FIX({rtpScenario}, [[getStartYear({rtpScenario})]]:[[getEndYear({rtpScenario})]], [[getStartMonth({rtpScenario})]]:[[getEndMonth({rtpScenario})]]) FIX ( Working, P_000, "111") "5800" = 5500; ENDFIX ENDFIX
将返回以下脚本:
FIX ("Actual", "FY10" : "FY18", "Jan" : "Dec") FIX (Working, P_000, "111") "5800" = 5500; ENDFIX ENDFIX
示例 2
以下语法:
FIX({rtpScenario}, [[PlanningFunctions.getModuleStartYear("CAPITAL",{rtpScenario})]]: [[PlanningFunctions.getModuleEndYear("CAPITAL",{rtpScenario})]] , "Jan" : "Dec") FIX(OEP_Working, P_000, "111") "5800" = 5500; ENDFIX ENDFIX
返回以下脚本,在其中“资本”模块的“规划和预测准备工作”配置任务分别将规范方案的起始和终止年份设置为 FY18 和 FY22:
FIX("OEP_Plan", "FY18" : "FY22", "Jan" : "Dec") FIX(OEP_Working, P_000, "111") "5800" = 5500; ENDFIX ENDFIX
示例 3
以下语法在多维数据集级别使用替代变量。在此示例中,Plan1
是多维数据集名称,CurrentMonth
是替代变量名称。
FIX ("OEP_Plan", [[getStartMonth(getSubVarValue("Plan1", "CurrentMonth"))]], "FY15", "BU Version_1", "No Currency", "No Entity", "No Grades") "Current" = 15; ENDFIX
这将生成以下脚本:
FIX ("OEP_Plan", "Jan", "FY15", "BU Version_1", "No Currency", "No Entity", "No Grades") "Current" = 15; ENDFIX
示例 4
以下语法在应用程序级别使用替代变量。在此示例中,CurrentMonth
是替代变量名称。
FIX ("OEP_Plan", [[getStartMonth(getSubVarValue("CurrentMonth"))]], "FY15", "BU Version_1", "No Currency", "No Entity", "No Grades") "Current" = 15; ENDFIX
这将生成以下脚本:
FIX ("OEP_Plan", "Jan", "FY15", "BU Version_1", "No Currency", "No Entity", "No Grades") "Current" = 15; ENDFIX
示例 5
以下语法:
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
生成以下脚本,在其中“人员”模块的“规划和预测准备工作”配置任务将“规划起始年份”设置为下一财政年度,因此第一个条件测试 (IF) 会失败并且不会执行,而第二个条件测试 (ELSEIF) 会通过并且会执行,因为当设置为下一财政年度时 isPlanStartYearSameAsCurrentFiscalYear
返回整数 "0":
FIX("OEP_Plan","OEP_Working", FY20:FY24) "Bonus" ( IF(0 == 1) "Bonus" = "Salary" * 0.2; ELSEIF(0 == 0) "Bonus" = "Salary" * 0.3; ) ENDFIX