将“方案规划范围”时间范围和模块的“规划和预测准备工作”配置任务信息作为表达式公开,这些表达式允许您指定以下信息:
模块规划起始年份:如果为当前财政年度,则返回整数值 "1",如果为下一财政年度,则返回整数值 "0"。
注:
“模块起始年份”、“模块结束年份”、“模块起始期间”、“模块结束期间”和“模块规划起始年份”仅对 Planning 模块和战略性人员规划应用程序有效,并且需要遵循 "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 可以是键入的方案成员,也可以是 Calculation Manager 运行时提示输入成员类型的变量。成员必须用双引号括起来。例如 [[getStartYear("Actual")]]。
ScenarioName 还可以是以下格式的替代变量:
getSubVarValue("CubeName", "SubstitutionVariableName") 返回在 CubeName 定义的多维数据集级别给定替代变量的替代变量值
getSubVarValue("SubstitutionVariableName") 返回在所有多维数据集的应用程序级别给定替代变量的替代变量值
CubeName 和 SubstitutionVariableName 必须括在双引号中,请勿使用 & 或 {}。请参阅下面的示例 3 和示例 4。
模块名
ModuleName 必须是当前模块在 Planning 和战略性人员规划中的预定义名称。这些使用 ModuleName 作为参数的表达式使用 ScenarioName 的“规划和预测准备工作”配置任务时间范围信息,对于规划和预测方案,时间范围在应用程序的每个模块中是不同的。
除规划和预测之外的其他方案也可以在这些表达式中引用,但是只能返回在维编辑器中为“方案规划范围”设置的时间范围,该时间范围在应用程序的所有模块中是相同的。有关“方案规划范围”的详细信息,请参阅“关于方案”。
“规划起始年份”是另一个特定于模块规范方案的“规划和预测准备工作”配置任务。此表达式根据其设置返回值,例如,如果设置为当前财政年度,则返回整数值 "1",如果设置为下一财政年度,则返回 "0"。此表达式仅在条件语句上下文中可用,因为它不会将维成员作为值返回。请参阅下面的示例 5。
ModuleName 的有效值如下,并且适用于特定业务流程:
表 9-4 有效的 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