Non-prise en compte des tuples vides pour optimiser les calculs personnalisés

Les ensembles de données peuvent être très dispersés et le calcul d'ensembles de résultats vides peut nuire aux performances de façon significative. Pour éviter de calculer des ensembles de résultats vides, vous pouvez utiliser la clause de propriété NONEMPTYTUPLE dans les formules de calcul personnalisé. En effet, NONEMPTYTUPLE vous permet de limiter les emplacements où le système effectue les tentatives de calcul. Pour la configurer, vous définissez un tuple qui sera calculé uniquement s'il n'est pas vide. Vous devez ensuite définir une simple opération numérique à appliquer au tuple.

Syntaxe 

La syntaxe permettant d'utiliser NONEMPTYTUPLE est la suivante :

tuple := NONEMPTYTUPLE (nonempty_member_list) numeric_value_expression;

Où :

  • tuple : spécification MDX composée d'au moins un membre. Dans le cas de membres multiples, aucun ne fait partie de la même dimension.

  • NONEMPTYTUPLE : propriété facultative qui permet d'optimiser les performances de calcul. Si vous l'utilisez, vous devez faire suivre cette propriété littérale de nonempty_member_list.

  • nonempty_member_list: noms de membre séparés par des virgules provenant de différentes dimensions. numeric_value_expression doit contenir un tuple.

  • numeric_value_expression: expression de valeur numérique MDX simple, telles qu'un nombre ou une opération arithmétique.

    L'expression doit se trouver sur le côté droit de l'équation. Vous ne pouvez utiliser que des opérateurs arithmétiques. Une erreur est renvoyée si vous utilisez des opérateurs non arithmétiques tels que AND, OR ou IF.

Par exemple :

[UnitCost] := NONEMPTYTUPLE ([TotalExpense], [NetBalance]) ([TotalExpense], [NetBalance]) / ([Units], [CostPool]);

Cet exemple indique les éléments suivants :

  1. Examinez le tuple ([TotalExpense], [NetBalance]).

  2. Si ce tuple, ou croisement, n'est pas vide (à savoir s'il contient une vraie valeur), effectuez alors l'opération suivante :

    Prenez le tuple ([TotalExpense], [NetBalance]) et divisez-le par le tuple ([Units], [CostPool]) pour obtenir UnitCost.

  3. Si le tuple est vide, ignorez-le et évaluez l'instance suivante.

Règles à utiliser

Un tuple est une combinaison de membres provenant d'un ensemble de dimensions distinctes, par exemple :

([product2], [account5], customer3])

([myactivity], [yourdepartment])

Les exigences pour ajouter NONEMPTYTUPLE à la formule des règles de calcul personnalisé de Profitability and Cost Management sont les suivantes (A, B et C représentent des tuples) :

  • Vous pouvez utiliser NONEMPTYTUPLE uniquement lorsqu'un tuple dispose d'une valeur. Sinon, le résultat peut être inattendu. Supposons le scénario suivant :

    • A=B+C : vous ne pouvez pas utiliser NONEMPTYTUPLE sur B ou C. Si B ou C est manquant, le résultat sera Aucun, ce qui est incorrect.

      Note:

      Pour calculer A=B+C à l'aide de NONEMPTYTUPLE, utilisez deux règles :

      • Règle 1 : A=A+B avec NONEMPTYTUPLE sur B

      • Règle 2 : A=A+C (ou A=A-C) avec NONEMPTYTUPLE sur C

      Dans ce cas, quand la valeur de B n'est pas manquante, elle est ajoutée à A ; et quand la valeur de C n'est pas manquante, elle est ajoutée à A.

    • A=B-C : vous ne pouvez pas utiliser NONEMPTYTUPLE sur B ou C. Si B ou C est manquant, le résultat sera Aucun, ce qui est incorrect (sauf si vous utilisez deux règles comme décrit précédemment).

  • Vous pouvez utiliser NONEMPTYTUPLE lorsque le résultat est identique, que le tuple soit manquant ou non. Supposons le scénario suivant :

    • A=B : vous pouvez utiliser NONEMPTYTUPLE sur B.

    • A=B*C : vous pouvez utiliser NONEMPTYTUPLE sur B ou C.

    • A=B/C : vous pouvez utiliser NONEMPTYTUPLE sur B ou C.

Pour résumer, vous pouvez utiliser NONEMPTYTUPLE en toute sécurité dans des multiplications ou des divisions. Pour les additions ou les soustractions, vous devez évaluer son utilisation pour chaque cas distinct, afin d'éviter les résultats inattendus.

Note:

Pour plus d'informations sur l'écriture de règles de calcul personnalisées, reportez-vous à la section Syntaxe de formule des règles de calcul personnalisées. Pour plus d'informations sur l'activation des tuples non vides, reportez-vous à la section Comment activer les tuples non vides dans Enterprise Profitability and Cost Management ? du guide Foire aux questions (FAQ) sur Enterprise Profitability and Cost Management.