方案

将“方案规划范围”时间范围和模块的“规划和预测准备工作”配置任务信息作为表达式公开,这些表达式允许您指定以下信息:

  • 起始年份:以字符串格式返回给定方案的起始年份。
  • 结束年份:以字符串格式返回给定方案的结束年份。
  • 起始月份:以字符串格式返回给定方案的起始月份。
  • 结束月份:以字符串格式返回给定方案的结束月份。
  • 模块起始年份:以字符串格式返回给定模块和方案的起始年份。
  • 模块结束年份:以字符串格式返回给定模块和方案的结束年份。
  • 模块起始期间:以字符串格式返回给定模块和方案的起始期间。
  • 模块结束期间:以字符串格式返回给定模块和方案的结束期间。
  • 模块规划起始年份:如果为当前财政年度,则返回整数值 "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") 返回在所有多维数据集的应用程序级别给定替代变量的替代变量值

CubeNameSubstitutionVariableName 必须括在双引号中,请勿使用 & 或 {}。请参阅下面的示例 3 和示例 4。

模块名

ModuleName 必须是当前模块在 Planning战略性人员规划中的预定义名称。这些使用 ModuleName 作为参数的表达式使用 ScenarioName 的“规划和预测准备工作”配置任务时间范围信息,对于规划和预测方案,时间范围在应用程序的每个模块中是不同的。

除规划和预测之外的其他方案也可以在这些表达式中引用,但是只能返回在维编辑器中为“方案规划范围”设置的时间范围,该时间范围在应用程序的所有模块中是相同的。有关“方案规划范围”的详细信息,请参阅“关于方案”。

“规划起始年份”是另一个特定于模块规范方案的“规划和预测准备工作”配置任务。此表达式根据其设置返回值,例如,如果设置为当前财政年度,则返回整数值 "1",如果设置为下一财政年度,则返回 "0"。此表达式仅在条件语句上下文中可用,因为它不会将维成员作为值返回。请参阅下面的示例 5。

ModuleName 的有效值如下,并且适用于特定业务流程:

表 10-4 有效的 ModuleName

业务流程 有效的 ModuleName
Planning 模块
  • "Capital"
  • "Financials"
  • "Projects"
  • "Workforce"
战略性人员规划
  • "Strategic Workforce"
  • "Workforce"

注:

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