再帰エラーの回避

再帰エラーの主な原因は、FIX文に含まれないメンバーなどで、列ヘッダーに含まれない密の動的計算が同時に計算されることです。再帰は、動的に計算される他のメンバーの一部に、FIX文に密メンバーを含む式がある場合に発生します。再帰のレベルが128を超えると、再帰エラーが発生します。

動的計算メンバーを除外する主な理由は、パフォーマンスを向上させるためです。さらに、動的計算メンバーを除外すると、エクスポートで展開ブロックではなく圧縮ブロックが使用されるようになるため、再帰エラーの回避に役立ちます。また、FIX文によって定義された各列が個々に計算される列ヘッダーとして使用される密ディメンションを変更することによって、再帰エラーを回避することもできます。FIX文に含まれない他の密の動的計算は無視されることで、ルールが正常に実行されるため、再帰は発生しません。

Note:

256を超える列がエクスポート・ファイルに含まれている場合、密ディメンションの列ヘッダーを変更することはできません。

たとえば、次の計算スクリプトを使用すると、Cannot calculate. Essbase Error(1200494): Error executing formula for [Yield%] (line 15): Recursion limit [128] reachedエラーを受け取ることがあります:

SET DataExportOptions
     {
     DATAEXPORTCOLFORMAT ON;
     DATAEXPORTDIMHEADER ON;
     DATAEXPORTDRYRUN OFF;
     DataExportRelationalFile OFF;
     DataExportNonExistingBlocks OFF;
     DataExportLevel ALL;
     DATAEXPORTCOLHEADER "Period";
     DATAEXPORTOVERWRITEFILE ON;
     DataExportDynamicCalc ON;
     };

FIX ("Yield%",@Relative("Change Over",0),@Relative("Currency",0),@Relative("Entity",0),@Relative("Product",0),@Relative("CostCentre",0),"Jan","Actual_Total",@Relative("View",0),"Working","Fy20")

DATAEXPORT "File" "," "/u03/inbox/data/ExportDataFile.txt"  "#";
 

このエラーを回避するには、DataExportDynamicCalc ON;DataExportDynamicCalc OFF;に変更して、動的オプションをオフにします。