En sélectionnant des tuples, vous pouvez cibler vos calculs Essbase dans la grille active Smart View, en limitant leur portée à des tranches spécifiques de données dans votre cube de stockage par blocs.
Les sections suivantes décrivent le calcul de tuple :
Pour connaître la syntaxe relative à l'emploi de @GRIDTUPLES dans un script de calcul, voir FIX…ENDFIX.
En sélectionnant des tuples, vous pouvez cibler vos calculs Essbase dans la grille active Smart View, en limitant leur portée à des tranches spécifiques de données dans votre cube de stockage par blocs.
La sélection de tuples vous aide à optimiser les calculs de grille asymétrique dans les dimensions et permet d'éviter des calculs excédentaires.
Les tuples de calcul Essbase diffèrent des tuples utilisés dans les interrogations MDX. La performance du calcul et la taille du cube sont principalement influencées par le nombre de blocs dans le cube (en fonction d'une taille de bloc spécifique). C'est la raison pour laquelle les tuples de calcul ne sont spécifiés que pour les combinaisons de membres dispersés. En outre, pour faciliter la définition de scripts de calcul, les membres multiples d'une seule dimension dispersée peuvent être inclus dans une spécification de calcul de tuple. Par exemple, si vous spécifiez ("New York", "California", "Actual", "Cola") comme tuple de calcul, vous calculez alors les intersections de cellule suivantes :
"New York"->"Actual"->"Cola" "California"->"Actual"->"Cola"
Étudions la grille symétrique suivante. Elle est symétrique parce que chaque produit a les mêmes marchés et scénario (Actual) représentés dans la grille.
La grille suivante est asymétrique car le produit Diet Cola comporte moins de marchés dans la grille que le produit Cola.
La portée du calcul par défaut, lorsque plus d'une dimension figure dans un énoncé FIX ou dans un point de vue (PDV) de grille Smart View, doit calculer le produit croisé (toutes les combinaisons possibles) des membres de l'énoncé FIX ou de la grille. Autrement dit, un calcul basé sur un PDV dans lequel la combinaison de produit-marché provient de la grille calcule toutes les combinaisons de rangée-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"
Il est probable que vous n'ayez pas besoin d'autant de calculs. Si vous voulez calculer uniquement les combinaisons affichées sur la grille, vous pouvez préciser les tuples à calculer et limiter le calcul à une tranche plus petite. Le calcul de 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 est un moyen de représenter une tranche de données de membres, à partir de deux dimensions dispersées ou plus, à utiliser dans un calcul de stockage par blocs Essbase.
Exemples de tuples de calcul valides :
("Diet Cola", "New York")
("Diet Cola", "Cola", Florida)
(Cola, "New Hampshire")
Si vous écrivez des expressions MDX, tenez compte des restrictions de tuple s'appliquant à MDX :
En revanche, lorsque vous sélectionnez des tuples dans des scripts de calcul, ces exigences sont levées. Vous pouvez écrire librement des expressions de tuple et les tuples peuvent décrire des listes de membres, comme dans le tuple suivant : (@Children(East), Cola)
.
Un moyen aisé de sélectionner des tuples consiste à les insérer explicitement dans un script de calcul, en tant que liste dans l'énoncé FIX.
Notez que le format d'un énoncé FIX se présente comme suit :
FIX (fixMbrs) COMMANDS ; ENDFIX
Dans l'énoncé FIX ci-dessous, deux tuples sont spécifiés avant que ne commence le bloc de commande. Les tuples sont encadrés par des accolades { } qui délimitent un jeu, autrement dit un ensemble de tuples.
FIX({ (@Children(East), Cola), ("New York", Florida, "Diet Cola") }) Sales (Sales = Sales + 10;); ENDFIX
L'autre moyen de sélectionner des tuples est contextuel, en fonction des membres qui sont présents dans un PDV de grille Smart View au moment de l'exécution du calcul. Pour ce faire, vous devez fournir la fonction @GRIDTUPLES en tant qu'argument pour l'énoncé FIX, dans votre script de calcul.
FIX ({@GRIDTUPLES(Product, Market)}) Sales (Sales = Sales + 10;); ENDFIX
Si vous exécutez le script de calcul à partir de Smart View par rapport à la grille ci-dessous, seules les combinaisons de produits et de marchés affichées sont calculées. Par exemple, "Diet Cola"->Massachusetts n'est pas calculé car il n'est pas affiché explicitement sur la grille. Notez que tous les scénarios (troisième dimension dispersée dans l'exemple de cube) sont calculés, même si seul Actual est affiché dans la grille. La raison en est que la dimension Scénario ne fait pas partie de l'énoncé GRIDTUPLES dans le script de calcul.
La sélection de tuples, que ce soit à l'aide de listes explicites de tuples ou de la fonction @GRIDTUPLES, ne s'applique que dans le contexte de la commande de calcul FIX…ENDFIX. La syntaxe de l'énoncé FIX est étendue pour permettre la sélection de tuples :
FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs) COMMANDS ; ENDFIX
À l'aide d'une grille Smart View et d'un énoncé FIX de script de calcul Essbase, vous pouvez calculer des tuples de membres sélectionnés en fonction d'un point de vue (PDV) de grille. Vous pouvez aussi entrer, de façon explicite, des combinaisons de tuple dans votre énoncé FIX, en supprimant la dépendance à une grille Smart View spécifique, afin de définir la portée du calcul.
Le calcul des tuples sélectionnés vous aide à utiliser efficacement des régions asymétriques dans les scripts de calcul et les grilles Smart View.
Étudions les exemples suivants :
Pour essayer les exemples, téléchargez le modèle de classeur CalcTuple_Tuple.xlsx
depuis la section Technique > Calcul
du dossier Galerie dans la zone Fichiers de l'interface Web d'Essbase. Pour obtenir des instructions, reportez-vous au fichier Lisez-moi (README) dans le classeur.
En présentant le comportement de calcul du stockage par blocs par défaut d'Essbase qui se produit lorsque vous ne sélectionnez pas de tuples, le script de calcul suivant calcule le produit croisé entier des membres des dimensions Produit et Marché à partir d'une grille Smart View.
À l'aide de deux variables de substitution à l'exécution (RTSV) définies dans le bloc SET RUNTIMESUBVAR, le calcul est limité aux points de vue Produit et Marché, quels qu'ils soient, qui sont présents dans la grille lorsque le calcul est exécuté depuis 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
À l'aide de la fonction @GRIDTUPLES pour sélectionner le tuple des dimensions Produit et Marché, ce script de calcul par blocs Essbase ne calcule les tuples que pour ces deux dimensions, en limitant sa portée aux seuls membres présents dans une grille Smart View au moment de l'exécution du calcul depuis Smart View.
FIX ( {@GRIDTUPLES(Product, Market)} ) Marketing( Marketing = Marketing + 1; ); ENDFIX
En ciblant uniquement les dimensions dispersées nommées dans le tuple, le calcul englobe un nombre nettement plus petit de blocs que ne le ferait un calcul par défaut. Toutefois, tous les membres des dimensions non mentionnés dans la cible (Année, Scénario) sont calculés par ce script de calcul.
À l'aide de la fonction @GRIDTUPLES et d'une variable de substitution à l'exécution, ce script de calcul de stockage par blocs Essbase calcule uniquement les tuples sélectionnés dans la grille, en fonction des sélections de dimension dispersée dans l'invite RTSV.
La variable de substitution à l'exécution &DimSelections, qui est définie dans le bloc SET RUNTIMESUBVARS, limite la portée du calcul aux seules dimensions dispersées du cube, en excluant le scénario. La fonction @GRIDTUPLES utilisée dans l'énoncé FIX appelle cette variable, en limitant le nombre d'intersections calculées.
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 dans l'exemple précédent, car dans ce cas, la définition de tuple s'étend à un plus grand nombre de dimensions dispersées au-delà de Produit->Marché.
Pour essayer les exemples, téléchargez le modèle de classeur CalcTuple_Tuple.xlsx
depuis la section Technique > Calcul du dossier Galerie dans la zone Fichiers de l'interface Web d'Essbase. Pour obtenir des instructions, reportez-vous au fichier Lisez-moi (README) dans le classeur.