Ordine di calcolo membro
L'ordine predefinito in cui Essbase calcola i membri del profilo è, in generale, Account, Tempo, Denso e Sparso, tenendo conto dell'ordine delle dimensioni nel profilo e se le formule vengono applicate.
Quando si esegue un calcolo predefinito (CALC ALL) in un database, Essbase calcola le dimensioni in questo ordine:
-
Se esiste sia una dimensione contrassegnata come conti che una dimensione contrassegnata come tempo e se le formule vengono applicate ai membri nella dimensione conti, Essbase calcola in questo ordine:
-
Dimensione contrassegnata come conti
-
Dimensione contrassegnata come ora
-
Altre dimensioni dense (nell'ordine in cui vengono visualizzate nel profilo del database)
-
Altre dimensioni sparse (nell'ordine in cui vengono visualizzate nel profilo del database)
-
-
In caso contrario, Essbase calcola in questo ordine:
-
Dimensioni dense (nell'ordine in cui vengono visualizzate nel profilo del database)
-
Dimensioni sparse (nell'ordine in cui sono visualizzate nella struttura)
-
Nota
Le dimensioni attributo non incluse nel consolidamento del database non influiscono sull'ordine di calcolo. Fare riferimento alla sezione Utilizzo degli attributi Essbase.
Nel database Sample Basic, le dimensioni vengono calcolate in questo ordine: Misure, Anno, Scenario, Prodotto e Mercato.
È possibile sostituire l'ordine predefinito utilizzando uno script di calcolo. Vedere Sviluppo di script di calcolo per i cubi di storage a blocchi.
Effetti calcolo relazioni membro
L'ordine di calcolo all'interno di ogni dimensione Essbase dipende dalle relazioni tra i membri nel profilo. Il modo in cui i membri nel contorno si aggregano (consolidano) è paragonabile a un contachilometri.
All'interno di ogni ramo (gerarchia) di una dimensione, i valori di livello 0 vengono calcolati per primi, seguiti dal valore padre di livello 1. Vengono quindi calcolati i valori di livello 0 del ramo successivo, seguiti dal relativo valore padre di livello 1. Il calcolo continua in questo modo fino a quando non vengono calcolati tutti i livelli.
L'immagine seguente mostra la dimensione Anno del database Sample Basic. L'ordine di calcolo dei suoi membri è indicato a sinistra di ciascun membro. In questo esempio si presume che i membri padre non siano contrassegnati come Calcolo dinamico.
Figura 19-3 Ordine di calcolo per la dimensione Anno di base campione

Jan è il primo membro del primo ramo. Jan non ha una formula, quindi non viene valutata. Lo stesso vale per Feb e Mar, gli altri due membri della filiale.
Essbase calcola il trimestre 1 consolidando gennaio, febbraio e marzo. In questo esempio, questi mesi vengono aggiunti, come indicato dall'operatore di consolidamento +, per fornire un valore per il trimestre 1.
Essbase calcola quindi le diramazioni da Qtr2 a Qtr4 nello stesso modo.
Infine, Essbase calcola il membro Anno consolidando i valori del trimestre 1 fino al trimestre 4. Come indicato dagli operatori di consolidamento +, questi trimestri vengono aggiunti per fornire un valore per Anno.
Consolidamento membri
È possibile scegliere il modo in cui Essbase consolida i membri in un cubo di memorizzazione a blocchi applicando un operatore di calcolo (+, -, /, *, %, ~, ^) ai membri nel profilo del database.
Se un membro del conto dispone di un tag di saldo orario (Primo, Ultimo o Medio), Essbase lo consolida di conseguenza. Vedere Calcola valori primo, ultimo e medio.
Se un membro padre dispone di un operatore di sola etichetta, Essbase non calcola il padre dai relativi figli.
Se un membro dispone di un operatore ~, Essbase non consolida il membro fino al relativo padre.
Se un membro dispone di un operatore ^, Essbase non consolida il membro in alcuna dimensione.
Nota
Se si utilizzano calcoli dinamici, Essbase può utilizzare un ordine di calcolo diverso. Fare riferimento a Ordine di calcolo per il calcolo dinamico.
Ordine delle dimensioni nel profilo del database
Per garantire i risultati del calcolo richiesti, considerare l'ordine di calcolo delle dimensioni nel profilo di Essbase se utilizza gli operatori di calcolo per dividere (/), moltiplicare (*), calcolare le percentuali (%) per i membri o se alcuni membri dispongono di formule.
Non è necessario considerare l'ordine di calcolo se si utilizzano solo operatori di calcolo per aggiungere (+) e sottrarre (–) membri nel profilo del database e non si utilizzano formule nel profilo.
Formule sui membri nel profilo del database
Se si inseriscono formule nei membri nel profilo di Essbase, considerare l'ordine di calcolo delle dimensioni. Una formula associata a un membro su una dimensione può essere sovrascritta da un calcolo successivo su un'altra dimensione.
Ad esempio, il database di base di esempio ha una dimensione Misure, contrassegnata come conti e una dimensione Anno, contrassegnata come tempo.

Le misure vengono calcolate per primo e per secondo anno. Se si allega una formula al margine nella dimensione Misure, Essbase calcola la formula quando calcola la dimensione Misure. Essbase sovrascrive la formula quando consolida la dimensione Anno. Fare riferimento a Ordine di calcolo cella.
Utilizzo degli operatori di calcolo *, / e %
Se si utilizzano gli operatori di calcolo per moltiplicare ( * ), dividere ( / ) e calcolare le percentuali ( % ) per i membri nel profilo di Essbase, considerare l'ordine di calcolo delle dimensioni. I valori calcolati richiesti possono essere sovrascritti da un calcolo successivo su un'altra dimensione.
Ad esempio, il database di base di esempio ha una dimensione Misure, contrassegnata come conti e una dimensione Anno, contrassegnata come tempo. Le misure vengono calcolate per primo e per secondo anno. Se si moltiplicano i membri nella dimensione Misure, i risultati calcolati possono essere sovrascritti quando Essbase consolida i valori nella dimensione Anno. Vedere Ordine di calcolo cella.
Quando si utilizza un operatore di moltiplicazione ( * ), divisione ( / ), o percentuale ( % ) per consolidare i membri, ordinare attentamente i membri nella diramazione per ottenere il risultato richiesto.
La Figura 19-4 mostra gli operatori dei calcoli visualizzati in una struttura. Si supponga che l'utente desideri dividere il totale dei figli 2 e 3 per i figli 1. Tuttavia, se l'elemento figlio 1 è il primo membro, Essbase inizia con l'elemento figlio 1, iniziando con il valore #MISSING e dividendolo per l'elemento figlio 1. Il risultato è #MISSING. Essbase aggiunge quindi Child 2 e Child 3. Ovviamente, questo risultato non è quello richiesto.
Figura 19-4 Operatori di calcolo nel profilo del database

Per calcolare il risultato corretto, impostare il figlio 1 come ultimo membro nella diramazione.
È possibile applicare una formula a un membro nel profilo del database per ottenere lo stesso risultato. Tuttavia, è molto più efficiente utilizzare questi operatori di calcolo sui membri, come illustrato nella Figura 19-4.
Evita riferimenti calcolo forward
Per ottenere i risultati del calcolo previsti, assicurarsi che la struttura non contenga riferimenti al calcolo in avanti. I riferimenti successivi al calcolo si verificano quando il valore di un membro di calcolo dipende da un membro che Essbase non ha ancora calcolato. In questi casi, Essbase potrebbe non produrre i risultati di calcolo richiesti.
Ad esempio, si consideri la dimensione Prodotto mostrata di seguito, che contiene tre riferimenti di calcolo in avanti: due membri condivisi (P100–20 e P300–20) e un membro non condiviso (P500–20):
Figura 19-5 Dimensione prodotto con riferimenti calcolo forward

In Editor struttura, quando si verifica il profilo, Essbase identifica i membri condivisi con riferimenti di calcolo forward. La verifica del profilo non identifica i membri non condivisi che dispongono di riferimenti di calcolo in avanti. È possibile salvare e utilizzare un profilo contenente riferimenti di calcolo forward.
Considera i cinque membri della Dieta. I membri P100-20, P300-20 e P500-20 hanno riferimenti di calcolo in avanti:
-
P100-20 (+) (Membro condiviso): Essbase calcola il membro condiviso P100-20 prima di calcolare il membro prototipo P100-20. Poiché il membro prototipo P100-20 ha figli, Essbase deve calcolare il membro prototipo aggiungendo i relativi figli prima di poter calcolare in modo accurato il membro condiviso P100-20.
-
P300-20 (+) (Membro condiviso): Essbase calcola il membro condiviso P300-20 prima di calcolare il membro prototipo P300-20. Poiché il membro prototipo P300-20 ha una formula, Essbase deve calcolare il membro prototipo prima di poter calcolare accuratamente il membro condiviso P300-20.
-
P500-20 (+) ("P200-20" + "P300-20"): la formula applicata a P500-20 si riferisce ai membri che Essbase non ha ancora calcolato. Uno di questi membri prototipo, P300-20, ha una propria formula e Essbase deve calcolare P300-20 prima di poter calcolare con precisione P500-20. I membri P200-20 e P400-20 calcolano correttamente, poiché non dispongono di riferimenti di calcolo forward.
-
P200-20 (+) (Membro condiviso): P200-20 non è un riferimento di calcolo forward, sebbene Essbase calcoli il membro condiviso P200-20 prima di calcolare il membro prototipo P200-20. Il membro prototipo P200-20 non ha dipendenze di calcolo (nessun figlio e nessuna formula). Pertanto, Essbase non deve calcolare il membro prototipo prima del membro condiviso. Essbase accetta semplicemente il valore del membro prototipo.
-
P400-20 (+) ("P200-10" * 2): P400-20 non è un riferimento di calcolo forward, anche se la formula applicata a P400-20 fa riferimento a un membro che Essbase non ha ancora calcolato. Il prototipo membro nella formula non dispone di dipendenze di calcolo. P200-10 è l'unico membro della formula e P200-10 non ha figli o una formula. Essbase calcola con precisione P400-20.
Per ottenere risultati di calcolo accurati per P100-20, P300-20 e P500-20, modificare l'ordine dei membri nella struttura. Inserendo i membri condivisi della dieta dopo i membri regolari, come mostrato di seguito, si garantisce che Essbase calcoli i membri nell'ordine richiesto.
Figura 19-6 Dimensione prodotto modificata senza riferimenti calcolo forward

Ora Essbase calcola:
-
Il membro prototipo P100-20 prima di calcolare il membro condiviso P100-20. Quindi, P100-20 non ha più un riferimento di calcolo in avanti.
-
Il membro prototipo P300-20 prima del membro condiviso P300-20. Quindi, P300-20 non ha più un riferimento di calcolo in avanti.
-
Membro con formula, P300-20, prima del membro P500-20. Quindi, P500-20 non ha più un riferimento di calcolo in avanti.