Calcolare un sottoinsieme di dati nel cubo
Per evitare di calcolare più di quanto necessario, calcolare un subset di dati nel database Essbase. È possibile indicare i sottoinsiemi utilizzando qualsiasi combinazione di funzioni set di membri, istruzioni FIX per specificare le inclusioni e istruzioni EXCLUDE per specificare le esclusioni.
Per calcolare un subset di dati nel cubo, utilizzare uno dei metodi riportati di seguito.
-
Creare una formula utilizzando le funzioni del set di membri per calcolare gli elenchi di membri.
-
Utilizzare i comandi FIX...ENDFIX per calcolare un intervallo di valori per inclusione.
-
Utilizzare i comandi EXCLUDE...ENDEXCLUDE per calcolare un intervallo di valori per esclusione.
Nota
Quando l'opzione Calcolo intelligente è abilitata, i blocchi di dati appena calcolati non vengono contrassegnati come puliti dopo un calcolo parziale di un database. Quando si calcola un subset di un database, è possibile utilizzare il comando SET CLEARUPDATESTATUS AFTER per assicurarsi che i blocchi appena calcolati siano contrassegnati come puliti. L'uso di questo comando garantisce che Essbase ricalcoli il database nel modo più efficiente possibile utilizzando Calcolo intelligente.
Calcola elenchi di membri
Le funzioni di calcolo del set di membri Essbase generano un elenco di membri basato su un membro specificato.
Ad esempio, la funzione @IDESCENDANTS genera un elenco di tutti i discendenti di un membro specificato. Quando si utilizza una funzione di set di membri in una formula, Essbase genera un elenco di membri prima di calcolare la formula.
Nell'esempio riportato di seguito, l'uso del comando @IDESCENDANTS nel membro Total Expenses genera un elenco di questi membri, ovvero Total Expenses, se stesso e i relativi discendenti, ovvero Marketing, Payroll e Varie:
@IDESCENDANTS("Total Expenses");Vedere anche:
Utilizzare il comando FIX
Utilizzare il comando FIX negli script di calcolo della memorizzazione a blocchi di Essbase per definire i membri da includere nel calcolo. I blocchi FIX consentono di ottimizzare le prestazioni evitando il calcolo eccessivo. FIX consente inoltre di calcolare parti separate del cubo utilizzando formule diverse.
Un blocco FIX nello script di calcolo consente di definire le porzioni di dati da includere nel calcolo.
Ad esempio, il blocco FIX riportato di seguito calcola solo i valori di Budget per i soli discendenti di East (New York, Massachusetts, Florida, Connecticut e New Hampshire):
FIX(Budget,@DESCENDANTS(East))
CALC DIM(Year, Measures, Product);
ENDFIXDi seguito sono riportate le correzioni di esempio sulle combinazioni di membri per i figli di East con attributo definito dall'utente Nuovo marketing.
FIX(@CHILDREN(East) AND @UDA(Market,"New Mkt"))
Marketing = Marketing * 1.1;
ENDFIXNell'esempio seguente viene utilizzata una corrispondenza con caratteri jolly (???) per correggere i nomi dei membri che terminano con i caratteri -10, ovvero i membri 100-10, 200-10, 300-10 e 400-10:
FIX(@MATCH(Product, "???-10"))
Price = Price * 1.1;
ENDFIXQuando si utilizza il comando FIX solo su una dimensione densa, Essbase recupera l'intero blocco contenente il valore o i valori richiesti per i membri specificati. L'I/O non è interessato e il tempo delle prestazioni di calcolo è migliorato.
Quando si utilizza il comando FIX in una dimensione sparsa, Essbase recupera il blocco per i membri della dimensione sparsa specificati. L'I/O può essere notevolmente ridotto.
Essbase esegue il ciclo del database una volta per ogni comando FIX utilizzato sui membri dimensione dense. Se possibile, combinare i blocchi FIX per migliorare le prestazioni di calcolo.
Ad esempio, utilizzando un comando FIX, lo script di calcolo riportato di seguito consente a Essbase di scorrere il database una sola volta, calcolando sia i valori Effettivo che i valori Budget.
FIX(Actual,Budget)
CALC DIM(Year, Measures);
ENDFIXAl contrario, utilizzando due comandi FIX, lo script di calcolo riportato di seguito consente a Essbase di scorrere due volte il database: una volta calcolati i valori dei dati effettivi e una volta calcolati i valori dei dati budget.
FIX(Actual)
CALC DIM(Year, Measures);
ENDFIX
FIX(Budget)
CALC DIM(Year, Measures);
ENDFIXImpossibile eseguire FIX su un subset di una dimensione calcolata all'interno di un comando FIX. Ad esempio, lo script di calcolo riportato di seguito restituisce un messaggio di errore poiché l'operazione CALC DIM calcola l'intera dimensione Mercato, sebbene il FIX sopra riportato sia corretto per membri specifici della dimensione Mercato.
FIX(@CHILDREN(East) AND @UDA(Market,"New Mkt"))
CALC DIM(Year, Measures, Product, Market);
ENDFIXI comandi FIX possono essere nidificati in altri blocchi di comandi FIX. Tuttavia, l'uso errato dei comandi FIX nidificati può causare risultati errati. Ad esempio, l'intento del seguente script di calcolo è quello di assegnare 1 a tutti i figli di East e quindi assegnarne 2 a New York:
FIX (@CHILDREN(EAST))
"100-10"=1;
FIX ("New York")
"100-10"=2;
ENDFIX
ENDFIXTuttavia, il comando FIX nidificato si fissa su un sottoinsieme della dimensione specificata dal comando FIX sopra di esso (che non è consentito); pertanto, lo script assegna 2 a tutti i figli di East perché lo script viene eseguito come se fosse stato scritto come:
FIX (@CHILDREN(EAST),''New York'')
"100-10"=1;
"100-10"=2;
ENDFIXAnziché utilizzare comandi FIX nidificati, utilizzare due blocchi di comandi FIX separati. Ad esempio:
FIX (@CHILDREN(EAST))
"100-10"=1;
ENDFIX
FIX ("New York")
"100-10"=2;
ENDFIXLa variabile (varName) definita da un comando di calcolo VAR non può essere utilizzata nell'istruzione membro FIX. I membri FIX vengono valutati prima dell'esecuzione del calcolo e le variabili vengono valutate durante il runtime dopo l'impostazione dell'istruzione FIX. Poiché le variabili possono cambiare durante l'esecuzione del calcolo, non è possibile utilizzare la variabile come parte dell'istruzione FIX. L'esempio seguente mostra l'uso errato della variabile nell'istruzione membro FIX:
VAR varName=1;
FIX (@relative(@memberat(@List("Product1","Product2"),varName),0))
COMMANDS;
ENDFIXVedere anche:
Utilizzare il comando Exclude
Utilizzare il blocco di comandi EXCLUDE..ENDEXCLUDE negli script di calcolo della memorizzazione a blocchi Essbase per definire i membri da escludere dal calcolo.
A volte è più facile specificare quali membri non includere in un calcolo piuttosto che definire quali membri includere.
Specificare i membri che non devono essere calcolati in un comando EXCLUDE…ENDEXCLUDE può essere più semplice di specificare una combinazione complessa di nomi di membri in un comando FIX…ENDFIX.
Vedere anche: