Sviluppa formule nei schemi di memorizzazione di aggregazione

Le formule calcolano le relazioni tra i membri in un profilo Essbase. Le formule di memorizzazione di aggregazione (ASO, Aggregate Storage) sono diverse dalle formule di memorizzazione a blocchi. Le formule di memorizzazione di aggregazione (ASO) vengono scritte in MDX come espressioni di valori numerici e applicate al profilo del cubo, in cui vengono calcolate dinamicamente in base al recupero dei dati.

Differenze tra formule ASO e BSO

Se si conoscono le formule nei profili dello storage a blocchi (BSO), tenere presenti le differenze con le formule nello storage di aggregazione (ASO).

  • Essbase fornisce un linguaggio di calcolo nativo per scrivere formule nei profili di memorizzazione a blocchi. Per scrivere formule per i profili di memorizzazione di aggregazione, utilizzare la lingua MDX (Espressioni multidimensionali).

  • Applicare le formule direttamente ai membri nella struttura. Per i cubi di memorizzazione a blocchi, le formule possono essere inserite in uno script di calcolo. Per i cubi di memorizzazione di aggregazione, non è possibile inserire formule in uno script di calcolo.

Calcolo formula per cubi ASO

Essbase calcola le formule nei profili di memorizzazione di aggregazione solo quando vengono recuperati i dati. L'ordine di calcolo può influire sui risultati del calcolo. Ogni volta che si utilizzano formule MDX su più dimensioni in un profilo di memorizzazione di aggregazione, è buona norma impostare l'ordine di risoluzione per ogni membro o dimensione. Vedere Ordine di calcolo e ordine di soluzione nei cubi ASO.

Nota

Quando si progetta un calcolo di memorizzazione di aggregazione, considerare che i membri di memorizzazione di aggregazione con formule MDX vengono calcolati in modo dinamico. I membri calcolati dinamicamente hanno il valore #MISSING finché non vengono interrogati.

Usa formule MDX

Una formula MDX deve essere sempre un'espressione di valore numerico MDX. In MDX, un'espressione valore numerico è qualsiasi combinazione di funzioni, operatori e nomi membro che esegue una delle seguenti azioni:

  • Calcola un valore

  • Test per una condizione

  • Esegue un'operazione matematica

Un'espressione valore numerico è diversa da un'espressione set. Un'espressione set viene utilizzata sugli assi di query e descrive le combinazioni di membri e membri. Un'espressione di valore numerico specifica un valore.

Un'espressione di valore numerico viene utilizzata nelle query per creare membri calcolati, ovvero membri logici creati a scopo analitico nella sezione CON della query, ma che non esistono nel profilo.

La query riportata di seguito definisce un membro calcolato e utilizza un'espressione valore numerico per fornire un valore.

WITH MEMBER
 [Measures].[Prod Count]
AS
 'Count (
    Crossjoin (
     {[Units]},
     {[Products].children}
    )
  )', SOLVE_ORDER=1
SELECT
 {[Geography].children}
ON COLUMNS,
 {
  Crossjoin (
     {[Units]},
     {[Products].children}
    ),
   ([Measures].[Prod Count], [Products])
 }
ON ROWS
FROM
 ASOsamp.Sample

Nella query di esempio, la clausola WITH definisce un membro calcolato, Conteggio prodotti, nella dimensione Misure, come indicato di seguito.

WITH MEMBER
 [Measures].[Prod Count]

L'espressione valore numerico segue la clausola WITH ed è racchiusa tra virgolette singole. Nella query di esempio, l'espressione del valore numerico viene specificata come segue:

'Count ( 
    Crossjoin (
     {[Units]},
     {[Products].children}
    )
  )'

La proprietà SOLVE_ORDER specifica l'ordine in cui vengono valutati i membri e le formule. Vedere Ordine di calcolo e ordine di soluzione nei cubi ASO.

Nota

Per una spiegazione delle regole di sintassi utilizzate per creare l'espressione del valore numerico nell'esempio, vedere la documentazione relativa alle funzioni Conteggio, CrossJoin e Figli.

Un'espressione di valore numerico può essere utilizzata anche come formula MDX per calcolare il valore di un membro profilo esistente.

Pertanto, anziché creare l'interrogazione di esempio, è possibile creare un membro del profilo nella dimensione Misure denominata Conteggio prodotti che viene calcolato nel profilo nello stesso modo in cui è stato calcolato il conteggio ipotetico dei prodotti nella query di esempio.

Per creare un membro calcolato con una formula:

  1. Creare un membro.

  2. Allegare una formula MDX al membro.

    Supponendo di aver creato il membro Conteggio prodotti di esempio, si utilizzerà la formula seguente, che è l'equivalente dell'espressione valore numerico utilizzata per creare il membro calcolato nella query di esempio:

    Count(Crossjoin ( {[Units]}, {[Products].children}))
  3. Verificare la formula verificando il profilo.

    Quando si recuperano i dati dal cubo di memorizzazione di aggregazione, la formula viene utilizzata per calcolare il valore del membro.

    È possibile utilizzare variabili di sostituzione all'interno delle formule. Ad esempio, è possibile definire una variabile di sostituzione denominata "EstimatedPercent" e fornire percentuali diverse come valori delle variabili di sostituzione. Vedere Implementare variabili per la modifica delle informazioni.

Prima di applicare formule ai membri nella struttura, è possibile scrivere query MDX contenenti membri calcolati. Quando è possibile scrivere una query MDX che restituisce i risultati dei membri calcolati desiderati, è possibile applicare la logica dell'espressione valore numerico a un membro del profilo e convalidare ed eseguire il test dell'espressione. Vedere Scrivi query MDX.