Création d'une règle métier à l'aide d'un test d'unité

Création d'un test d'unité

Lorsque vous créez et déboguez des règles métier, souvenez-vous que les calculs Oracle Essbase reposent sur un système de références relatives dans lequel Essbase calcule la syntaxe fournie au fur et à mesure de son passage par les blocs de l'instruction FIX. Par conséquent, le moyen le plus simple de créer ou de déboguer une règle métier est de se concentrer sur chaque calcul individuel : choisissez une combinaison calculée et vérifiez si elle fonctionne. Vous pouvez ainsi travailler avec un plus petit nombre de valeurs si la règle métier ne fonctionne pas et accélérer le calcul effectué par la règle métier. Une fois que le test d'unité a effectué le calcul, vous pouvez tester un ensemble de données plus volumineux.

Prenons par exemple le scénario suivant : vous voulez calculer un pourcentage du coût des ventes afin d'identifier la répartition entre les produits et écrire la valeur calculée sur un nouveau membre nommé COS Product% pour tous les mois, toutes les années, tous les scénarios et tous les services. Dans ce cas, vous devez créer la règle métier pour le compte COS Product%, puis choisir un produit comme test d'unité unique pour un service, un mois, une année et un scénario.

La formule à calculer pour le membre COS Product% dans la dimension Account dense est la suivante : COS Product% = "Cost of Sales" as a Percentage of "Cost of Sales"->Total Product.

Vous pouvez ensuite créer une feuille de calcul contenant toutes les valeurs de données individuelles nécessaires au calcul pour une combinaison spécifique (une unité). Pour ce faire, vous pouvez choisir "Sales Central" ->Jan->FY15->Forecast for the "Television".product, un accessoire d'ordinateur.

Dans cet exemple, Television a une valeur Cost of Sales de 12 et Total Products a une valeur de 100, les seules valeurs de la base de données sont donc les valeurs de 9 membres Product pour le compte COS, toutes incluses dans la prévision de janvier FY15 pour "Sales Central". Vous démarrez par conséquent avec une base de données qui a été effacée et contient uniquement des données d'entrée levl0 et vous créez une requête ad hoc Oracle Smart View for Office pour extraire les valeurs de données suivantes dont vous avez besoin.
Données extraites de l'exemple de scénario

La formule pour cette combinaison ou ce test d'unité est la suivante : COS Product% (D3) = = COS (D1) as a Percentage of Total Product COS (D2), autrement dit, cette feuille de calcul contient toutes les données requises pour effectuer un test d'unité sur cette règle métier.

Utilisation du test d'unité pour créer des règles métier

Démarrez la règle métier afin de calculer le membre COS Product% = avec COS (première partie de la formule). Observez la différence entre la ligne cible (ligne 3) et la source de données. Pour COS (COS individuel), observez la différence entre la ligne 3 et la ligne 1 de la colonne C, qui identifient toutes les deux Television. L'unique différence de membres entre la ligne 3 et la ligne 1 se trouve dans Account, ce qu'il nous suffit d'indiquer ainsi :

COS Product% = COS %

Faites la même chose pour la seconde partie de la formule (COS total), c'est-à-dire COS au niveau supérieur de Product. Il existe deux différences entre la ligne 3 et la ligne 2 : COS et Product. Par conséquent, indiquez l'emplacement dans Product également pour compléter la formule :

COS Product% = COS % ->Product;

A ce stade, si vous exécutez cette règle, la valeur #missing est extraite au lieu du total correct, comme indiqué dans l'illustration ci-dessous :
Données extraites de l'exemple de scénario
Vous devez précalculer les données requises (COS total dans la cellule D2) pour obtenir le total correct.

Précalcul des données requises

Pour précalculer les données requises et garantir que la règle métier COS Product% = COS % ->Product; renvoie la valeur correcte, vous devez y inclure COS en modifiant la règle comme suit :
Fix (COS)
Agg (Product);
EndFix
COS Product% = COS % ->Product;