检查规则设计是否不佳
为了确保获得正确结果和最佳性能,最佳做法是始终指定要针对其运行计算的维和成员。
将计算范围限于所需的维和成员,才能获得最佳合并规则性能。如果未将必要的维和成员添加到计算中,则会强制针对所有可能的成员组合来运行规则。例如,以下示例规则要求仅针对自定义维成员 No Department
运行计算。通过使规则仅针对 No Department
运行,在源中添加维成员可加快执行速度。
检查规则源(帐户维)中是否存在多个存储成员
当合并规则源中的多个 0 级存储帐户重定向到单个目标帐户时,性能可能会下降。在这种情况下,Oracle 建议您创建具有存储性数据存储的占位符帐户成员,并以 FCCS_110(单货币应用程序)或 FCCS_30(多货币应用程序)编写插入规则,以将子代金额重定向到该规则中。然后,您可以在合并规则源中使用占位符帐户来代替动态父代,以确保更快地执行规则。
用例:部署可配置合并规则后解决性能问题
本示例假定动态父代 Retained Earnings Current
(这是应用程序中众多损益帐户之一)下存在 100 个损益帐户(从 Acc_001 到 Acc_100)。请参阅下图。
下图展示了直接或通过引用间接使用 Retained Earnings Current
作为源的规则。
在上述间接引用中,Retained Earnings Current
的所有 0 级子代都是间接源的一部分,因为其属于 Total Equity
。
要更改规则定义和添加重定向脚本以加快规则执行速度,请执行以下步骤:
在 FCCS_BalanceSheet 下创建名为 Retained Earning_Memo 的备忘帐户。将合并运算符设置为忽略 (~),并将数据存储设置为“存储”。所有其他属性都将与动态父代的属性相同。如下图所示,Retained Earning_Memo 占位符帐户将持有 Retained Earnings Current 的值。
SET HYBRIDBSOINCALCSCRIPT NONE;// Use with Hybrid environments only. FIX("FCCS_Entity Input", "Parent Currency", "Opening Balance", @RELATIVE("FCCS_Total Data Source", 0), @RELATIVE("FCCS_Intercompany Top", 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
下图显示了在此用例中实施建议之后的规则。
下图显示了在此用例中实施建议之后的规则。