Répartir les coûts entre les produits

Cet exemple de script de calcul en mode "block storage" Essbase alloue des frais généraux à chaque produit de chaque marché pour chaque mois. Il utilise ARRAY, FIX et CALC DIM. Il n'agrége pas les valeurs #Missing.

Les coûts indirects sont répartis en fonction de la valeur des ventes de chaque produit sous forme de pourcentage du total des ventes pour tous les produits.

Supposons que vous ayez ajouté deux membres à la dimension Measures :

  • OH_Coûts pour les frais généraux alloués

  • OH_TotalCost pour le total des frais généraux

Exemple de script:

/* Declare a temporary array called ALLOCQ based on the Year dimension */

ARRAY ALLOCQ[Year];

/* Turn the Aggregate Missing Values setting off. If this is your system default, omit this line */

SET AGGMISSG OFF;

/* Allocate the overhead costs for Actual values */

FIX(Actual)
   OH_Costs (ALLOCQ=Sales/Sales->Product; OH_Costs = 
   OH_TotalCost->Product * ALLOCQ;);

/* Calculate and consolidate the Measures dimension */

   CALC DIM(Measures);
ENDFIX

Essbase effectue les calculs suivants :

  1. Crée un tableau unidimensionnel nommé ALLOCQ pour stocker temporairement la valeur de Sales sous forme de pourcentage du total Sales pour chaque combinaison de membres.

    La taille d'ALLOCQ est basée sur le nombre de membres de la dimension Year.

  2. Les valeurs #MISSING ne sont pas agrégées pour leurs parents (SET AGGMISSG est défini sur OFF). Les valeurs de données stockées aux niveaux parent ne sont pas écrasées.

    Si SET AGGMISSG OFF est la valeur par défaut de votre système, omettez cette ligne. Reportez-vous à la section #MISSING Values.

    • Corrige les valeurs Réel.

    • Parcourt les combinaisons de membres pour Actual et calcule les coûts OH_Costs.

    • Prend la valeur des ventes pour chaque produit de chaque marché pour chaque mois et la calcule en pourcentage du total des ventes pour tous les produits de chaque marché (Ventes -> Produit). Le résultat est placé dans ALLOCQ.

    • Prend le total des frais généraux pour tous les produits (OH_TotalCost -> Produit) et le multiplie par la valeur qu'il vient de placer dans ALLOCQ. Le résultat est placé dans OH_Costs.

      Notez que les deux équations sont placées entre parenthèses ( ) et associées au membre OH_Costs : OH_Costs (équation1 ; équation2 ;).

  3. Calcule et consolide la dimension Mesures.