遞迴錯誤的主要原因是欄標頭中未包含且並行計算的密集動態計算 (包含在 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;
,以關閉「動態」選項。