Résolution des avertissements de validation de script de calcul

Lorsque vous créez et validez des calculs configurables ou des règles à la demande utilisant un script de calcul Essbase, dans le cadre du processus de validation, Financial Consolidation and Close affiche des avertissements sur les problèmes susceptibles de provoquer une dégradation des performances lors de l'exécution de la règle. Pour consulter ces avertissements, sélectionnez l'onglet Erreurs et avertissements dans Calculation Manager et cliquez sur le bouton vert pour exécuter les diagnostics de script.

Dans la capture d'écran suivante, les cellules encadrées en vert sont des avertissements de Financial Consolidation and Close. Les autres avertissements affichés proviennent de Calculation Manager.


Validations de règle dans Calc Manager

Remarque :

Les avertissements de validation de règle Financial Consolidation and Close sont également affichés dans le module Recommandations. Reportez-vous à la section Affichage des recommandations d'application.

Les messages d'avertissement sont triés et affichés selon le numéro de ligne du script.

Pour visualiser les avertissements de validation de règle dans Calculation Manager, procédez comme suit :

  1. Ouvrez Calculation Manager et sélectionnez l'onglet Erreurs et avertissements.
  2. Cliquez sur l'icône Exécuter pour afficher les avertissements.

Les sections suivantes fournissent des détails sur la résolution des avertissements de validation de règle.

Validation de script Calc Manager pour l'utilisation d'un ancrage

Suivez ces instructions pour utiliser correctement l'ancrage dans les scripts Calc Manager :

Pour les applications sans optimisation Dense/Dispersé

  • Si votre bloc FIX comporte un seul membre Mouvement, Financial Consolidation and Close vous recommande d'utiliser ce membre comme ancrage.
  • Si plusieurs membres Mouvement sont présents dans le bloc FIX, vous ne pouvez pas choisir l'ancrage Mouvement. Dans ce cas, vous pouvez sélectionner un membre d'autres dimensions dispersées comme ancrage.
    • Pour les calculs configurables (points d'insertion), vous ne pouvez pas choisir un membre d'une dimension Scénario, Année, Période, Entité ou Vue comme ancrage.

    • Pour les règles à la demande, vous ne pouvez pas choisir un membre d'une dimension Scénario, Année, Période, Entité, Consolidation ou Devise comme ancrage.

  • Evitez d'utiliser un membre d'une dimension dense comme ancrage. Dans le cas des applications sans optimisation Dense/Dispersé, la dimension Compte est une dimension dense. Pour les blocs de membres denses, CALCMODE(BOTTOMUP) n'offre aucun avantage au niveau des performances.

Pour les applications avec optimisation Dense/Dispersé

  • Dans les applications avec optimisation Dense/Dispersé, la dimension Mouvement est une dimension dense. Si vous passez d'une application sans optimisation Dense/Dispersé à une application qui recourt à cette optimisation, vous devez vous assurer que votre ancrage n'est pas un membre de la dimension Mouvement. Vous pouvez choisir un membre de la dimension Compte comme ancrage pour le bloc de membres car elle est dispersée dans les applications avec optimisation Dense/Dispersé.

  • Si vous ne pouvez pas choisir un membre Compte comme ancrage, optez pour un membre d'une autre dimension dispersée.

    • Pour les calculs configurables (points d'insertion), vous ne pouvez pas choisir un membre d'une dimension Scénario, Année, Période, Entité ou Vue (dense) comme ancrage.

    • Pour les règles à la demande, vous ne pouvez pas choisir un membre d'une dimension Scénario, Année, Période, Entité, Consolidation ou Devise comme ancrage.

  • Evitez d'utiliser un membre d'une dimension dense comme ancrage. Dans les applications avec optimisation Dense/Dispersé, les dimensions Mouvement et Période sont des dimensions denses. Pour les blocs de membres denses, CALCMODE(BOTTOMUP) n'offre aucun avantage au niveau des performances.

Vous trouverez ci-dessous un exemple de calcul configurable (règle d'insertion) pour une application sans optimisation Dense/Dispersé. Chaque ligne est marquée par le signe #, qui est le numéro de ligne.

#1 FIX ("FCCS_Periodic", "FCCS_Journal Input", "FCCS_Managed Data", "IFRS_IN ", "Entity Currency", "FCCS_Mvmts_NetIncome", @relative("Total Categories", 0), @relative("Total Area", 0), @LEVMBRS("Intercompany", 0) @relative("Total Custom", 0)) 
#2        "FCCS_Entity Input" (
#3           IF (@ISMBR("Actual_Red")) 
#4                IF (@ISUDA("Entity", "B10") AND ("FCCS_Mvmts_NetIncome" <> #Missing)) 
#5                    ENDIF
#6            ENDIF
#7        ) 
#8 ENDFIX

Dans cet exemple de script, le processus de validation de règle génère l'avertissement suivant :

Ligne 2 : utilisez le membre Mouvement FCCS_Mvmts_NetIncome en tant qu'ancrage plutôt que le membre FCCS_Entity Input.

Vous trouverez ci-dessous un exemple de calcul configurable (règle d'insertion) pour une application avec optimisation Dense/Dispersé. Chaque ligne est marquée par le signe #, qui est le numéro de ligne.

     #1   FIX("FCCS_Periodic","FCCS_No Intercompany","No operating Expense","Product1    ","CORP_IN","IC_PROFIT_ACC ")
        #2      "FCCS_Managed Data"(
        #3      @CALCMODE(BOTTOMUP);
        #4          IF (@ISMBR("FY21"))
        #5              "FCCS_OpeningBalanceAdjustment"=10;
        #6         ENDIF
        #7       )
        #8     ENDFIX

Dans cet exemple de script, le processus de validation de règle génère l'avertissement suivant :

Ligne 2 : utilisez le membre Compte IC_PROFIT_ACC en tant qu'ancrage plutôt que le membre FCCS_Managed Data.

Validation de script Calc Manager pour @CALCMODE (BottomUp)

@CALCMODE(BOTTOMUP) / @CALCMODE(TOPDOWN)

Financial Consolidation and Close recommande d'utiliser BOTTOMUP, par rapport à TOPDOWN, pour accélérer les calculs à l'aide des calculs configurables (points d'insertion) ou des règles à la demande.

Avec BOTTOMUP, qui est l'approche par défaut pour les calculs, Essbase détermine les blocs de données existants qui doivent être calculés avant les données avec des blocs de membres dispersés. Essbase calcule alors uniquement les blocs qui doivent l'être lors du calcul complet de la base de données.

Exemple : A = B + C

A est calculé uniquement si B et C existent dans la base de données. La dépendance de A à B et C est connue avant que le calcul commence.

Avec TOPDOWN, Essbase calcule la formule sur tous les blocs de données potentiels avec les membres dispersés dans le bloc de membres.

Exemple : A = B -> D + C -> D

Pour calculer la formule, Essbase doit examiner toutes les combinaisons de A pour déterminer si B -> D ou C -> D existe.

Essbase utilise BOTTOMUP comme mécanisme par défaut pour calculer une formule affectée sur un membre dispersé, sauf si la formule est de nature complexe, auquel cas le calcul exécute TOPDOWN.

Une expression complexe répond aux critères suivants :

  • Contient des opérateurs inter-dimensionnels [ -> ]

  • Utilise des fonctions de plage, par exemple, @AVGRANGE, @MAXRANGE, @MINRANGE ou @SUMRANGE

  • Utilise des fonctions relationnelles ou financières, par exemple, @ANCESTVAL, @NEXT, @PARENTVAL, @SHIFT, @ACCUM ou @GROWTH

Dans ces situations, Essbase fournit la fonction @CALCMODE(BOTTOMUP) pour forcer un calcul de formule dispersée à exécuter BOTTOMUP.

Vous trouverez ci-dessous un exemple de calcul configurable (règle d'insertion). Chaque ligne est marquée par le signe #, qui est le numéro de ligne.

#1   FIX ("FCCS_Periodic", "FCCS_Entity Input", "Entity Currency", "FCCS_ClosingBalance_Input","FCCS_Balance Sheet","FCCS_Total Data Source") 
#2   "FCCS_Income_Statement"(
#3   "FCCS_Movements"=@CURRMBR("Entity")->"FCCS_Contribution" -> "FCCS_Movements";
#4   )
#5   ENDFIX 

Dans cet exemple de script, le processus de validation de règle génère l'avertissement suivant :

Ligne 2 : utilisez @CalcMode (BOTTOMUP) pour le bloc de membres FCCS_Income_Statement.

Pour plus d'informations, reportez-vous à la rubrique suivante : https://docs.oracle.com/cd/E57185_01/ESBTR/calcmode_func.html

Validation de script Calc Manager pour BSO hybride

Pour les applications Financial Consolidation and Close hybrides, il est recommandé de définir SET HYBRIDBSOINCALCSCRIPT NONE/FULL dès que cela est applicable pour obtenir les meilleures performances.

Par défaut, pour les calculs configurables (règles d'insertion), HYBRIDBSOINCALCSCRIPT est défini sur FULL, et pour les règles à la demande, HYBRIDBSOINCALCSCRIPT est défini sur NONE.

Le processus de validation de règle vérifie si le script contient des membres de dimension CustomTop, qui présentent le type de stockage Calcul dynamique.

  • Si l'expression comprend 0 ou 1 membre CustomTop, un avertissement apparaît et demande de définir HYBRIDBSOINCALCSCRIPT sur NONE (s'il est défini sur FULL).
  • Si l'expression comprend au moins deux membres CustomTop, un avertissement apparaît et demande de définir HYBRIDBSOINCALCSCRIPT sur FULL (s'il est défini sur NONE).

Vous trouverez ci-dessous un exemple de règle à la demande. Chaque ligne est marquée par le signe #, qui est le numéro de ligne.

     #1 FIX ("FCCS_Periodic", "FCCS_No Intercompany", "No Product", "FCCS_Mvmts_NetIncome", @RELATIVE("AllDepts", 0), "No Department") 
        #2    FIX (@RELATIVE("TotalHFM", 0)) 
        #3        "StkCmpRev_CE" = -("555011_CE"->"FCCS_YTD"->"FCCS_Intercompany Top") - ("555012_CE"->"FCCS_YTD"->"FCC_Intercompany Top");
        #4    ENDFIX 
#5 ENDFIX

Dans cet exemple de script, le processus de validation de règle génère l'avertissement suivant :

Ligne 3 : désactivez le calcul hybride pour ce bloc avec SET HYBRIDBSOINCALCSCRIPT NONE.

Pour plus d'informations, reportez-vous à la rubrique suivante : https://docs.oracle.com/en/cloud/paas/analytics-cloud/tress/hybridbsoincalcscript.html

Validation de script Calc Manager pour @CALCMODE (BLOCK)

Pour ce cas d'emploi spécifique, Financial Consolidation and Close vous recommande d'ajouter @CalcMode (BLOCK) dès que cela est applicable afin d'améliorer les performances.

Pour plus d'informations sur @CalcMode (BLOCK), reportez-vous à la rubrique suivante : https://docs.oracle.com/cd/E57185_01/ESBTR/calcmode_func.html

Afin de déterminer si @CALCMODE(BLOCK) est requis dans un bloc d'ancrage pour les applications avec et sans optimisation Dense/Dispersé, le processus de validation de règle vérifie les conditions suivantes :

  • Si les expressions dans le bloc d'ancrage sont complexes

  • Si l'expression contient certaines fonctions, par exemple, @ANCEST, @CURRMBR, @ISMBR sur un membre dense, @MDANCESTVAL, @MDPARENTVAL, @MDSHIFT, @NEXT, @PARENT, @PARENTVAL, @PRIOR, @SANCESTVAL, @SPARENTVAL, @SHIFT

Si ces conditions sont remplies, le processus de validation génère un avertissement qui inclut le numéro de ligne.

Vous trouverez ci-dessous un exemple de calcul configurable (règle d'insertion). Chaque ligne est marquée par le signe #, qui est le numéro de ligne.

#1   FIX ("FCCS_Periodic", "FCCS_Entity Input", "Entity Currency", "FCCS_ClosingBalance_Input","FCCS_Balance Sheet","FCCS_Total Data Source") 
#2   "FCCS_Income_Statement"(
#3   "FCCS_Movements"=@CURRMBR("Entity")->"FCCS_Contribution" -> "FCCS_Movements";
#4   )
#5   ENDFIX 

Dans cet exemple de script, le processus de validation de règle génère l'avertissement suivant :

Ligne 2 : utilisez @CalcMode (BLOCK) pour le bloc de membres FCCS_Income_Statement.