Procédure pour éviter une erreur de récursivité

Le calcul simultané des calculs dynamiques denses non inclus dans l'en-tête de colonne, y compris dans les membres non inclus dans l'instruction FIX, est le principal motif de l'erreur de récursivité. La récursivité survient si certains des autres membres calculés dynamiquement ont une formule qui inclut le membre dense dans l'instruction FIX. Une erreur de récursivité est générée s'il existe plus de 128 niveaux de récursivité.

L'amélioration des performances est le principal motif de l'exclusion des membres de calcul dynamique. De plus, exclure les membres de calcul dynamique vous permet d'éviter l'erreur de récursivité en assurant que l'export utilise le bloc compressé au lieu du bloc développé. Cette erreur peut également être évitée en modifiant la dimension dense utilisée comme en-tête de colonne pour laquelle chaque colonne définie par l'instruction FIX est calculée individuellement. La récursivité ne survient pas car d'autres calculs dynamiques denses non inclus dans l'instruction FIX sont ignorés, ce qui permet l'exécution de la règle.

Note:

Vous ne pouvez pas modifier l'en-tête de colonne de la dimension dense si le fichier d'export contient plus de 256 colonnes.

Par exemple, vous pouvez obtenir l'erreur Calcul impossible. Erreur Essbase (1200494) : erreur lors de l'exécution de la formule pour [Yield%] (ligne 15). Limite de récursivité [128] atteinte si vous utilisez le script de calcul suivant :

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

Pour éviter l'erreur, désactivez l'option Dynamique en remplaçant DataExportDynamicCalc ON; par DataExportDynamicCalc OFF;.