Avoiding Recursion Error

The main reason for the recursion error is dense dynamic calculations not included in the column header, including in the members not included in the FIX statement, being calculated concurrently. Recursion occurs if some of the other dynamically calculated members have a formula that includes the dense member in the FIX statement. A recursion error occurs if there are more than 128 levels of recursion.

The main reason for excluding dynamic calc members is to improve performance. Additionally, excluding dynamic calc members helps you avoid the recursion error by ensuring that the export uses the compressed block instead of the expanded block. It is also possible to avoid the recursion error by changing the dense dimension used as the column header for which each column defined by the FIX statement is calculated individually. Recursion does not occur because other dense dynamic calculations not included in the FIX statement are ignored allowing the rule to run successfully.

Note:

You cannot change the dense dimension column header if the export file contains more than 256 columns.

For example, you may get the Cannot calculate. Essbase Error(1200494): Error executing formula for [Yield%] (line 15): Recursion limit [128] reached error if you use the following calculation script:

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"  "#";
 

To avoid the error, turn off the Dynamic option by changing DataExportDynamicCalc ON; to DataExportDynamicCalc OFF;.