Ecrire des formules sur les outlines du mode "aggregate storage"

Ecrivez des formules MDX sur les outlines en mode "aggregate storage" (ASO) Essbase à l'aide de l'éditeur de formule. Les formules permettent d'appliquer des équations mathématiques de base, de calculer les membres entre les dimensions, d'effectuer des tests conditionnels et de filtrer en fonction des attributs définis par l'utilisateur.

Formules sur les outlines du mode "aggregate storage"

Les formules sont du texte brut. Vous pouvez saisir les formules directement dans l'éditeur de formule ou créer une formule dans n'importe quel éditeur de texte et coller le texte dans l'éditeur de formule.

La vérification de la syntaxe basée sur MDX vous indique les erreurs de syntaxe dans les formules ; par exemple, un nom de fonction mal saisi ou un membre inexistant. Les noms de membre inconnus peuvent être validés par rapport à une liste de noms de fonction. Si vous n'êtes pas connecté à l'instance de service ou à l'application associée à l'outline, Essbase peut vous connecter pour valider les noms inconnus.

La vérification de syntaxe se produit lors de la validation ou de l'enregistrement d'une formule. Les erreurs sont affichées dans l'interface utilisateur. Si une erreur se produit, vous choisissez d'enregistrer ou de ne pas enregistrer la formule. Si vous enregistrez une formule avec des erreurs, vous êtes averti lorsque vous enregistrez l'outline. Lorsque vous calculez une formule avec des erreurs, la formule est ignorée et le membre reçoit la valeur $MISSING.

Un vérificateur de syntaxe ne peut pas vous avertir des erreurs sémantiques dans une formule. Les erreurs sémantiques se produisent lorsqu'une formule ne fonctionne pas comme prévu. Une façon de trouver les erreurs sémantiques dans une formule consiste à placer l'expression de valeur numérique qui définit la formule dans une requête MDX et à l'exécuter, afin de vérifier que les résultats sont conformes à vos attentes.

Vous pouvez inclure des formules dans une source de données de construction de dimension. Voir Définir les informations de type de champ de construction de dimension.

Equations de base pour les outlines en mode "aggregate storage"

Vous pouvez appliquer une opération mathématique à une formule pour créer une équation de base. Par exemple, la formule suivante est appliquée au membre Moyenne unités/transaction du cube ASOsamp Basic :

[Units]/[Transactions]

La formule Unités/transaction moyennes divise le nombre d'unités par le nombre de transactions pour obtenir le nombre moyen d'unités par transaction.

Dans les outlines en mode "aggregate storage", les membres ne peuvent pas être marqués comme postes de dépenses. Par conséquent, les fonctions de Calc, telles que @VAR et @VARPER, qui déterminent la différence entre deux membres en tenant compte des balises de dépenses, ne sont pas pertinentes dans les outlines en mode "aggregate storage".

L'opérateur de soustraction MDX peut être utilisé pour calculer la différence entre deux membres. Par exemple, la formule suivante peut être appliquée à un nouveau membre, appelé Diff de prix, dans ASOsamp Basic, pour calculer la différence entre le prix payé et le prix d'origine :

[Price Paid]-[Original Price]

Membres de toutes les dimensions dans les outlines en mode "aggregate storage"

ASOsamp Basic fournit une formule sur un membre appelée % of Total. Cette formule de membre identifie le pourcentage du total des mesures généré par les transactions. Formule pour % du total :

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

La formule spécifie un membre (Transactions) divisé par un tuple (Transactions, Années, ...). La formule répertorie un membre supérieur de chaque dimension pour prendre en compte toutes les données de transaction du cube, c'est-à-dire non les données de transaction pour le membre Curr Year, mais les données de transaction pour tous les membres de la dimension Years, et non les données de transaction pour les mois des deux premiers trimestres, mais les données de transaction pour tous les mois, etc. Ainsi, la valeur de % du total représente le pourcentage du total des mesures produit par les transactions.

Tests conditionnels dans les formules pour les outlines en mode "aggregate storage"

Vous pouvez définir une formule qui utilise un test conditionnel ou une série de tests conditionnels pour déterminer la valeur d'un membre. Utilisez la fonction IIF pour effectuer un test avec une autre condition. Vous pouvez imbriquer des fonctions IIF pour créer une requête plus complexe.

L'exemple spécifie une formule pour un membre qui représente le prix que la société doit payer pour les transactions par carte de crédit, ce qui inclut des frais de 5 %. L'exemple suivant suppose que le membre Prix de crédit a été ajouté à la dimension Mesures du cube ASOsamp Basic. Le prix de crédit a la formule suivante, qui ajoute 5% au prix payé lorsque le type de paiement est une carte de crédit.

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

Utilisez la construction CASE, WHEN, THEN pour créer des formules avec plusieurs tests et autres conditions.

La fonction Filter renvoie les tuples du jeu d'entrées qui répondent aux critères de la condition de recherche spécifiée. Par exemple, pour établir une ligne de base (100) pour tous les produits, vous pouvez ajouter un membre de ligne de base et créer une formule pour ce membre, comme suit :

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

Attributs définis par l'utilisateur dans les formules dans les outlines de mode "aggregate storage"

Les attributs définis par l'utilisateur sont des mots ou des expressions que vous créez pour un membre. Par exemple, dans Sample.Basic, les membres de niveau supérieur de la dimension Market ont le petit marché UDA ou le grand marché UDA.

L'exemple de marché principal utilisé dans cette rubrique montre comment créer une formule pour un membre qui affiche la somme des ventes pour tous les principaux membres du marché. L'exemple suppose qu'un nouveau membre (Major Market Total) a été ajouté à Sample.Basic.

  1. MDX fournit une fonction booléenne, IsUDA, qui renvoie TRUE si un membre a la balise UDA associée. La syntaxe suivante renvoie TRUE si le membre actuel de la dimension Market a l'attribut défini par l'utilisateur "Major Market" :

    IsUda([Market].CurrentMember, "Major Market")
  2. Lorsqu'elle est utilisée avec IsUDA (comme indiqué dans la syntaxe suivante), la fonction Filter parcourt chaque membre de la dimension Market et renvoie une valeur pour chaque membre ayant l'UDA du marché principal :

    Filter([Market].Members, IsUda([Market].CurrentMember, "Major Market"))
  3. La fonction Sum ajoute les valeurs renvoyées par la fonction Filter ; pour l'exemple Major Market, la formule suivante est générée :

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

    Cette formule est associée au membre Major Market Total.