Fonctions liées aux membres

Utilisez les fonctions de membre Essbase dans les formules pour spécifier des listes et des plages de membres, générer des listes de membres, manipuler les noms de membre et utiliser des combinaisons de membres entre les dimensions.

Spécifier des listes et des plages de membres

Lors de l'utilisation de certaines fonctions de calcul Essbase, vous devrez peut-être saisir une liste de membres de l'outline et/ou une plage de membres. Les listes peuvent être des listes de noms de membres littéraux séparées par des virgules ou peuvent être renvoyées par des fonctions de calcul. Les plages peuvent être spécifiées à l'aide de la syntaxe deux-points ou peuvent être renvoyées par des fonctions de calcul.

Par exemple, la fonction @ISMBR vérifie si un membre en cours de calcul correspond à l'une des listes ou plages de membres spécifiées.

Le tableau suivant répertorie la syntaxe de spécification des membres :

Tableau 17-8 Syntaxe de la spécification des listes et des plages de membres

Liste ou plage de membres Syntaxe

Un seul membre

Nom du membre.

Exemple :

Mar2001

Une liste de membres

Liste de noms de membre séparés par des virgules (,).

Exemple :

Mar2001, Apr2001, May2001

Une plage de tous les membres au même niveau, entre et incluant les deux membres définissant

Les deux noms de membre de définition sont séparés par le signe deux-points ( :). Exemple :

Jan2000:Dec2000

Une plage de tous les membres de la même génération, entre et incluant les deux membres définissant

Les deux noms de membre définissant séparés par deux points-virgules ( : :).

Exemple :

Q1_2000::Q4_2000

Liste de membres générée par une fonction ou plage de membres

Pour obtenir la liste des contenus des listes de membres et des fonctions correspondantes, reportez-vous à Génération de listes de membres.

Combinaison de plages et de listes

Séparez chaque plage, liste et fonction par une virgule (,).

Exemple :

Q1_97::Q4_98, FY99, FY2000

ou

@SIBLINGS(Dept01), Dept65:Dept73, Total_Dept

Si vous n'indiquez pas de liste de membres ou de plage de membres dans une fonction nécessitant l'un ou l'autre, Essbase utilise les membres de niveau 0 de la dimension balisée en tant que temps. Si aucune dimension n'est marquée comme temps, Essbase affiche un message d'erreur.

Générer des listes de membres

Les fonctions d'ensemble de membres Essbase vous permettent de générer des listes de membres basées sur un membre ou une liste de membres spécifique.

Tableau 17-9 Liste des fonctions d'ensemble de membres

Fonction Contenu de la liste des membres

@ALLANCESTORS

Tous les ancêtres du membre spécifié, y compris ceux de ce membre en tant que membre partagé. Cette fonction n'inclut pas le membre spécifié.

@IALLANCESTORS

Tous les ancêtres du membre spécifié, y compris ceux de ce membre en tant que membre partagé. Cette fonction inclut le membre spécifié.

@ANCEST

Ancêtre du membre indiqué, à la génération ou au niveau indiqué

@ANCESTORS

Tous les ancêtres du membre indiqué (en option, jusqu'à la génération ou au niveau spécifié), mais pas le membre indiqué

@IANCESTORS

Tous les ancêtres du membre indiqué (en option, jusqu'à la génération ou au niveau indiqué), y compris le membre indiqué

@LANCESTORS

Tous les ancêtres de la liste de membres indiquée (en option, jusqu'à la génération ou au niveau indiqué), mais pas les membres indiqués

@ILANCESTORS

Tous les ancêtres de la liste de membres indiquée (en option, jusqu'à la génération ou au niveau indiqué), y compris les membres indiqués

@ATTRIBUT

Tous les membres de dimension de base associés au membre de dimension d'attribut indiqué

@WITHATTR

Tous les membres de base associés à des attributs qui satisfont aux conditions spécifiées

@BETWEEN

Tous les membres dont le nom de chaîne de valeur est compris entre deux jetons de chaîne spécifiés (inclus)

@CHILDREN

Tous les enfants du membre spécifié, mais pas le membre spécifié

@ICHILDREN

Tous les enfants du membre spécifié, y compris le membre spécifié

@CURRMBR

Membre en cours calculé pour la dimension indiquée

@DESCENDANTS

Tous les descendants du membre indiqué (facultatif, jusqu'à la génération ou au niveau indiqué), mais pas le membre indiqué ni les descendants des membres partagés

@IDESCENDANTS

Tous les descendants du membre indiqué (facultatif, jusqu'à la génération ou au niveau indiqué), y compris le membre indiqué, mais pas les descendants des membres partagés

@LDESCENDANTS

Tous les descendants de la liste de membres indiquée (en option, jusqu'à la génération ou au niveau indiqué), mais pas les membres indiqués

@ILDESCENDANTS

Tous les descendants de la liste de membres indiquée (éventuellement, jusqu'à la génération ou au niveau indiqué), y compris les membres indiqués

@RDESCENDANTS

Tous les descendants du membre indiqué (facultatif, jusqu'à la génération ou au niveau indiqué), y compris les descendants des membres partagés, mais pas le membre indiqué

@IRDESCENDANTS

Tous les descendants du membre indiqué (en option, jusqu'à la génération ou au niveau indiqué), y compris le membre indiqué et les descendants des membres partagés

@EQUAL

Noms de membre correspondant au nom du jeton spécifié

@NOTEQUAL

Noms de membre ne correspondant pas au nom du jeton spécifié

@EXPAND

Développe une recherche de Membres en appelant une fonction de sélection d'un ensemble de Membres pour chaque Membre d'une liste de Membres.

@GENMBRS

Tous les membres de la génération indiquée dans la dimension indiquée

@LEVMBRS

Tous les membres du niveau spécifié dans la dimension indiquée

@LIKE

Noms de membre qui correspondent au modèle spécifié.

@LIST

Listes distinctes de membres à traiter par des fonctions nécessitant plusieurs arguments de liste

@CORRESPONDANCE

Tous les membres qui correspondent à la sélection de caractères génériques spécifiée

@MBRCOMPARE

Noms de membre correspondant aux critères de comparaison

@MBRCOMPARE

Parent du membre spécifié

@MEMBRE

Membre avec le nom indiqué en tant que chaîne de caractères

@MERGE

Une liste fusionnée de deux listes à traiter par une autre fonction

@PARENT

Parent du membre en cours dans la dimension spécifiée

@PLAGE

Liste de membres qui croise le membre indiqué d'une dimension avec la plage de membres spécifiée d'une autre dimension

@SUPPRIMER

Liste des membres dont certains ont été retirés

@RELATIVE

Tous les membres d'une génération ou d'un niveau donné qui sont au dessus ou en dessous du membre spécifié

@PARTAGE

Liste de membres qui identifie tous les membres partagés parmi les membres indiqués.

@SIBLINGS

Tous les semblables du membre spécifié, mais pas le membre spécifié

@ISIBLINGS

Tous les semblables du membre spécifié, y compris le membre spécifié

@LSIBLINGS

Tous les semblables qui précèdent le membre indiqué dans l'outline de la base de données, mais pas le membre indiqué

@RSIBLINGS

Tous les semblables qui suivent le membre indiqué dans l'outline de la base de données, mais pas le membre indiqué

@ILSIBLINGS

Tous les semblables qui précèdent le membre indiqué dans l'outline de la base de données, y compris le membre indiqué

@IRSIBLINGS

Tous les semblables qui suivent le membre indiqué dans l'outline de la base de données, y compris le membre indiqué

@SHIFTSIBLING

Le frère à la distance spécifiée du membre

@NEXTSIBLING

Le prochain, ou le plus à droite, frère du membre

@PREVSIBLING

Le frère précédent ou le frère le plus à gauche du membre

@UDA

Tous les membres ayant un ADU commun défini sur le serveur Essbase

@XRANGE

Une liste de membres qui identifie la plage de membres entre deux membre unique ou inter-dimensionnels spécifiés (inclus) au même niveau

Manipuler les noms de membre

Vous pouvez utiliser les noms de membre Essbase en tant que chaînes de caractères dans les formules en mode "block storage" et les scripts de calcul.

Le tableau suivant répertorie les fonctions de manipulation des chaînes de caractères :

Tableau 17-10 Liste des fonctions de manipulation de chaînes de caractères

Fonction Manipulation des chaînes de caractères

@CONCATENATE

Créer une chaîne de caractères résultant de l'ajout d'un nom de membre ou d'une chaîne de caractères spécifiée à un autre nom de membre ou chaîne de caractères

@NAME

Renvoyer un nom de membre sous forme de chaîne

@SUBSTRING

Renvoyer une sous-chaîne de caractères provenant d'une autre chaîne de caractères ou d'un nom de membre

Utiliser des combinaisons de membres entre les dimensions

Les opérateurs interdimensionnels -> dans les formules Essbase permettent de référencer les valeurs de données multidimensionnelles de combinaisons de membres spécifiques. La commande FIX peut améliorer les performances.

Utilisez l'opérateur inter-dimensionnel pour pointer vers les valeurs de données de combinaisons de membres spécifiques. Créez l'opérateur inter-dimensionnel à l'aide d'un tiret (-) et d'un symbole supérieur à (>). N'incluez pas d'espace entre l'opérateur inter-dimensionnel et les membres.

Remarques :

L'utilisation de l'opérateur interdimensionnel peut avoir des conséquences importantes sur les performances. Pour obtenir des instructions sur l'optimisation, reportez-vous à Opérateurs interdimensionnels dans les formules de membre.

Vous trouverez ci-dessous une illustration simplifiée d'un cube multidimensionnel, dans lequel Jan est la première colonne de l'axe des X, Sales est la quatrième ligne la plus élevée de l'axe des Y et Actual la première ligne de l'axe des Z. Dans cet exemple, Sales -> Jan -> Actual correspond au croisement d'une seule valeur de données.

Figure 17-2 Spécification d'une seule valeur de données


Cette image montre un cube, dans lequel l'intersection d'une seule valeur de données est affichée, comme décrit dans le texte précédant le tableau.

L'exemple suivant, qui alloue des charges diverses à chaque produit de chaque marché, illustre l'utilisation de l'opérateur interdimensionnel. La valeur de Misc_Expenses pour tous les produits de tous les marchés est connue. La formule alloue un pourcentage de la valeur Misc_Expenses totale à chaque combinaison Produit -> Marché. L'allocation est basée sur la valeur des ventes pour chaque produit sur chaque marché.

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

Essbase parcourt la base de données en effectuant les calculs suivants :

  1. Divise la valeur Sales de la combinaison membre actuelle par la valeur Sales totale de tous les marchés et de tous les produits (Sales -> Market -> Product).

  2. Multiplie la valeur calculée à l'étape 1 par la valeur Misc_Expenses pour tous les marchés et tous les produits (Misc_Expenses -> Marché -> Produit).

  3. Affecte le résultat à Misc_Expenses pour la combinaison de membres actuelle.