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.
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.
La grille suivante est asymétrique car le produit Diet Cola a moins de marchés dans la grille que le produit 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"
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 :
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)
.
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.
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
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 :
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.
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
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).
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.