Activer les calculs sur les blocs potentiels

Lorsque vous utilisez une formule sur un membre dense dans une dimension dense, si les valeurs résultantes proviennent d'une dimension dense et que l'opérande ou les opérandes proviennent d'une dimension dispersée, Essbase ne crée pas automatiquement les blocs requis.

Si vous devez créer les blocs, vous pouvez concevoir des scripts de calcul Essbase pour copier des valeurs, créer des blocs et limiter la création de valeurs inutiles.

Dans l'exemple suivant, supposons que vous vouliez créer des données budgétaires sur les ventes et les dépenses à partir de données réelles existantes. Sales et Expenses sont des membres de la dimension Mesures denses. Budget et Actual sont des membres de la dimension Scénario dispersée.

FIX(Budget)
   (Sales = Sales -> Actual * 1.1;
   Expenses = Expenses -> Actual * .95;)
ENDFIX

Sales and Expenses, les résultats des équations, sont des membres de dimension dense ; l'opérande Actual se trouve dans une dimension dispersée. Etant donné qu'Essbase exécute des formules de membre dense uniquement sur des blocs de données existants, le script de calcul ne crée pas les blocs de données requis et les valeurs de données Budget ne sont pas calculées pour les blocs qui n'existent pas encore.

Vous pouvez résoudre le problème à l'aide des techniques suivantes :

Copier les blocs existants avec DATACOPY

Vous pouvez utiliser la commande DATACOPY dans les scripts de calcul en mode "block storage" Essbase pour créer un bloc pour chaque bloc existant, puis effectuer des calculs sur les nouveaux blocs.

Exemple :

DATACOPY Sales -> Actual TO Sales -> Budget;
DATACOPY Expenses -> Actual TO Expenses -> Budget;
FIX(Budget)
   (Sales = Sales -> Actual * 1.1;
   Expenses = Expenses -> Actual * .95;)
ENDFIX

Essbase crée des blocs qui contiennent les valeurs Budget pour chaque bloc Actual correspondant existant. Une fois les commandes DATACOPY terminées, la partie restante du script modifie les valeurs.

L'utilisation de DATACOPY fonctionne bien dans ces situations :

  • Il existe une relation mathématique entre les valeurs des blocs existants et leurs homologues créées par la méthode DATACOPY.

    Par exemple, dans l'exemple précédent, les valeurs Budget peuvent être calculées en fonction des valeurs Actual existantes.

    Attention :

    DATACOPY crée les nouveaux blocs avec des valeurs identiques dans toutes les cellules des blocs source. Si la formule ne fonctionne que sur une partie du bloc, ces cellules copiées restent à la fin du calcul, ce qui peut entraîner des valeurs indésirables.

  • Aucun des blocs copiés ne contient que des valeurs #MISSING.

    Si des valeurs #MISSING existent, des blocs contenant uniquement des valeurs #MISSING sont écrits. Les blocs #MISSING inutiles nécessitent une ressource Essbase et un temps de traitement.

Voir aussi

DATACOPY

Calculer tous les blocs potentiels avec SET CREATENONMISSINGBLK

Utilisez la commande SET CREATENONMISSINGBLK dans les scripts de calcul en mode "block storage" Essbase pour limiter les valeurs indésirables lors du calcul sur des dimensions denses ou dispersées.

Si vous êtes préoccupé par les valeurs indésirables, au lieu d'utiliser la fonction DATACOPY, vous pouvez utiliser la commande de calcul SET CREATENONMISSINGBLK ON, qui calcule tous les blocs potentiels en mémoire, puis stocke uniquement les blocs calculés contenant des valeurs de données. La commande de calcul SET CREATENONMISSINGBLK peut être utile lors du calcul de valeurs sur des dimensions denses ou dispersées.

L'exemple suivant crée des données budgétaires sur les ventes et les dépenses à partir de données réelles existantes. Sales et Expenses sont des membres de la dimension Mesures denses. Budget et Actual sont des membres de la dimension Scénario dispersée.

FIX(Budget)
SET CREATENONMISSINGBLK ON
   (Sales = Sales -> Actual * 1.1;
   Expenses = Expenses -> Actual * .95;)
ENDFIX

Remarques :

Si SET CREATEBLOCKONEQ ON est défini pour les dimensions dispersées, SET CREATENONMISSINGBLK ON remplace temporairement SET CREATEBLOCKONEQ ON jusqu'à ce qu'une commande SET CREATENONMISSINGBLK OFF soit rencontrée ou que le script de calcul soit terminé.

L'avantage de la commande SET CREATENONMISSINGBLK est que, lorsqu'elle est appliquée aux membres denses, seules les cellules de données affectées par la formule de membre sont enregistrées. L'inconvénient est que trop de blocs potentiels peuvent être matérialisés en mémoire, ce qui peut affecter les performances de calcul. Lorsque vous utilisez cette commande, il est préférable de limiter le nombre de blocs potentiels en utilisant FIX pour limiter la portée des blocs à calculer.