シナリオ・プランニング範囲の時間範囲およびモジュールの「プランニングと予測の準備」構成タスク情報を式として公開し、次のことを指定できます:
モジュール・プラン開始年: 「現在の会計年」の場合は"1"、「次の会計年」の場合は"0"の整数値を返します。
注:
モジュール開始年、モジュール終了年、モジュール開始期間、モジュール終了期間およびモジュール・プラン開始年は、PlanningモジュールおよびStrategic Workforce 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およびStrategic Workforce Planningの現在のモジュールの事前定義済名である必要があります。パラメータとしてModuleNameを使用するこれらの式は、ScenarioNameの「プランニングと予測の準備」構成タスクの時間範囲情報を使用し、アプリケーション内で計画および予測シナリオに対してモジュールごとに時間範囲が異なる場合があります。
計画および予測の他のシナリオも、これらの式で参照できますが、ディメンション・エディタでシナリオ・プランニング範囲に対して設定された時間範囲のみを返し、アプリケーション内のすべてのモジュールに対して同じになります。シナリオ・プランニング範囲の詳細は、シナリオについてを参照してください。
「プラン開始年」は、別の「プランニングと予測の準備」構成タスクであり、モジュールの計画シナリオに固有です。この式は、「現在の会計年」に設定されている場合は"1"、「次の会計年」に設定されている場合は"0"の整数値を返すように、その設定に関連した値を返します。この式は、値としてディメンション・メンバーを返さないので、条件文のコンテキスト内でのみ使用できます。次の例5を参照してください。
ModuleNameの有効な値は次のとおりであり、特定のビジネス・プロセスに適用できます:
表9-4 有効なModuleNameの値
| ビジネス・プロセス | 有効なModuleNameの値 |
|---|---|
| Planningモジュール |
|
| Strategic Workforce 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
により、次のスクリプトが作成されます。ここでは、「次の会計年」に設定されている場合はisPlanStartYearSameAsCurrentFiscalYearが"0"の整数を返すため、最初の条件付きテスト(IF)は失敗して実行されず、2番目の条件付きテスト(ELSEIF)が成功して実行されるように、要員モジュールの「プランニングと予測の準備」構成タスクにより「プラン開始年」が「次の会計年」に設定されています:
FIX("OEP_Plan","OEP_Working", FY20:FY24)
"Bonus"
(
IF(0 == 1)
"Bonus" = "Salary" * 0.2;
ELSEIF(0 == 0)
"Bonus" = "Salary" * 0.3;
)
ENDFIX