Le script de calcul Essbase est le langage dont vous disposez pour écrire une logique métier personnalisée dans Financial Consolidation and Close. Cette section présente des constructions Essbase de base, ainsi que les restrictions appliquées à Financial Consolidation and Close. Pour plus de détails sur le script de calcul Essbase, reportez-vous à Mise en route sur Essbase Cloud pour les administrateurs.
Syntaxe commune
Sales = Sales * 1.50;
"Cash Ratio" = "Cash"/"Current Liabilities";
->
pour indiquer les croisements de plusieurs dimensions."Sales"->"Changes In Net Income"->"Product1";
Commentaires
Les commentaires débutent par /*
et se terminent par */
.
Les commentaires multi-ligne ou à une seule ligne sont pris en charge.
Vous pouvez utiliser l'icône de barre d'outils pour définir ou enlever des blocs de commentaires.
FIX/ENDFIX
FIX/ENDFIX fait partie des blocs de construction de base des scripts de calcul. Pour effectuer un calcul, vous devez définir une section FIX/ENDFIX, puis y placer les calculs métier réels.
Exemple : supposons que "Products" est votre dimension libre et que vous voulez calculer le nombre de télévisions vendues. Vous pouvez utiliser la syntaxe suivante :
FIX("Televisions")
"Units_Sold" = "LED_TVs" + "UHD_TVs";
ENDFIX
Le calcul métier réel est :
"Units_Sold = "LED_TVs" + "UHD_TVs";
, qui calcule le nombre de télévisions vendues.
Remarque :
Vous devez placer un point-virgule à la fin de chaque instruction de calcul, sauf FIX et ENDFIX.La section FIX/ENDFIX applique une limite aux membres des différentes dimensions qui participent aux calculs qu'elle contient. Dans cet exemple, les calculs portent seulement sur "Televisions".
Vous pouvez également définir des instructions FIX imbriquées, par exemple :
Le calcul ci-avant peut également être écrit de la manière suivante :
Par exemple, @List est une fonction Essbase. Essbase offre de nombreuses fonctions. Toutefois, Financial Consolidation and Close ne les prend pas toutes en charge. Reportez-vous à la section "Liste des fonctions Essbase" pour obtenir la liste des fonctions prises en charge.
Instruction FIX sur les dimensions Financial Consolidation and Close
Une application Financial Consolidation and Close peut contenir 13 dimensions, selon les fonctionnalités d'application activées. Parmi les 13 dimensions possibles, vous n'êtes pas autorisé à utiliser l'instruction FIX sur les dimensions suivantes, car le système leur applique automatiquement une instruction FIX lorsqu'un utilisateur appelle le processus de consolidation.
Scénario
Année
Période
Vue
Entité
Supposons, par exemple, que nous ayons l'instruction suivante :
Le système ne parvient pas à effectuer le déploiement et un message d'erreur est consigné dans la console de jobs avec les informations appropriées.
Toutefois, cela ne signifie pas que vous ne pouvez pas utiliser ces dimensions dans le script. Généralement, les calculs présentent une syntaxe semblable à celle indiquée ci-après :
Vous ne pouvez utiliser aucun membre des dimensions Scénario, Année, Période, Entité et Vue dans l'instruction FIX et dans la partie gauche ("Left hand side"). Cette restriction ne s'applique toutefois pas à la partie droite ("Right hand side") de l'équation.
La syntaxe suivante est autorisée :
Pour les huit dimensions restantes, si vous n'utilisez pas l'instruction FIX pour une dimension donnée, le système prend en compte tous les membres de cette dimension. Supposons, par exemple, que nous ayons l'instruction suivante :
Dans cet exemple, toutes les dimensions restantes comportent une instruction FIX, sauf Compte. Essbase prend donc en considération tous les membres de la dimension Compte pour les calculs de la section FIX/ENDFIX.
Membres Financial Consolidation and Close restreints
Au sein de chaque instance Financial Consolidation and Close, certains membres système ne doivent pas être utilisés ou calculés dans le script de calcul. Si ces membres restreints sont utilisés dans le calcul, le système ne parvient pas à effectuer la validation ou le déploiement et un message d'erreur est consigné dans la console de jobs.
Rappel : si aucun membre n'est indiqué pour la dimension, le système prend en compte TOUS ses membres. Toutefois, les membres restreints ne devant pas être inclus dans le processus, vous devez explicitement les exclure des instructions de dimension FIX ou de la partie gauche de l'expression.
Le tableau suivant contient la liste complète des membres de dimension Financial Consolidation and Close restreints. Les membres restreints pour les dimensions Devise et Consolidation dépendent de la règle d'insertion utilisée. Chaque règle d'insertion prédéfinie comporte, dans la section Commentaire, des informations sur les membres des dimensions Devise et Consolidation pouvant être inclus.
Tableau 19-5 Membres de dimension restreints
Dimension | Membre | Expression Partie gauche | Expression Partie droite |
---|---|---|---|
Scénario | Tous les membres | Non | Oui |
Année | Tous les membres | Non | Oui |
Période | Tous les membres | Non | Oui |
Vue | Tous les membres | Non | Oui |
Entité | Tous les membres | Non | Oui |
Compte | FCCS_CSTATUS | Non | Oui |
FCCS_CSTATUS FILTER | Non | Oui | |
Taux FX - Fin | Non | Oui | |
Taux FX - Moyenne | Non | Oui | |
Taux moyen | Non | Oui | |
Taux de fin | Non | Oui | |
SrcAverageRate | Non | Oui | |
TgtAverageRate | Non | Oui | |
SrcEndingRate | Non | Oui | |
TgtEndingRate | Non | Oui | |
FCCS_Balance | Non | Oui | |
FCCS_CTA | Non | Oui | |
FCCS_CICTA | Non | Oui | |
FCCS_Percent Control | Non | Oui | |
FCCS_Current Ratio | Non | Oui | |
FCCS_Quick Ratio | Non | Oui | |
FCCS_Cash Ratio | Non | Oui | |
FCCS_Inventory Turnover | Non | Oui | |
FCCS_Asset Turnover | Non | Oui | |
FCCS_Days Sales In Receivables | Non | Oui | |
FCCS_Days Sales In Inventory | Non | Oui | |
FCCS_Gross Profit Margin | Non | Oui | |
FCCS_Return on Sales | Non | Oui | |
FCCS_Return on Equity | Non | Oui | |
FCCS_Debt to Equity Ratio | Non | Oui | |
FCCS_Debt Ratio | Non | Oui | |
Source de données | FCCS_System Types | Non | Oui |
FCCS_Rate Override | Non | Oui | |
FCCS_Account Override | Non | Oui | |
FCCS_PCON | Non | Oui | |
FCCS_Driver Source | Non | Oui | |
Mouvement | FCCS_Opening Balance | Non | Oui |
FCCS_OpeningBalance_Cash | Non | Oui | |
FCCS_FX_Total_NonCash | Non | Oui | |
FCCS_ClosingBalanceCash | Non | Oui |
Instruction FIX sur tous les membres d'une dimension à l'exception des membres restreints
Il arrive fréquemment que vous deviez utiliser l'instruction FIX sur tous les membres de niveau 0 d'une dimension pouvant comporter des membres restreints. Cet exemple montre comment utiliser l'instruction FIX de manière optimale sur tous les membres de niveau 0 d'une dimension à l'exception de ses membres restreints.
Par exemple, la dimension Compte comporte le nombre de membres restreints le plus élevé.
Le fragment de code de script de calcul suivant permet d'utiliser l'instruction FIX sur tous les membres Compte de niveau 0 à l'exception des membres restreints :
@REMOVE( @LEVMBRS( "Account", 0 ), @LIST( @RELATIVE( "FCCS_System Account", 0 ),@RELATIVE( "FCCS_Drivers", 0 ),@RELATIVE( "FCCS_Ratios", 0 ),@RELATIVE( "Exchange Rates", 0 ) ) )
Instruction FIX sur les dimensions dispersées et sur les dimensions denses
L'instruction FIX est plus efficace sur les dimensions dispersées. Essbase n'extrait alors des blocs que pour la combinaison de membres de dimension dispersée définie dans l'instruction FIX et ignore le reste.
Les combinaisons dispersées font office d'index pour Essbase, qui recherche les blocs de données correspondants et les extrait en vue des calculs. Le système n'a pas besoin que tous les blocs soient extraits pour fonctionner.
Si l'instruction FIX est utilisée sur une dimension dense, des membres denses sont présents dans chaque bloc de données d'Essbase. Une utilisation incorrecte peut donc nuire aux performances. Lorsque l'instruction FIX est appliquée à une dimension dense, Essbase extrait tous les blocs de données sans en restreindre le nombre et ne se limite qu'à une portion de chaque bloc. Plusieurs passes dans la base de données peuvent alors s'avérer nécessaires pour renvoyer les informations.
Par exemple, vous pouvez faire référence à "Sales" et à "PostSales" de la dimension Compte avec les instructions suivantes :
Lorsque le système traite la première instruction FIX, qui concerne "Sales", Essbase extrait tous les blocs de données de la dimension Compte, mais utilise seulement le compte "Sales".
Ensuite, avec l'instruction FIX relative à "PostSales", Essbase extrait de nouveau tous les blocs de données de la dimension Compte, mais utilise seulement le compte "PostSales". Dans cet exemple, deux passes dans la base de données sont effectuées pour les deux comptes.
Pour ne pas nuire aux performances, vous pouvez éviter d'appliquer l'instruction FIX à la dimension Compte et utiliser plutôt IF...THEN pour les dimensions denses.
Dans cet exemple où vous n'utilisez pas l'instruction FIX, une seul passe dans la base de données Essbase est nécessaire.
Afin d'optimiser les performances de calcul, il est recommandé d'utiliser l'instruction FIX sur les dimensions dispersées et IF...THEN sur les dimensions denses.
Bloc de membres
Les blocs de membres sont également appelés blocs de calcul. Le terme "ancrage" est parfois utilisé pour les blocs de membres. La syntaxe des blocs de membres est la suivante :
L'exemple suivant présente des instructions de bloc de membres :
Dans cet exemple, "My Total Opening Balance" est appelé membre de bloc de calcul ou ancrage. Si possible, ce membre doit appartenir à une dimension dense.
Dans le calcul ci-avant, la limite concerne uniquement le membre "My FX Opening" et les calculs sont effectués sur le membre indiqué dans l'instruction FIX.
En cas d'utilisation d'instructions IF, un bloc de membres est nécessaire. Vous ne pouvez pas écrire d'instructions IF en dehors des blocs de membres.