Risoluzione degli avvisi di convalida degli script di calcolo

Quando si creano e si convalidano calcoli configurabili o regole su richiesta che utilizzano uno script di calcolo Essbase, nell'ambito del processo di convalida Financial Consolidation and Close visualizza avvisi relativi ai problemi che possono causare un calo delle prestazioni durante l'esecuzione della regola. Per visualizzare gli avvisi, selezionare la scheda Errori e avvisi in Calculation Manager e fare clic sul pulsante verde per eseguire la diagnostica degli script.

Nel seguente screenshot, le celle evidenziate in verde rappresentano avvisi di Financial Consolidation and Close. Gli altri avvisi visualizzati fanno riferimento a Calculation Manager.


Convalida delle regole in Gestione calcoli

Nota:

Gli avvisi relativi alla convalida delle regole di Financial Consolidation and Close vengono visualizzati anche nel modulo Consigli. Vedere Visualizzazione delle raccomandazioni relative all'applicazione.

I messaggi di avviso sono ordinati e visualizzati in base al numero di riga dello script.

Per visualizzare gli avvisi di convalida delle regole in Calculation Manager:

  1. Aprire Calculation Manager e selezionare la scheda Errori e avvisi.
  2. Fare clic sull'icona Esegui per visualizzare gli avvisi.

Nelle seguenti sezioni vengono forniti i dettagli su come risolvere gli avvisi di convalida delle regole.

Convalida degli script Gestione calcoli per l'uso dell'ancoraggio

Attenersi alle linee guida riportate di seguito per il corretto utilizzo dell'ancoraggio negli script Gestione calcoli:

Per applicazioni non DSO

  • Se il blocco FIX include un unico membro Trasferimento, Financial Consolidation and Close consiglia di utilizzare il membro Trasferimento come ancoraggio.
  • Se sono presenti più membri Trasferimento nel blocco FIX, non è possibile scegliere un membro Trasferimento come ancoraggio. In questo caso, è possibile scegliere un membro nelle altre dimensioni sparse come ancoraggio.
    • Per i calcoli configurabili (punti di inserimento), non è possibile scegliere un membro delle dimensioni Scenario, Anno, Periodo, Entità o Vista come ancoraggio.

    • Per le regole su richiesta, non è possibile scegliere un membro delle dimensioni Scenario, Anno, Periodo, Entità, Consolidamento o Valuta.

  • Evitare di utilizzare un membro di una dimensione densa come ancoraggio. Nel caso di applicazioni non DSO, Conto è una dimensione densa. Per i blocchi di membri densi, CALCMODE(BOTTOMUP) non sarà caratterizzato da vantaggi a livello di prestazioni.

Per applicazioni DSO

  • Nelle applicazioni DSO, Trasferimento è una dimensione densa. In caso di passaggio da un'applicazione non DSO a un'applicazione DSO, è necessario assicurarsi che un membro della dimensione Trasferimento non sia un ancoraggio. È possibile scegliere un membro della dimensione Conto come ancoraggio per il blocco di membri, dal momento che Conto è un dimensione sparsa nelle applicazioni DSO.

  • Se non è possibile scegliere un membro Conto come ancoraggio, come ancoraggio scegliere un membro di qualsiasi altra dimensione sparsa.

    • Per i calcoli configurabili (punti di inserimento), non è possibile scegliere un membro delle dimensioni Scenario, Anno, Periodo, Entità o Vista (dimensione densa) come ancoraggio.

    • Per le regole su richiesta, non è possibile scegliere un membro delle dimensioni Scenario, Anno, Periodo, Entità, Consolidamento o Valuta.

  • Evitare di utilizzare un membro di una dimensione densa come ancoraggio. Nelle applicazioni DSO, Trasferimento e Periodo sono dimensioni dense. Per i blocchi di membri densi, CALCMODE(BOTTOMUP) non sarà caratterizzato da vantaggi a livello di prestazioni.

Di seguito è riportato un esempio di calcolo configurabile (regola di inserimento) per un'applicazione non DSO. Ogni riga è contrassegnata da #, che rappresenta il numero di riga.

#1 FIX ("FCCS_Periodic", "FCCS_Journal Input", "FCCS_Managed Data", "IFRS_IN ", "Entity Currency", "FCCS_Mvmts_NetIncome", @relative("Total Categories", 0), @relative("Total Area", 0), @LEVMBRS("Intercompany", 0) @relative("Total Custom", 0)) 
#2        "FCCS_Entity Input" (
#3           IF (@ISMBR("Actual_Red")) 
#4                IF (@ISUDA("Entity", "B10") AND ("FCCS_Mvmts_NetIncome" <> #Missing)) 
#5                    ENDIF
#6            ENDIF
#7        ) 
#8 ENDFIX

In questo script di esempio, il processo di convalida delle regole genererà il seguente avviso:

Riga 2: utilizzare il membro Trasferimento FCCS_Mvmts_NetIncome come ancoraggio invece del membro di ancoraggio FCCS_Entity Input.

Di seguito è riportato un esempio di calcolo configurabile (regola di inserimento) per un'applicazione DSO. Ogni riga è contrassegnata da #, che rappresenta il numero di riga.

     #1   FIX("FCCS_Periodic","FCCS_No Intercompany","No operating Expense","Product1    ","CORP_IN","IC_PROFIT_ACC ")
        #2      "FCCS_Managed Data"(
        #3      @CALCMODE(BOTTOMUP);
        #4          IF (@ISMBR("FY21"))
        #5              "FCCS_OpeningBalanceAdjustment"=10;
        #6         ENDIF
        #7       )
        #8     ENDFIX

In questo script di esempio, il processo di convalida delle regole genererà il seguente avviso:

Riga 2: utilizzare il membro Conto IC_PROFIT_ACC come ancoraggio invece del membro di ancoraggio FCCS_Managed Data.

Convalida degli script Gestione calcoli per @CALCMODE (BottomUp)

@CALCMODE(BOTTOMUP) e @CALCMODE(TOPDOWN)

Financial Consolidation and Close consiglia di utilizzare BOTTOMUP, e non TOPDOWN, per velocizzare i calcoli mediante i calcoli configurabili (punti di inserimento) o regole su richiesta .

Durante l'elaborazione BOTTOMUP, ovvero l'approccio predefinito per i calcoli, Essbase determina i blocchi di dati esistenti da calcolare prima di calcolare i dati utilizzando i blocchi di membri sparsi. Essbase calcola quindi i blocchi da calcolare durante il calcolo completo del database.

Esempio: A = B + C

A viene calcolato solo se B e C esistono nel database. La dipendenza di A con B e C è nota prima dell'avvio del calcolo effettivo.

Durante l'elaborazione TOPDOWN, Essbase calcola la formula su tutti i potenziali blocchi di dati mediante i membri sparsi nel blocco di membri.

Esempio: A = B -> D + C -> D

Per calcolare la formula, Essbase deve esaminare tutte le combinazioni di A per vedere se esiste B -> D o C -> D.

Essbase utilizza l'elaborazione BOTTOMUP come meccanismo predefinito per calcolare una formula assegnata a un membro sparso, a meno che la formula non sia complessa; in questo caso, il calcolo verrà eseguito in base all'elaborazione TOPDOWN.

Un'espressione complessa deve soddisfare i seguenti criteri:

  • Contiene operatori transdimensionali [ -> ]

  • Utilizza una o più funzioni di intervallo, ad esempio @AVGRANGE, @MAXRANGE, @MINRANGE o @SUMRANGE

  • Utilizza funzioni relazionali o finanziarie, ad esempio @ANCESTVAL, @NEXT, @PARENTVAL, @SHIFT, @ACCUM o @GROWTH

In situazioni simili, Essbase fornisce la funzione @CALCMODE(BOTTOMUP) per far sì che i calcoli di formule sparse vengano eseguite in modalità BOTTOMUP.

Di seguito è riportato un esempio di calcolo configurabile (regola di inserimento). Ogni riga è contrassegnata da #, che rappresenta il numero di riga.

#1   FIX ("FCCS_Periodic", "FCCS_Entity Input", "Entity Currency", "FCCS_ClosingBalance_Input","FCCS_Balance Sheet","FCCS_Total Data Source") 
#2   "FCCS_Income_Statement"(
#3   "FCCS_Movements"=@CURRMBR("Entity")->"FCCS_Contribution" -> "FCCS_Movements";
#4   )
#5   ENDFIX 

In questo script di esempio, il processo di convalida delle regole genererà il seguente avviso:

Riga 2: utilizzare @CalcMode (BOTTOMUP) per il blocco di membri FCCS_Income_Statement.

Per ulteriori informazioni, fare riferimento al seguente argomento: https://docs.oracle.com/cd/E57185_01/ESBTR/calcmode_func.html

Convalida degli script Gestione calcoli per i cubi BSO ibridi

Per le applicazioni Financial Consolidation and Close ibride, è consigliabile utilizzare SET HYBRIDBSOINCALCSCRIPT NONE/FULL laddove applicabile per ottimizzare i risultati delle prestazioni.

Per impostazione predefinita, i calcoli configurabili (regole di inserimento) includono HYBRIDBSOINCALCSCRIPT impostato su FULL, mentre per le regole su richiesta HYBRIDBSOINCALCSCRIPT è impostato su NONE.

Il processo di convalida delle regole verifica se lo script contiene membri della dimensione CustomTop, che includono il tipo di memorizzazione Calcolo dinamico.

  • Se l'espressione contiene 0 o 1 membro CustomTop, viene visualizzato un avviso che richiede di impostare HYBRIDBSOINCALCSCRIPT su NONE (se è impostato su FULL).
  • Se l'espressione contiene 2 o più membri CustomTop, viene visualizzato un avviso che richiede di impostare HYBRIDBSOINCALCSCRIPT su FULL (se è impostato su NONE).

Di seguito è riportato un esempio di regola su richiesta. Ogni riga è contrassegnata da #, che rappresenta il numero di riga.

     #1 FIX ("FCCS_Periodic", "FCCS_No Intercompany", "No Product", "FCCS_Mvmts_NetIncome", @RELATIVE("AllDepts", 0), "No Department") 
        #2    FIX (@RELATIVE("TotalHFM", 0)) 
        #3        "StkCmpRev_CE" = -("555011_CE"->"FCCS_YTD"->"FCCS_Intercompany Top") - ("555012_CE"->"FCCS_YTD"->"FCC_Intercompany Top");
        #4    ENDFIX 
#5 ENDFIX

In questo script di esempio, il processo di convalida delle regole genererà il seguente avviso:

Riga 3: disabilitare il calcolo ibrido per questo blocco con SET HYBRIDBSOINCALCSCRIPT NONE.

Per ulteriori informazioni, fare riferimento al seguente argomento: https://docs.oracle.com/en/cloud/paas/analytics-cloud/tress/hybridbsoincalcscript.html.

Convalida degli script Gestione calcoli per @CALCMODE (BLOCK)

Per questo specifico caso d'uso, Financial Consolidation and Close consiglia di aggiungere @CalcMode (BLOCK), laddove applicabile, per migliorare le prestazioni.

Per ulteriori informazioni su @CalcMode (BLOCK), fare riferimento al seguente argomento: https://docs.oracle.com/cd/E57185_01/ESBTR/calcmode_func.html.

Per capire se @CALCMODE(BLOCK) p obbligatorio all'interno di un blocco di ancoraggio per applicazioni sia DSO che non DSO, il processo di convalida delle regole controlla le seguenti condizioni:

  • Se le espressioni incluse nel blocco di ancoraggio sono complesse

  • Se l'espressione contiene determinate funzioni, ad esempio @ANCEST, @CURRMBR, @ISMBR in un membro denso, @MDANCESTVAL, @MDPARENTVAL, @MDSHIFT, @NEXT, @PARENT, @PARENTVAL, @PRIOR, @SANCESTVAL, @SPARENTVAL, @SHIFT

Se queste condizioni vengono soddisfatte, il processo di convalida restituisce un avviso contenente il numero di riga.

Di seguito è riportato un esempio di calcolo configurabile (regola di inserimento). Ogni riga è contrassegnata da #, che rappresenta il numero di riga.

#1   FIX ("FCCS_Periodic", "FCCS_Entity Input", "Entity Currency", "FCCS_ClosingBalance_Input","FCCS_Balance Sheet","FCCS_Total Data Source") 
#2   "FCCS_Income_Statement"(
#3   "FCCS_Movements"=@CURRMBR("Entity")->"FCCS_Contribution" -> "FCCS_Movements";
#4   )
#5   ENDFIX 

In questo script di esempio, il processo di convalida delle regole genererà il seguente avviso:

Riga 2: utilizzare @CalcMode (BLOCK) per il blocco di membri FCCS_Income_Statement.