Scrivere formule nei schemi di memorizzazione di aggregazione

Scrivere le formule MDX nei profili di memorizzazione di aggregazione (ASO) di Essbase utilizzando l'editor formule. Le formule consentono di applicare equazioni matematiche di base, calcolare i membri tra le dimensioni, eseguire test condizionali e filtrare in base agli attributi definiti dall'utente (ADU).

Formule nei schemi di memorizzazione di aggregazione

Le formule sono testo normale. È possibile digitare le formule direttamente nell'editor di formule oppure creare una formula in qualsiasi editor di testo e incollare il testo nell'editor di formule.

Il controllo della sintassi basato su MDX indica gli errori di sintassi nelle formule, ad esempio un nome di funzione non digitato correttamente o un membro inesistente. I nomi membro sconosciuti possono essere convalidati in base a un elenco di nomi funzione. Se non si è connessi all'istanza del servizio o all'applicazione associata al profilo, Essbase potrebbe connettersi per convalidare nomi sconosciuti.

Il controllo della sintassi si verifica quando si convalida o si salva una formula. Gli errori vengono visualizzati nell'interfaccia utente. Se si verifica un errore, si sceglie di salvare o non salvare la formula. Se si salva una formula con errori, viene visualizzato un avviso quando si salva la struttura. Quando si calcola una formula con errori, la formula viene ignorata e al membro viene assegnato un valore di $MISSING.

Uno strumento di controllo della sintassi non può segnalare errori semantici in una formula. Gli errori semantici si verificano quando una formula non funziona come previsto. Un modo per trovare errori semantici in una formula è posizionare l'espressione valore numerico che definisce la formula in una query MDX ed eseguirla, per verificare che i risultati siano come previsto.

È possibile includere formule in un'origine dati generazione dimensione. Vedere Imposta informazioni tipo di campo generazione dimensione.

Equazioni di base per i profili di memorizzazione di aggregazione

È possibile applicare un'operazione matematica a una formula per creare un'equazione di base. Ad esempio, la seguente formula viene applicata al membro Unità medie/Transazione nel cubo ASOsamp Basic:

[Units]/[Transactions]

La formula in Media unità/transazione divide il numero di unità per il numero di transazioni per arrivare al numero medio di unità per transazione.

Nei profili di memorizzazione aggregata, i membri non possono essere contrassegnati come voci di spesa. Pertanto, le funzioni in Calc, come @VAR e @VARPER, che determinano la differenza tra due membri considerando i tag di spesa, non sono rilevanti nei profili di memorizzazione aggregata.

L'operatore di sottrazione MDX può essere utilizzato per calcolare la differenza tra due membri. Ad esempio, la seguente formula può essere applicata a un nuovo membro, denominato Price Diff, in ASOsamp Basic, per calcolare la differenza tra il prezzo pagato e il prezzo originale:

[Price Paid]-[Original Price]

Membri nelle dimensioni nei profili di memorizzazione di aggregazione

ASOsamp Basic fornisce una formula su un membro denominato % del totale. Questa formula membro identifica la percentuale del totale misure prodotto dalle transazioni. La formula per la percentuale del totale:

Transactions/
(Transactions,Years,Months,[Transaction Type],[Payment Type],
Promotions,Age,[Income Level],Products,Stores,Geography)

La formula specifica un membro (Transazioni) diviso per una tupla (Transazioni, Anni, ...). La formula elenca un membro superiore di ogni dimensione per contabilizzare tutti i dati delle transazioni nel cubo, ovvero non i dati delle transazioni per il membro Anno corrente, ma i dati delle transazioni per tutti i membri della dimensione Anni, non i dati delle transazioni per mesi nei primi due trimestri, ma le transazioni per tutti i mesi e così via. In questo modo, il valore di % del totale rappresenta la percentuale del totale delle misure prodotte dalle transazioni.

Test condizionali nelle formule per i profili di memorizzazione di aggregazione

È possibile definire una formula che utilizza un test condizionale o una serie di test condizionali per determinare il valore di un membro. Utilizzare la funzione IIF per eseguire un test con un'altra condizione. È possibile nidificare le funzioni IIF per creare una query più complessa.

L'esempio specifica una formula per un membro che rappresenta il prezzo che la società deve pagare per le transazioni con carta di credito, che include un addebito del 5%. Nell'esempio seguente si presuppone che il membro Prezzo credito sia stato aggiunto alla dimensione Misure del cubo ASOsamp Basic. Il prezzo di credito ha la seguente formula, che aggiunge il 5% al prezzo pagato quando il tipo di pagamento è una carta di credito.

IIF (
   [Payment Type].CurrentMember=[Credit Card],
   [Price Paid] * 1.05, [Price Paid]
)

Utilizzare il costrutto CASE, WHEN, THEN per creare formule con più test e altre condizioni.

La funzione Filtro restituisce le tuple del set di input che soddisfano i criteri della condizione di ricerca specificata. Ad esempio, per stabilire una baseline (100) per tutti i prodotti, è possibile aggiungere un membro della baseline e creare una formula corrispondente, come indicato di seguito.

Count(Filter(Descendants([PersonalElectronics],
[Products].Levels(0)),[Qtr1] > 100.00))

ADU nei profili di memorizzazione di aggregazione nelle formule

Gli attributi definiti dall'utente sono parole o frasi create per un membro. Ad esempio, in Sample.Basic i membri di livello superiore della dimensione Mercato hanno l'ADU Small Market o l'ADU Major Market.

L'esempio Mercato principale utilizzato in questo argomento mostra come creare una formula per un membro che mostri la somma delle vendite per tutti i principali membri del mercato. L'esempio presuppone che un nuovo membro (Totale mercato principale) sia stato aggiunto a Sample.Basic.

  1. MDX fornisce una funzione booleana, IsUDA, che restituisce TRUE se a un membro è associato il tag UDA. La sintassi seguente restituisce TRUE se il membro corrente della dimensione Mercato ha l'ADU "Mercato principale":

    IsUda([Market].CurrentMember, "Major Market")
  2. Una funzione Filtro, se utilizzata con IsUDA (come mostrato nella sintassi seguente), esegue il ciclo di ogni membro della dimensione Mercato e restituisce un valore per ogni membro che dispone dell'ADU Mercato principale:

    Filter([Market].Members, IsUda([Market].CurrentMember, "Major Market"))
  3. La funzione Somma aggiunge i valori restituiti dalla funzione Filtro; per l'esempio Mercato principale viene prodotta la seguente formula:

    Sum (Filter([Market].Members, IsUda([Market].CurrentMember, "Major Market")))

    Questa formula è associata al membro Totale mercato principale.