FCCSImpact Status 函数

使用 @FCCSImpactStatus 函数,可以根据特定计算手动将指定方案、年份、期间和实体组合的状态更改为“受影响”。例如,如果系统在对某个特定实体计算“实际”方案的“净收入”值,您可能希望该系统也影响另一个名为“预测”的方案中同一年份和期间内的同一实例。无论当前状态为何,该函数都会将计算状态更改为“受影响”。

@FCCSImpactStatus 函数可用于可配置计算(插入规则)和按需规则。请参阅“使用可配置计算”和“使用按需规则”。

语法:

@FCCSImpactStatus(Scenario, Year, Period, Entity)

可为该函数选择以下参数:

  • 方案 - 单个成员。选择必须为 0 级成员。

  • 年份 - 单个成员。选择必须为 0 级成员。

  • 期间 - 单个成员。选择必须为 0 级成员(并且不得为 Q1 或 HY1 等父代)。

  • 实体 - 单个成员、函数或列表。支持 0 级成员和父代成员。

此函数支持 @CURRMBR、@PREVSIBLING、@NEXTSIBLING、@LIST 等函数。

对于实体,支持列表类型为“成员集”(使用特定成员名称,而不是 @CURRMBR("Entity"))的函数。例如:

  • 后代(包括)

  • 子代(包括)

  • 祖先(包括)

  • 同级(包括)

  • 父代(包括)

  • 零级后代

  • 左侧同级(包括)

  • 右侧同级(包括)

  • 上一个 0 级成员

  • 下一个 0 级成员

  • 上一层代

  • 下一层代

  • @List

对于方案、年份、期间和实体维,支持 @CURRMBR 以指示与正在处理的当前成员相同。

对于方案、年份、期间和实体维,仅支持 @NEXTSIBLING 和 @PREVSIBLING 函数直接与 @CURRMBR 函数组合使用。使用 @CURRMBR(..) 函数时支持以下三种组合:

  • @CURRMBR("Scenario/Years/Period/Entity")

  • @PREVSIBLING(@CURRMBR(…))

  • @NEXTSIBLING(@CURRMBR(…))

对于实体维,支持 @LIST 函数,其中,参数项可以为 @CURRMBR("Entity") 或其有效组合。例如,在“实体”字段中,以下语句有效:

  • @LIST(@CURRMBR("Entity"), "LE-0011-EUR" @SIBLINGS("LE-0016-BRL"))

  • @LIST(@PREVSIBLING(@CURRMBR("Entity")),

  • @NEXTSIBLING(@CURRMBR("Entity")), @IAncestors("LE-0011-EUR"));

系统会影响 @FCCSImpactStatus 函数中指定的方案/年份/期间/实体(无论其当前计算状态为何),并影响所有适用父代和祖先。具有数据的所有未来期间都受影响。

如果实体具有共享实体,则主实体及其所有共享实体都受影响,并且其对应的父代和祖先也受影响。系统不会影响锁定的实体。

在可配置计算(插入规则)中使用 @FCCSImpactStatus 函数时,影响状态验证器会检测错误,并可能导致合并过程在脚本生成期间失败。默认情况下,名为 DisableImpactStatusConsolValidation 的替代变量处于启用状态,这允许“影响状态”规则语义验证器忽略验证错误并继续执行合并规则。如果您将该替代变量值设置为 False,则验证器将显示“影响状态”错误以及详细信息。

示例:在可配置计算中使用 @FCCSImpactStatus 函数
可配置计算中的函数示例

以下示例显示了一个“影响状态”计算脚本示例。


“影响状态”函数脚本示例

以下示例显示了 @FCCSImpactStatus 函数对各种方案/年份/期间/实体组合的影响。

示例 1:对特定方案/年份/期间/实体的显式影响

@FCCSImpactStatus("Budget", "FY16", "Jan", "GBP E2")

选择 "Actual/FY16/Jan/EUR #1" 以运行按需规则。

该函数将显式影响 "Budget/FY16/Jan/GBP E2" 和 Budget/FY16/Jan 中 GBP2 E2 的祖先。

父代成员 "EUR D1" 也将受影响。


“影响状态”示例 1

示例 2:影响不同的方案,但影响相同的年份/期间/实体

@FCCSImpactStatus("Budget",@CURRMBR("Years",@CURRMBR("Period"),@CURRMBR("Entity")

选择 "Actual/FY16/Feb/EUR E1" 以运行按需规则。

该函数将显式影响 "Budget/FY16/Feb/EUR E1" 和 Budget/FY16/Feb 中 EUR E1 的祖先。

在 2 月,父代成员 "EUR D1" 也将受影响。


“影响状态”示例 2

示例 3:影响当前方案/年份/期间,但通过使用 @List 函数影响不同实体

@FCCSImpactStatus("@CURRMBR"("Scenario"), @CURRMBR("Years"), @CURRMBR("Period"),@LIST("EUR E3", "USD E4")

选择 "Actual / FY16 / Mar / EUR E1" 以运行按需规则。

该函数将显式影响 "Actual / FY16 / Mar / EUR E3 and USD E4" 以及 Actual/FY16/Mar 中 EUR E3 和 USD E4 的祖先。

在 3 月,对应的父代 "USD D2" 也将受影响。


“影响状态”示例 3

示例 4:影响当前方案/年份/实体,但影响下一期间

@FCCSImpactStatus("@CURRMBR"("Scenario"), @CURRMBR("Years"), @NEXTSIBLING(@CURRMBR("Period")),@CURRMBR("Entity"))

选择 "Actual/FY16/Apr/EUR E1" 以运行按需规则

该函数将显式影响 "Actual / FY16 / May / EUR E1" 和 Actual/FY16/May 中 EUR E1 的祖先。

在 5 月,对应的父代 "EUR D1" 也将受影响。


“影响状态”示例 4

示例 5:使用 Calculation Manager RTP 值影响方案/年份/期间/实体

FIX("FCCS_Periodic", "Custom1", " Custom2", "FCCS_No Intercompany", " Custom3", "FCCS_Data Input","FCCS_Entity Input","FCCS_No Movement")
        "Account"(
                @FCCSImpactStatus({Scenario},{Years},{Period},@IDESCENDANTS({Entity})) ;
        )
ENDFIX

此脚本将使用按需规则执行期间提供的计算运行时提示值中的方案、年份、期间和实体值。

它将影响实体和父实体及其所有后代。

其他用例

以下示例显示了 @FCCSImpactStatus 函数的其他用例及其结果。


“影响状态”用例

假设您要使用此实体层次、合并 Actua/FY19/Nov/P02 以及使用 @FCCSImpactStatus 函数:

用例 1:@FCCSImpactStatus("Actual", "FY19", "Nov", "E03")

由于实体 E03 是 P02 的后代(并且方案、年份和期间相同),将不受影响。

用例 2:@FCCSImpactStatus("Actual", "FY19","Nov", "E04")

实体 E04 不是 P02 的后代。将受影响。

用例 3:@FCCSImpactStatus("Actual", "FY19","Dec", "E03")

尽管实体 E03 是 P02 的后代,但 Dec 是 11 月之后的期间,因此它将受影响。

用例 4:@FCCSImpactStatus("Actual", "FY19", "Oct", "E03")

将不受影响。我们要合并 Actual/FY19/Nov/P02,这意味着,在 Actual/FY19/Nov 中,P02 及其所有后代(包括 E03)将变为正常。

用例 5:@FCCSImpactStatus("Actual", "FY19", "Oct", "E04")

将受影响。实体 E04 不是 P02 的后代。