Syntaxe de la formule Essbase
Vous développez des formules sur des cubes en mode "block storage" à l'aide de la syntaxe de calcul Essbase, notamment les noms de membre, les équations, les valeurs, les opérateurs, les terminaisons d'instruction et les guillemets.
Lorsque vous créez des formules de membre, respectez les règles suivantes :
-
Terminez chaque instruction de la formule par un point-virgule ( ;). Exemple :
Margin % Sales; -
Utilisez uniquement les noms de membre d'outline enregistrés. Si une variable de substitution est utilisée pour un nom de membre, la valeur de la variable de substitution doit être un nom de membre d'outline enregistré.
-
Placez un nom de membre entre guillemets doubles (
"") si le nom de membre remplit l'une des conditions suivantes :-
Contient des espaces. Exemple :
"Opening Inventory" = "Ending Inventory" - Sales + Additions; -
Il est identique à un opérateur, un nom de fonction ou un mot-clé.
Reportez-vous à la section Naming Conventions in Calculation Scripts, Report Scripts, Formulas, Filters, and Substitution and Environment Variable Values.
-
Inclut tout caractère non alphanumérique. Par exemple, les traits d'union (-), les astérisques (*) et les barres obliques (/).
-
Est une valeur numérique ou commence par un ou plusieurs chiffres. Par exemple,
"100"ou"10Prod"
Pour obtenir la liste complète des noms de membre à placer entre guillemets, reportez-vous à la section Naming Conventions in Calculation Scripts, Report Scripts, Formulas, Filters, and Substitution and Environment Variable Values.
-
-
Terminer chaque instruction IF d'une formule par une instruction ENDIF.
Par exemple, la formule suivante contient une instruction IF...ENDIF simple. Vous pouvez appliquer cette formule au membre de la Commission dans une outline :
IF(Sales < 100) Commission = 0; ENDIF;Si vous utilisez une instruction IF imbriquée dans une autre instruction IF, terminez chaque instruction IF par une instruction ENDIF. Exemple :
"Opening Inventory" (IF (@ISMBR(Budget)) IF (@ISMBR(Jan)) "Opening Inventory" = Jan; ELSE "Opening Inventory" = @PRIOR("Ending Inventory"); ENDIF; ENDIF;) -
Vous n'avez pas besoin de mettre fin aux instructions ELSE ou ELSEIF avec des ENDIF. Exemple :
IF (@ISMBR(@DESCENDANTS(West)) OR @ISMBR(@DESCENDANTS(East) Marketing = Marketing * 1.5; ELSEIF(@ISMBR(@DESCENDANTS(South))) Marketing = Marketing * .9; ELSE Marketing = Marketing * 1.1; ENDIF;Remarques :
Si vous utilisez ELSE IF (avec un espace) plutôt que ELSEIF (un mot) dans une formule, vous devez fournir une ENDIF pour l'instruction IF.
-
Il n'est pas nécessaire de terminer les instructions ENDIF par un point-virgule ( ;), mais c'est une bonne pratique.
Lors de l'écriture de formules, vous pouvez vérifier la syntaxe à l'aide du vérificateur de syntaxe de l'éditeur de formules. Reportez-vous à Validation de la syntaxe de formule.
Reportez-vous aux sections suivantes :