Utilizzo dello script di calcolo Essbase

Essbase Calc Script è il linguaggio disponibile per la scrittura di business logic custom in Financial Consolidation and Close. In questa sezione sono contenuti alcuni costrutti Essbase di base e alcune restrizioni applicate a Financial Consolidation and Close. Per maggiori informazioni su Essbase Calc Script, vedere Guida introduttiva a Essbase Cloud for Administrators.

Sintassi comune

  • Punto e virgola
    • Necessario alla fine di ogni istruzione
    • Esempio: Sales = Sales * 1.50;
    • Non necessario dopo le istruzioni FIX ed ENDFIX
  • Virgolette
    • Nomi di membri con spazi / caratteri speciali / numeri inziali
    • La procedura consigliata è utilizzare sempre le virgolette prima e dopo i nomi dei membri
    • Esempio: "Cash Ratio" = "Cash"/"Current Liabilities";
  • Operatore transdimensionale
    • Utilizzare -> per specificare le intersezioni di più di una dimensione
    • Esempio: "Sales"->"Changes In Net Income"->"Product1";

Commenti

I commenti iniziano con /* e terminano con */.

Sono supportati commenti su una sola riga o su più righe.

Si può utilizzare l'icona nella barra degli strumenti per impostare o rimuovere blocchi di commenti.

FIX/ENDFIX

FIX/ENDFIX è uno dei principali componenti di base di qualunque script di calcolo. Per eseguire un calcolo, è necessario definire una sezione FIX/ENDFIX e quindi inserirvi i calcoli business effettivi.

Esempio: Si presupponga che "Prodotti" sia la dimensione custom e che si desideri calcolare il numero di televisori venduti. È possibile utilizzare la seguente sintassi:

FIX("Televisori")

"Units_Sold" = "LED_TVs" + "UHD_TVs";

ENDFIX

Il calcolo business effettivo è:

"Units_Sold = "LED_TVs" + "UHD_TVs";, con cui viene calcolato il numero di televisori venduti.

Nota:

Alla fine di ciascuna istruzione di calcolo è necessario inserire un punto e virgola, ma non per FIX o ENDFIX.

La sezione FIX/ENDFIX limita i membri di varie dimensioni che partecipano ai calcoli al suo interno. In questo esempio, solo "Televisori" partecipa ai calcoli.

È possibile anche definire comandi FIX nidificati, come il seguente:

Esempio Essbase nidificato 1

Il calcolo riportato sopra può essere scritto anche come illustrato di seguito:

Esempio Essbase nidificato 2

Ad esempio, @List è una funzione Essbase. Essbase offre molte funzioni. Tuttavia, Financial Consolidation and Close non supporta tutte le funzioni Essbase. Per un elenco delle funzioni supportate, vedere la sezione "Elenco delle funzioni Essbase".

FIX su dimensioni Financial Consolidation and Close

Un'applicazione Financial Consolidation and Close può contenere 13 dimensioni, a seconda delle funzioni applicative abilitate. Delle 13 dimensioni possibili, non è consentito applicare il comando FIX alle seguenti dimensioni: il sistema vi applica automaticamente il comando FIX quando un utente richiama il processo di consolidamento.

  • Scenario

  • Anno

  • Periodo

  • Visualizza

  • Entità

Ad esempio, supporre di avere la seguente istruzione:

Esempio Essbase Fix 3

Il sistema non riesce ad effettuare la distribuzione e viene registrato un messaggio di errore nella console Job con le informazioni appropriate.

Tuttavia, questo non significa che non sia possibile utilizzare queste dimensioni nello script. In genere, un calcolo presenta una sintassi simile a quanto segue:

Esempio Essbase Fix 4

Si noti che in FIX e "Lato sinistro" non è possibile utilizzare i membri delle dimensioni Scenario, Anno, Periodo, Entità e Vista. Ma tali restrizioni non sussistono nel "Lato destro" dell'equazione.

La sintassi seguente è ammessa:

Esempio Essbase Fix 5

Per le otto dimensioni rimanenti, se non viene applicato il comando FIX a una dimensione particolare, il sistema presume tutti i membri di quella dimensione. Ad esempio, supporre di avere la seguente istruzione:

Esempio Essbase Fix 6

In questo esempio, a tutte le dimensioni rimanenti è applicato un comando FIX ad eccezione di Conto. In questo caso, Essbase considera tutti i membri della dimensione Conto per il calcolo all'interno di FIX/ENDFIX.

Membri Financial Consolidation and Close con limitazioni

Determinati membri di sistema all'interno di ciascuna applicazione Financial Consolidation and Close hanno limitazioni per quanto riguarda il loro uso o calcolo nello script di calcolo. Se si utilizzano membri con restrizioni nel calcolo, il sistema non riuscirà ad effettuare la convalida o la distribuzione e verrà registrato un messaggio di errore nella console dei job.

Si ricordi che, se non viene selezionato alcun membro per la dimensione, il sistema presume TUTTI i membri di quella dimensione. Tuttavia, poiché i membri con restrizioni non possono essere inclusi nel processo, è necessario escluderli esplicitamente nelle istruzioni dimensione FIX oppure nel lato sinistro dell'espressione.

Nella seguente tabella è contenuto un elenco completo dei membri Financial Consolidation and Close con restrizione di tali dimensioni. Per le dimensioni Valuta e Consolidamento, i membri presentano limitazioni in base alla regola di inserimento utilizzata. Ciascuna regola di inserimento popolata include, nella sezione Commento, informazioni relative a quale membro della dimensione Valuta e Consolidamento può essere incluso nella regola.

Tabella 20-5 Membri dimensione con limitazioni

Dimensione Membro Espressione Lato sinistro Espressione Lato destro
Scenario Tutti i membri No
Anno Tutti i membri No
Periodo Tutti i membri No
Visualizza Tutti i membri No
Entità Tutti i membri No
Conto FCCS_CSTATUS No
  FCCS_CSTATUS FILTER No
  Tassi valuta estera - Finale No
  Tassi valuta estera - Medio No
  Tasso medio No
  Tasso finale No
  SrcAverageRate No
  TgtAverageRate No
  SrcEndingRate No
  TgtEndingRate No
  FCCS_Balance No
  FCCS_CTA No
  FCCS_CICTA No
  FCCS_Percent Control No
  FCCS_Current Ratio No
  FCCS_Quick Ratio No
  FCCS_Cash Ratio No
  FCCS_Inventory Turnover No
  FCCS_Asset Turnover No
  FCCS_Days Sales In Receivables No
  FCCS_Days Sales In Inventory No
  FCCS_Gross Profit Margin No
  FCCS_Return on Sales No
  FCCS_Return on Equity No
  FCCS_Debt to Equity Ratio No
  FCCS_Debt Ratio No
Origine dati FCCS_System Types No
  FCCS_Rate Override No
  FCCS_Account Override No
  FCCS_PCON No
  FCCS_Driver Source No
Trasferimento FCCS_Opening Balance No
  FCCS_OpeningBalance_Cash No
  FCCS_FX_Total_NonCash No
  FCCS_ClosingBalanceCash No

Comando FIX su tutti i membri di una dimensione ad eccezione dei membri con restrizioni

Può accedere spesso che sia necessario applicare il comando FIX a tutti i membri livello 0 di una dimensione e che quella dimensione presenti membri con restrizioni. Questo esempio mostra come applicare il comando FIX in modo ottimale a tutti i membri livello 0, ad eccezione dei membri con limitazioni di tale dimensione.

Ad esempio, la dimensione Conto presenta il numero più elevato di membri con restrizioni.

Di seguito viene riportato lo snippet codice script di calcolo che può essere utilizzato per applicare il comando FIX a tutti i membri Conto di livello 0 ad eccezione dei membri con restrizioni:

@REMOVE( @LEVMBRS( "Account", 0 ), @LIST( @RELATIVE( "FCCS_System Account", 0 ),@RELATIVE( "FCCS_Drivers", 0 ),@RELATIVE( "FCCS_Ratios", 0 ),@RELATIVE( "Exchange Rates", 0 ) ) )

FIX su dimensioni sparse e dense

Il comando FIX è più efficace se viene applicato a dimensioni sparse. In tal caso, il comando FIX farà in modo che Essbase estragga blocchi solo per la combinazione di membri di dimensioni sparse definiti nel comando FIX e salti il resto.

Queste combinazioni sparse fungono da indici per la ricerca Essbase dei blocchi di dati corrispondenti agli indici e la loro estrazione per i calcoli. Non tutti i blocchi, quindi, vengono estratti per i calcoli di sistema.

Se il comando FIX viene utilizzato su una dimensione densa, i membri densi saranno presenti in ogni blocco di dati Essbase. Questa condizione, se non utilizzata correttamente, si ripercuoterebbe sulle prestazioni. Tenere presente che, quando il comando FIX è applicato alla dimensione densa, Essbase estrae tutti blocchi di dati senza limitazioni per quanto riguarda il numero di blocchi e si limita ad una porzione all'interno di ciascun blocco. Perciò, potrebbe richiedere vari passaggi nel database per restituire le informazioni.

Ad esempio, è possibile fare riferimento a "Vendite" e "PostSales" nella dimensione Conto con le seguenti istruzioni:

Esempio Essbase Fix 7

Quando il sistema elabora il primo comando fix su "Vendite", Essbase estrae tutti i blocchi di dati dalla dimensione Conto ma elabora solo un conto "Vendite".

In seguito, nell'istruzione FIX su "PostSales", Essbase estrae nuovamente tutti i blocchi di dati dalla dimensione Conto ma elabora solo sul conto "PostSales". In questo caso, vengono effettuati due passaggi al database per questi due conti.

Per evitare problemi di prestazioni, è possibile evitare di applicare il comando FIX alla dimensione Conto, ma utilizzare IF...THEN per una dimensione densa.

Esempio Essbase Fix 8

In questo esempio in cui non viene utilizzata l'istruzione FIX, è necessario un solo passaggio al database Essbase.

Si raccomanda di utilizzare il comando FIX sulle dimensioni sparse e utilizzare IF..THEN per le dimensioni dense per migliorare le prestazioni di calcolo.

Blocco membri

I blocchi membri sono noti anche come blocchi di calcolo. A volte i blocchi membri vengono indicati anche con il termine "ancora". La sintassi di un blocco membri è la seguente:

Esempio blocco membri Essbase 1

Di seguito è riportato un esempio di istruzioni blocco membri:

Esempio blocco membri Essbase 2

In questo esempio, "Saldo di apertura totale personale" è noto come membro blocco di calcolo o ancora. Se possibile, questo membro deve appartenere a una dimensione densa.

Il calcolo riportato sopra si limita solo al membro "Apertura FX personale" e i calcoli vengono eseguiti sul membro indicato nell'istruzione FIX.

Se si utilizzano istruzioni IF, è necessario un blocco membro. Non è possibile scrivere istruzioni IF al di fuori di blocchi membro.