部署可配置合并规则后诊断性能问题

Financial Consolidation and Close 中,可配置合并规则的性能出现问题的原因可能是未限制计算范围(在自定义规则中对源成员的选择不当),或者使用来自密集维的多个存储成员(例如,作为规则的来源)。

检查规则设计是否不佳

为了确保获得正确结果和最佳性能,最佳做法是始终指定要针对其运行计算的维和成员。

将计算范围限于所需的维和成员,才能获得最佳合并规则性能。如果未将必要的维和成员添加到计算中,则会强制针对所有可能的成员组合来运行规则。例如,以下示例规则要求仅针对自定义维成员 No Department 运行计算。通过使规则仅针对 No Department 运行,在源中添加维成员可加快执行速度。
示例规则集插图

检查规则源(帐户维)中是否存在多个存储成员

当合并规则源中的多个 0 级存储帐户重定向到单个目标帐户时,性能可能会下降。在这种情况下,Oracle 建议您创建具有存储性数据存储的占位符帐户成员,并以 FCCS_110(单货币应用程序)或 FCCS_30(多货币应用程序)编写插入规则,以将子代金额重定向到该规则中。然后,您可以在合并规则源中使用占位符帐户来代替动态父代,以确保更快地执行规则。

禁用 CALC DIM 逻辑

当您为插入点创建可配置的计算脚本时,Financial Consolidation and Close 自动在父级生成数据,以便这些父成员在下一个插入点中可用。Financial Consolidation and Close 添加 CALC DIM 逻辑来汇总您填充的数据。处理此添加的 CALC DIM 逻辑比较耗时,具体取决于层次的复杂性。如果您不需要在后面的插入点中引用重新计算的父成员,则可以通过禁用 Financial Consolidation and Close为插入点添加的 CALC DIM 逻辑来加快整体合并过程。

注:

禁用 CALC DIM 逻辑将影响合并脚本生成。在禁用 CALC DIM 逻辑后仔细检查合并结果。

为了防止 Financial Consolidation and Close 在多货币应用程序中生成不必要的 CALC DIM 逻辑,请使用以下列表中定义相应的替代变量,并将其设置为 True

  • CONFCALC_FCCS10_DISABLECALCDIM
  • CONFCALC_FCCS20_DISABLECALCDIM
  • CONFCALC_FCCS25_DISABLECALCDIM
  • CONFCALC_FCCS30_DISABLECALCDIM
  • CONFCALC_FCCS40_DISABLECALCDIM
  • CONFCALC_FCCS50_DISABLECALCDIM
  • CONFCALC_FCCS60_DISABLECALCDIM
  • CONFCALC_FCCS70_DISABLECALCDIM

例如,假定您已在 FCCS 10 和 FCCS 20 可配置计算规则中编写了自定义逻辑。如果要为 FCCS_20 而非 FCCS_10 禁用 CALC DIM 逻辑,您应定义名为 CONFCALC_FCCS20_DISABLECALCDIM 的替代变量,并且将其设置为 True

为了防止 Financial Consolidation and Close 在单货币应用程序中生成不必要的 CALC DIM 逻辑,请使用以下列表中定义相应的替代变量,并将其设置为 True

  • CONFCALC_FCCS110_DISABLECALCDIM
  • CONFCALC_FCCS120_DISABLECALCDIM
  • CONFCALC_FCCS130_DISABLECALCDIM
  • CONFCALC_FCCS140_DISABLECALCDIM
  • CONFCALC_FCCS150_DISABLECALCDIM

用例:部署可配置合并规则后解决性能问题

本示例假定动态父代 Retained Earnings Current(这是应用程序中众多损益帐户之一)下存在 100 个损益帐户(从 Acc_001 到 Acc_100)。请参阅下图。
具有许多存储成员的示例动态父代

下图展示了直接或通过引用间接使用 Retained Earnings Current 作为源的规则。
使用直接引用的示例规则


使用间接引用的示例规则
在上述间接引用中,Retained Earnings Current 的所有 0 级子代都是间接源的一部分,因为其属于 Total Equity

要更改规则定义和添加重定向脚本以加快规则执行速度,请执行以下步骤:

  1. 创建占位符帐户。

    在 FCCS_BalanceSheet 下创建名为 Retained Earning_Memo 的备忘帐户。将合并运算符设置为忽略 (~),并将数据存储设置为“存储”。所有其他属性都将与动态父代的属性相同。如下图所示,Retained Earning_Memo 占位符帐户将持有 Retained Earnings Current 的值。
    示例备忘帐户

  2. 刷新多维数据集。
  3. 在 FCCS_30 中,将源收入值复制到 Retained Earning_Memo。可使用以下示例脚本之一将子代值复制到 Retained Earning_Memo。请确保根据需要修改这些脚本,以满足您的要求。有关可配置计算性能的最佳做法的信息,请参阅 《管理 Financial Consolidation and Close》 中的“ 可配置计算最佳做法 ”。

    脚本 1:

    SET HYBRIDBSOINCALCSCRIPT NONE; // Use this setting only with Hybrid environments
    FIX("FCCS_Entity Input", "Parent Currency", @RELATIVE("Movement", 0), @RELATIVE("FCCS_Total Data Source", 0), @RELATIVE("FCCS_Intercompany Top", 0), @LEVMBRS("Multi-GAAP", 0)) 
    "Retained Earning_Memo" (
            @CALCMODE(BOTTOMUP);
            "FCCS_Retained Earnings Current";
    ) 
    ENDFIX
    

    脚本 2:

    SET HYBRIDBSOINCALCSCRIPT NONE;// Use this setting only with Hybrid environments
    FIX("FCCS_Entity Input", "Parent Currency", @RELATIVE("Movement", 0), @RELATIVE("FCCS_Total Data Source", 0), @RELATIVE("FCCS_Intercompany Top", 0), @LEVMBRS("Multi-GAAP", 0)) 
    "Retained Earning_Memo" (
            @CALCMODE(BOTTOMUP);
            @SUM(@RELATIVE("FCCS_Retained Earnings Current", 0) AND @LIST(@UDA("Account", "REVENUE") OR @UDA("Account", "LIABILITY") OR @UDA("Account", "EQUITY") OR @UDA("Account", "SAVED ASSUMPTION"))) - @SUM(@RELATIVE("FCCS_Retained Earnings Current", 0) AND @LIST(@UDA("Account", "EXPENSE") OR @UDA("Account", "ASSET")));
    ) 
    ENDFIX
    
  4. 在使用 Retained Earnings Current 的可配置合并规则中,使用 Retained Earning_Memo 作为源。
    1. 如果在源中直接使用 ILvl0Descendants(Retained Earnings Current):下图显示了在此用例中实施建议之前的规则。
      不使用备忘帐户的规则插图

      下图显示了在此用例中实施建议之后的规则。
      使用备忘帐户的规则插图

    2. 如果间接使用 ILvl0Descendants(Retained Earnings Current):下图显示了在此用例中实施建议之前的规则。
      不使用备忘帐户的规则插图

      下图显示了在此用例中实施建议之后的规则。
      不使用备忘帐户的规则插图