Calcul de tuples sélectionnés

En sélectionnant des tuples, vous pouvez axer vos calculs Essbase sur la grille Smart View active, ce qui limite leur portée à des secteurs spécifiques de données dans votre cube en mode "block storage".

Les sections suivantes décrivent le calcul de tuple :

Pour connaître la syntaxe permettant d'utiliser @GRIDTUPLES dans un script de calcul, reportez-vous à FIX…ENDFIX.

Cas d'emploi pour le calcul de tuple

En sélectionnant des tuples, vous pouvez axer vos calculs Essbase sur la grille Smart View active, ce qui limite leur portée à des secteurs spécifiques de données dans votre cube en mode "block storage".

La sélection de tuples vous permet d'optimiser les calculs de grille asymétrique dans les dimensions, en évitant un calcul excessif.

Les tuples de calcul Essbase sont différents des tuples utilisés dans les requêtes MDX. Les performances de calcul et la taille du cube dépendent principalement du nombre de blocs dans le cube (en fonction d'une taille de bloc donnée). C'est pourquoi les tuples de calcul sont indiqués uniquement pour les combinaisons de membres dispersés. En outre, pour faciliter le script de calcul, plusieurs membres d'une même dimension dispersée peuvent être inclus dans une spécification de tuple de calcul. Par exemple, si vous indiquez ("New York", "California", "Actual", "Cola") comme tuple de calcul, vous calculez les croisements de cellules suivants :

"New York"->"Actual"->"Cola"
"California"->"Actual"->"Cola"

Observons la grille symétrique suivante. Elle est symétrique car les mêmes marchés et le même scénario (Actual) sont représentés pour tous les produits dans la grille.

Grille symétrique contenant les valeurs Actual et Jan pour cinq marchés pour Cola, et les cinq mêmes marchés pour Diet Cola

La grille suivante est asymétrique car le produit Diet Cola a moins de marchés dans la grille que le produit Cola.

Grille asymétrique contenant les valeurs Actual et Jan pour cinq marchés pour Cola, et seulement deux marchés pour Diet Cola

Lorsque plusieurs dimensions se trouvent dans une instruction FIX ou un point de vue (PDV) Smart View, la portée de calcul par défaut correspond au calcul du produit croisé (toutes les combinaisons possibles) des membres de l'instruction FIX ou de la grille. Autrement dit, un calcul induit par le PDV, dans lequel les combinaisons de produits et de marchés proviennent de la grille, calcule toutes les combinaisons ligne-membre suivantes :

Cola->"New York"
Cola->"Massachusetts"
Cola->"Florida"
Cola->"Connecticut"
Cola->"New Hampshire"
"Diet Cola"->"New York"
"Diet Cola"->"Massachusetts"
"Diet Cola"->"Florida"
"Diet Cola"->"Connecticut"
"Diet Cola"->"New Hampshire"

Vous n'avez peut-être pas besoin d'autant de calculs. Si vous souhaitez calculer uniquement les combinaisons figurant dans la grille, vous pouvez indiquer les tuples à calculer et limiter le calcul à une plus petite tranche. Le calcul des tuples peut également réduire le temps de calcul et la taille du cube.

Cola->"New York"
Cola->"Massachusetts"
Cola->"Florida"
Cola->"Connecticut"
Cola->"New Hampshire"
"Diet Cola"->"New York"
"Diet Cola"->"Florida"

Présentation du calcul basé sur des tuples

Un tuple de calcul permet de représenter un secteur de données de membres, à partir d'au moins deux dimensions dispersées, afin de l'utiliser dans un calcul en mode "block storage" Essbase.

Exemples de tuples de calcul valides :

  • ("Diet Cola", "New York")
  • ("Diet Cola", "Cola", Florida)
  • (Cola, "New Hampshire")

Si vous écrivez des expressions MDX, vous connaissez peut-être ces restrictions concernant les tuples qui s'appliquent à MDX :

  • Un seul membre de chaque dimension peut être inclus dans un tuple MDX.
  • Tous les tuples d'un ensemble MDX doivent avoir les mêmes dimensions représentées, dans le même ordre.

Toutefois, lorsque vous sélectionnez des tuples dans les scripts de calcul, ces exigences sont assouplies pour des raisons pratiques. Vous pouvez écrire librement des expressions de tuple, et les tuples peuvent décrire des listes de membres, comme les tuples suivants : (@Children(East), Cola).

Sélection de tuples pour le calcul de point de vue

Une manière simple de sélectionner des tuples consiste à les insérer explicitement dans un script de calcul, en tant que liste dans l'instruction FIX.

Rappel du format d'une instruction FIX :

FIX (fixMbrs)
COMMANDS ;
ENDFIX

Dans l'instruction FIX ci-dessous, deux tuples sont indiqués avant le début du bloc de commandes. Les tuples sont placés entre accolades { }. Ces dernières délimitent un ensemble, c'est-à-dire une collection de tuples.

FIX({
  (@Children(East), Cola),
  ("New York", Florida, "Diet Cola")
  })
Sales (Sales = Sales + 10;);
ENDFIX

Il est également possible de sélectionner des tuples en contexte, en fonction des membres présents dans un PDV de grille Smart View lors de l'exécution du calcul. Pour ce faire, indiquez la fonction @GRIDTUPLES en tant qu'argument dans l'instruction FIX, dans votre script de calcul.

FIX ({@GRIDTUPLES(Product, Market)})
   Sales (Sales = Sales + 10;);
ENDFIX

Si vous exécutez ce script de calcul à partir de Smart View pour la grille ci-dessous, seules les combinaisons de produits et de marchés affichées sont calculées. Par exemple, la combinaison "Diet Cola"->"Massachusetts" n'est pas calculée car elle n'apparaît pas explicitement dans la grille. Tous les scénarios (la troisième dimension dispersée dans ce cube échantillon) sont calculés, même si seul Actual est visible dans la grille, puisque la dimension Scenario ne fait pas partie de l'instruction GRIDTUPLES dans le script de calcul.

Grille asymétrique contenant les valeurs Actual et Jan pour cinq marchés pour Cola, et seulement deux marchés pour Diet Cola

Que vous sélectionniez les tuples à l'aide de listes de tuples explicites ou de la fonction @GRIDTUPLES, la sélection est uniquement applicable dans le contexte de la commande de calcul FIX…ENDFIX. La syntaxe de l'instruction FIX est développée pour permettre de sélectionner les tuples :

FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs)
COMMANDS ;
ENDFIX
  • tupleList : ensemble de tuples séparés par des virgules.
  • dimensionList : au moins deux dimensions dispersées dont les membres de la grille Smart View active sont utilisés pour définir les régions de calcul. (Dans les scripts de calcul, vous pouvez uniquement employer des dimensions dispersées pour définir les tuples.)
  • fixMbrs : membre ou liste de membres.

Exemples de sélection de tuples pour réduire la portée de calcul

A l'aide d'une grille Smart View et d'une instruction FIX de script de calcul Essbase, vous pouvez calculer des tuples de membres sélectionnés en fonction du point de vue (PDV) de grille. Vous pouvez également saisir explicitement les combinaisons de tuples dans votre instruction FIX, en enlevant la dépendance à une grille Smart View donnée pour définir la portée du calcul.

Le calcul des tuples sélectionnés vous aide à utiliser efficacement les régions asymétriques à la fois dans les scripts de calcul et les grilles Smart View.

Prenons les exemples suivants :

  • Aucune sélection de tuples : effectue le calcul par défaut, en fonction du point de vue (PDV) de grille Smart View en cours. Le calcul ne se limite à aucun tuple en particulier.
  • Sélection de dimensions dispersées nommées : calcule les tuples d'au moins deux dimensions dispersées nommées dans un script de calcul. Le calcul est limité aux membres des dimensions de tuple figurant dans la grille Smart View.
  • Sélection de dimensions dispersées contextuelles : calcule les tuples des dimensions dispersées sélectionnées au moment de l'exécution. Le calcul est limité aux membres des dimensions de tuple figurant dans la grille Smart View.

Pour tester les exemples, téléchargez le modèle de classeur CalcTuple_Tuple.xlsx à partir de la section Technical > Calc du dossier Galerie dans la zone Fichiers de l'interface Web Essbase. Reportez-vous à la feuille de calcul README dans le classeur pour obtenir des instructions.

Aucune sélection de tuples

Le script de calcul suivant montre le comportement de calcul Essbase en mode "block storage" par défaut lorsque vous ne sélectionnez aucun tuple. Il calcule le produit croisé complet des membres de dimension Product et Market à partir d'une grille Smart View.

Grâce à deux variables de substitution d'exécution définies dans le bloc SET RUNTIMESUBVARS, le calcul est limité à tous les points de vue Product et Market présents dans la grille lorsque le calcul est exécuté à partir de Smart View.

SET RUNTIMESUBVARS
{
ProductGridMembers = POV
<RTSV_HINT><svLaunch>
<description>All Product's members on the grid</description>
<type>member</type>
<dimension>Product</dimension><choice>multiple</choice>
</svLaunch></RTSV_HINT>;
MarketGridMembers = POV
<RTSV_HINT><svLaunch>
<description>All Market's members on the grid</description>
<type>member</type> <dimension>Market</dimension><choice>multiple</choice>
</svLaunch></RTSV_HINT>;
};
FIX (
&ProductGridMembers, &MarketGridMembers
)
Marketing(
   Marketing = Marketing +1;
);
ENDFIX

Sélection de dimensions dispersées nommées

Ce script de calcul Essbase en mode "block storage" utilise la fonction @GRIDTUPLES pour sélectionner le tuple des dimensions Product et Market, et calcule uniquement les tuples de ces deux dimensions, limitant sa portée aux membres présents dans une grille Smart View au moment de l'exécution du calcul à partir de Smart View.

FIX (
{@GRIDTUPLES(Product, Market)}
)
Marketing(
   Marketing = Marketing + 1;
);
ENDFIX

En incluant dans l'instruction FIX uniquement les dimensions dispersées nommées dans le tuple, le calcul englobe un bien plus petit nombre de blocs qu'un calcul par défaut. Toutefois, ce script de calcul calcule tous les membres des dimensions non mentionnées dans l'instruction FIX (Year, Scenario).

Sélection de dimensions dispersées contextuelles

A l'aide de la fonction @GRIDTUPLES et d'une variable de substitution d'exécution, ce script de calcul Essbase en mode "block storage" calcule uniquement les tuples sélectionnés dans la grille, en fonction des sélections de dimensions dispersées dans l'invite RTSV.

La variable de substitution d'exécution &DimSelections, qui est définie dans le bloc SET RUNTIMESUBVARS, limite la portée du calcul aux dimensions dispersées du cube uniquement, à l'exception de Scenario. La fonction @GRIDTUPLES utilisée dans l'instruction FIX appelle cette variable, ce qui limite le nombre de croisements calculés.

SET RUNTIMESUBVARS
            {
            DimSelections = "Version", "Site", "Entity", "Product", "Market"
            <RTSV_HINT><svLaunch>
            <description>List two or more sparse dimensions used for forming calculation tuples:</description>
            <type>string</type>
            </svLaunch></RTSV_HINT>;
            };
            FIX (
            {@GRIDTUPLES(&DimSelections)}
            )
            Marketing(
            Marketing = Marketing + 1;
            );
            ENDFIX
        

Le calcul englobe un nombre de blocs encore plus petit que l'exemple précédent. En effet, dans le cas présent, la définition du tuple s'étend à davantage de dimensions dispersées au-delà de Product->Market.

Pour tester les exemples, téléchargez le modèle de classeur CalcTuple_Tuple.xlsx à partir de la section Technique > Calcul du dossier Galerie dans la zone Fichiers de l'interface Web Essbase. Reportez-vous à la feuille de calcul README dans le classeur pour obtenir des instructions.