Funzioni correlate ai membri

Utilizzare le funzioni membro di Essbase nelle formule per specificare elenchi di membri e intervalli, generare elenchi di membri, manipolare i nomi dei membri e utilizzare combinazioni di membri tra le dimensioni.

Questa sezione descrive la creazione di formule che fanno riferimento a membri.

Specifica elenchi e intervalli membri

Quando si utilizzano alcune funzioni di calcolo di Essbase, potrebbe essere necessario inserire un elenco di membri profilo e/o un intervallo di membri. Gli elenchi possono essere elenchi separati da virgole di nomi di membri letterali o possono essere restituiti dalle funzioni di calcolo. Gli intervalli possono essere specificati utilizzando la sintassi dei due punti oppure possono essere restituiti dalle funzioni di calcolo.

Ad esempio, la funzione @ISMBR verifica se un membro in fase di calcolo corrisponde a una lista o a un intervallo di membri specificati.

La tabella riportata di seguito elenca la sintassi per specificare i membri.

Tabella 17-8 Sintassi per la specifica degli elenchi e degli intervalli di membri

Elenco o intervallo membri Sintassi

Un solo membro

Nome del membro.

Ad esempio:

Mar2001

Un elenco di membri

Elenco delimitato da virgole (,) di nomi membro.

Ad esempio:

Mar2001, Apr2001, May2001

Intervallo di tutti i membri allo stesso livello, compresi i due membri che definiscono

I due nomi dei membri di definizione separati da due punti (:). Ad esempio:

Jan2000:Dec2000

Intervallo di tutti i membri della stessa generazione, compresi i due membri che definiscono

I due nomi dei membri definiti sono separati da due punti (::).

Ad esempio:

Q1_2000::Q4_2000

Lista di membri o intervallo di membri generata da una funzione

Per un elenco dei contenuti dell'elenco membri e delle funzioni corrispondenti, vedere Genera elenchi membri.

Una combinazione di intervalli ed elenco

Separare ogni intervallo, elenco e funzione con una virgola (,).

Ad esempio:

Q1_97::Q4_98, FY99, FY2000

o

@SIBLINGS(Dept01), Dept65:Dept73, Total_Dept

Se non si specifica un elenco di membri o un intervallo di membri in una funzione che lo richiede, Essbase utilizza i membri di livello 0 della dimensione contrassegnati come tempo. Se nessuna dimensione è contrassegnata come tempo, Essbase visualizza un messaggio di errore.

Genera elenchi membri

Le funzioni del set di membri di Essbase consentono di generare elenchi di membri basati su un membro o un elenco di membri specificato.

Tabella 17-9 Elenco delle funzioni della serie di membri

Funzione Contenuto elenco membri

@ALLANCESTORS

Tutti i predecessori del membro specificato, inclusi i predecessori del membro specificato come membro condiviso. Questa funzione non include il membro specificato.

@IALLANCESTORS

Tutti i predecessori del membro specificato, inclusi i predecessori del membro specificato come membro condiviso. Questa funzione include il membro specificato.

@ANCEST

Predecessore del membro specificato a livello o generazione specificata

@ANCESTORS

Tutti i predecessori del membro specificato (facoltativamente, fino alla generazione o ai livelli specificati), ma non il membro specificato

@IANCESTORS

Tutti i predecessori del membro specificato (facoltativamente, fino alla generazione o al livello specificati), incluso il membro specificato

@LANCESTORS

Tutti i predecessori dell'elenco specificato di membri (facoltativamente, fino alla generazione o al livello specificati), ma esclusi i membri specificati

@ILANCESTORS

Tutti i predecessori dell'elenco di membri specificato (facoltativamente, fino alla generazione o al livello specificati), inclusi i membri specificati

@ATTRIBUTO

Tutti i membri della dimensione base associati al membro attributo-dimensione specificato

@WITHATTR

Tutti i membri base associati ad attributi che soddisfano le condizioni specificate

@BETWEEN

Tutti i membri i cui valori stringa nome sono compresi tra, e includono, i due token di stringa specificati

@CHILDREN

Tutti i figli del membro specificato, ma non il membro specificato

@ICHILDREN

Tutti i figli del membro specificato, incluso il membro specificato

@CURRMBR

Il membro corrente calcolato per la dimensione specificata

@DESCENDANTS

Tutti i discendenti del membro specificato (facoltativamente, fino alla generazione o al livello specificati), ma non il membro specificato né i discendenti dei membri condivisi

@IDESCENDANTS

Tutti i discendenti del membro specificato (facoltativamente, fino alla generazione o al livello specificati), incluso il membro specificato, ma non i discendenti dei membri condivisi

@LDESCENDANTS

Tutti i discendenti dell'elenco di membri specificato (facoltativamente, fino alla generazione o al livello specificati), ma esclusi i membri specificati

@ILDESCENDANTS

Tutti i discendenti dell'elenco di membri specificato (facoltativamente, fino alla generazione o al livello specificati), inclusi i membri specificati

@RDESCENDANTS

Tutti i discendenti del membro specificato (facoltativamente, fino alla generazione o al livello specificati), inclusi i discendenti dei membri condivisi, ma non il membro specificato

@IRDESCENDANTS

Tutti i discendenti del membro specificato (facoltativamente, fino alla generazione o al livello specificati), inclusi il membro specificato e i discendenti dei membri condivisi

@EQUAL

Nomi dei membri corrispondenti al nome token specificato

@NOTEQUAL

Nomi di membri che non corrispondono al nome token specificato

@EXPAND

Espande una ricerca di membro richiamando una funzione di set di membri per ciascun membro in un elenco di membri.

@GENMBRS

Tutti i membri della generazione specificata nella dimensione specificata

@LEVMBRS

Tutti i membri del livello specificato nella dimensione specificata

@LIKE

Nomi dei membri corrispondenti al pattern specificato.

@LIST

Liste separate di membri che devono essere elaborati da funzioni che richiedono più argomenti elenco

@MATCH

Tutti i membri che corrispondono alla selezione di caratteri jolly specificata

@MBRCOMPARE

Nomi dei membri che corrispondono ai criteri di confronto

@MBRCOMPARE

Padre del membro specificato

@MEMBER

Il membro con il nome specificato come stringa di caratteri

@MERGE

Un elenco unito di due elenchi membri elaborati da un'altra funzione

@PARENT

Il padre del membro corrente che viene calcolato nella dimensione specificata

@RANGE

Elenco di membri che incrocia il membro specificato proveniente da una dimensione con l'intervallo di membri specificato proveniente da un'altra dimensione

@RIMOZIONE

Elenco di membri da cui sono stati rimossi alcuni membri

@RELATIVE

Tutti i membri di una generazione o del livello specificato che sono al di sopra o sotto del membro specificato

@CONDIVIDI

Elenco di membri che identifica tutti i membri condivisi tra i membri specificati

@SIBLINGS

Tutti i pari livello del membro specificato, ma non il membro specificato

@ISIBLINGS

Tutti i pari livello del membro specificato, incluso il membro specificato

@LSIBLINGS

Tutti i pari livello che precedono il membro specificato nel profilo del database, ma non il membro specificato

@RSIBLINGS

Tutti i pari livello che seguono il membro specificato nel profilo del database, ma non il membro specificato

@ILSIBLINGS

Tutti i pari livello che precedono il membro specificato nel profilo del database, incluso il membro specificato

@IRSIBLINGS

Tutti i pari livello che seguono il membro specificato nel profilo del database, incluso il membro specificato

@SHIFTSIBLING

Il fratello alla distanza specificata dal membro

@NEXTSIBLING

Il prossimo, o il più a destra, fratello del membro

@PREVSIBLING

Il precedente, o il più a sinistra, fratello del membro

@UDA

Tutti i membri con un attributo definito dall'utente comune definito nel server Essbase

@XRANGE

Elenco di membri che identifica l'intervallo di membri tra (e inclusi) due membri singoli o transdimensionali specificati allo stesso livello

Manipola nomi membri

È possibile utilizzare i nomi dei membri di Essbase come stringhe di caratteri nelle formule di memorizzazione a blocchi e negli script di calcolo.

Nella tabella seguente sono elencate le funzioni di manipolazione delle stringhe di caratteri.

Tabella 17-10 Elenco delle funzioni di manipolazione delle stringhe di caratteri

Funzione Manipolazione stringa di caratteri

@CONCATENATE

Creare una stringa di caratteri che sia il risultato dell'aggiunta di un nome membro o di una stringa di caratteri specificata a un altro nome membro o stringa di caratteri

@NAME

Restituisce un nome membro come stringa

@SUBSTRING

Restituisce una sottostringa di caratteri da un'altra stringa di caratteri o da un nome membro

Gestione combinazioni di membri tra dimensioni

Gli operatori dimensionali incrociati -> nelle formule di Essbase consentono di fare riferimento ai valori dei dati multidimensionali di combinazioni di membri specifiche. Il comando FIX può essere migliore per le prestazioni.

Utilizzare l'operatore cross-dimensionale per puntare ai valori dei dati di combinazioni di membri specifiche. Creare l'operatore cross-dimensionale utilizzando un trattino (-) e un simbolo maggiore di (>). Non includere uno spazio tra l'operatore cross-dimensionale e i membri.

Nota

L'uso dell'operatore cross-dimensionale può avere implicazioni significative sulle prestazioni. Per le linee guida sull'ottimizzazione, vedere Operatori multidimensionali nelle formule membro.

Di seguito è riportata un'illustrazione semplificata di un cubo multidimensionale, in cui Jan è la prima colonna sull'asse X, Sales è la quarta e la prima riga sull'asse Y e Actual è la prima riga sull'asse Z. In questo esempio, Sales -> Jan -> Actual è l'intersezione di un singolo valore di dati.

Figura 17-2 Specifica di un singolo valore di dati


Questa immagine mostra un cubo in cui viene visualizzata l'intersezione di un singolo valore di dati, come descritto nel testo che precede la tabella.

L'esempio seguente, che assegna spese varie a ciascun prodotto in ciascun mercato, illustra come utilizzare l'operatore cross-dimensionale. Il valore di Misc_Expenses per tutti i prodotti in tutti i mercati è noto. La formula alloca una percentuale del valore totale di Varie_Spese a ogni combinazione Prodotto -> Mercato. L'allocazione si basa sul valore delle vendite per ciascun prodotto in ciascun mercato.

Misc_Expenses = Misc_Expenses -> Market -> Product * 
   (Sales / ( Sales -> Market -> Product));

Essbase esegue cicli nel database eseguendo i calcoli riportati di seguito.

  1. Divide il valore delle vendite per la combinazione di membri corrente per il valore totale delle vendite per tutti i mercati e tutti i prodotti (Vendite -> Mercato -> Prodotto).

  2. Moltiplica il valore calcolato nel passo 1 dal valore Misc_Expenses per tutti i mercati e tutti i prodotti (Misc_Expenses -> Mercato -> Prodotto).

  3. Alloca il risultato a varie spese per la combinazione di membri corrente.