Remarques concernant l'utilisation des formules

Conversion de type de données

Certaines fonctions requièrent que les valeurs de données soient d'un certain type pour être correctement évaluées. Par exemple, les fonctions qui exécutent des calculs mathématiques nécessitent que les arguments d'entrée soient des valeurs à virgule flottante ou entières, tandis que les fonctions de manipulation de chaîne requièrent que des valeurs de chaîne soient fournies en entrée. Dans certains cas, les valeurs de données doivent être converties en un autre type de données pour être correctement dérivées. Oracle Data Relationship Management fournit un ensemble de fonctions pour gérer les conversions de type de données au sein de formules.

Restrictions de niveau de propriété

En règle générale, les définitions de propriétés créées pour gérer les données à un niveau inférieur de granularité peuvent faire référence à d'autres propriétés qui gèrent les données à un niveau supérieur de granularité.

  • Noeud local : peut faire référence aux propriétés d'un autre noeud local, d'un noeud global, d'une hiérarchie ou d'une version.

  • Noeud global : peut faire référence aux propriétés d'un autre noeud global ou d'une version.

  • Hiérarchie : peut faire référence aux propriétés d'une autre hiérarchie ou d'une version (recherche uniquement).

  • Version : peut faire référence aux propriétés d'une autre version (recherche uniquement).

Référencement de propriétés d'autres noeuds

Il est courant pour une propriété dérivée ou une validation d'évaluer ou d'extraire une valeur de propriété d'un autre noeud que celui pour lequel la formule est calculée. Data Relationship Management offre plusieurs fonctions qui permettent d'accéder aux valeurs de propriété à partir de noeuds de la même version.

  • NodePropValue

  • ParentPropValue

  • HierNodePropValue

  • AncestorProp

  • DualAncestorProp

  • AscNodeProp

  • ReplacePropValue

  • ListPropValues

  • ListNodePropValues

Référencement de propriétés de noeud local à partir de propriétés de noeud global

Les propriétés de noeud global ne nécessitent pas de contexte hiérarchique pour renvoyer une valeur, contrairement aux propriétés de noeud local pour lesquelles une hiérarchie doit être indiquée. Les propriétés dérivées ou les validations qui sont calculées pour un noeud global ne peuvent pas référencer des valeurs de propriété de noeud local à l'aide de la fonction PropValue ou NodePropValue. Les propriétés de noeud global peuvent référencer des valeurs de propriété de noeud local à l'aide de la fonction HierNodePropValue par laquelle une hiérarchie doit être indiquée pour extraire la valeur de la propriété pour un noeud local spécifique dans la hiérarchie.

Imbrication de fonctions

La combinaison de fonctions dans la même formule est appelée "imbrication de fonctions". La sortie d'une fonction est utilisée comme argument d'entrée pour une autre fonction dans la formule. Lors de l'évaluation de fonctions imbriquées, Data Relationship Management exécute d'abord la fonction la plus profonde. Les fonctions peuvent être imbriquées explicitement au sein d'une même formule ou implicitement en utilisant une formule qui fait référence à une propriété qui utilise une autre formule.

Utilisation de propriétés comme variables pour d'autres propriétés

Data Relationship Management vous permet d'utiliser une combinaison de fonctions imbriquées, de références à d'autres propriétés ou noeuds et de valeurs littérales, ce qui peut conduire à des formules complexes ou très longues. Vous pouvez utiliser des définitions de propriété pour modulariser la logique de la formule et simplifier la syntaxe requise pour obtenir les mêmes résultats. Cette approche peut considérablement simplifier la maintenance de ces formules.

En outre, les formules peuvent évaluer les mêmes données ou exécuter le même calcul plusieurs fois dans la même définition de propriété ou dans plusieurs définitions de propriété pour un noeud donné. Lorsque cette logique est incorporée dans une formule plus importante ou implémentée au sein de définitions de propriété, ces vérifications et calculs sont effectués plusieurs fois, ce qui peut affecter les performances pour les opérations nécessitant le calcul des propriétés. Vous pouvez réduire les traitements redondants en isolant la logique de formule en double dans une définition de propriété distincte.

Utilisation de la récursivité pour parcourir les relations hiérarchiques

Les règles de gestion pour les noeuds aux niveaux inférieurs d'une hiérarchie peuvent exiger l'évaluation des valeurs de propriété des ancêtres situés au-dessus. Pour permettre à ces valeurs d'être référencées par des noeuds de niveau inférieur, il est notamment possible d'activer l'héritage pour la définition de propriété qui gère les valeurs à référencer. Toutefois, dans de nombreux cas, l'utilisation de l'héritage pour une définition de propriété n'est pas adaptée.

Vous pouvez utiliser des fonctions de formule hiérarchique avec une référence automatique à la définition de propriété en cours pour reproduire une branche de hiérarchie afin d'extraire ou d'évaluer les valeurs de propriété des noeuds ancêtres.

ParentPropValue : utilisez cette fonction pour reproduire une branche d'ancêtres dans la hiérarchie en cours. Exemple : If(Equals(Integer,PropValue(Core.Level),1),Label Only,ParentPropValue(Essbase.DataStorage))

HierNodePropValue : utilisez cette fonction pour reproduire une branche d'ancêtres dans une autre hiérarchie. Exemple : If(Equals(Boolean,PropValue(Custom.PlanPoint),True),Abbrev(),HierNodePropValue(Geography,HierNodePropValue(Geography,Abbrev(),Core.Parent),Custom.PlanMember))