Omisión de tuplas vacías para optimizar cálculos personalizados

Los juegos de datos son muy ligeros y, al calcular juegos de resultados vacíos, el rendimiento puede verse afectado de forma significativa. Para evitar calcular conjuntos de resultados vacíos, puede utilizar la cláusula de propiedad NONEMPTYTUPLE en fórmulas de cálculo personalizadas. Al utilizar NONEMPTYTUPLE, restringe la ubicación donde el sistema intenta calcular. Para configurar esto, hay que definir una tupla que solo se calculará si no está vacía. A continuación, defina una operación numérica simple que se aplique a la tupla.

Sintaxis

La sintaxis para utilizar NONEMPTYTUPLE es la siguiente:

tuple := NONEMPTYTUPLE (nonempty_member_list) numeric_value_expression;

Donde:

  • tuple: especificación MDX de uno o más miembros, en la que dos miembros no pueden ser de la misma dimensión.

  • NONEMPTYTUPLE: propiedad opcional que se puede utilizar para optimizar el rendimiento del cálculo. Si se utiliza, se debe seguir esta propiedad literal con nonempty_member_list.

  • nonempty_member_list: uno o más nombres de miembros de diferentes dimensiones separados por comas. Una tupla debe estar presente en numeric_value_expression.

  • numeric_value_expression: expresión de valor numérico MDX sencilla, como un número o una operación aritmética.

    La expresión debe aparecer en la parte derecha de la ecuación. Debe utilizar solo operadores aritméticos. Se devuelve un error si utiliza operadores no aritméticos como Y, O o SI.

Por ejemplo:

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

En este ejemplo se muestra lo siguiente:

  1. Observe la tupla ([TotalExpense], [NetBalance]).

  2. Si esa tupla, o intersección, no está vacía (es decir, contiene un valor real), realice la siguiente operación:

    Tome la tupla ([TotalExpense], [NetBalance]) y divídala por la tupla ([Units], [CostPool]) para producir UnitCost.

  3. Si la tupla está vacía, omítala y evalúe la siguiente instancia.

Reglas de uso

Una tupla es una combinación de miembros de un juego de dimensiones diferentes, por ejemplo:

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

([myactivity], [yourdepartment])

Los requisitos para agregar NONEMPTYTUPLE a la fórmula de las reglas de cálculo personalizado de Profitability and Cost Management Cloud son los siguientes, donde A, B y C representan tuplas:

  • Solo puede utilizar NONEMPTYTUPLE cuando una tupla contiene algún valor. De lo contrario, el resultado podría ser inesperado. Imagine lo siguiente:

    • A=B+C. No puede utilizar NONEMPTYTUPLE en B ni C. Si faltan B o C, el resultado será Ninguno; lo que no es correcto.

      Note:

      Para calcular A=B+C mediante NONEMPTYTUPLE, utilice dos reglas:

      • Regla 1: A=A+B con NONEMPTYTUPLE en B

      • Regla 2: A=A+C (o A=A-C) con NONEMPTYTUPLE en C

      En este caso, siempre que no falte el valor de B, se agregará a A; y siempre que no falte el valor de C, se agregará a A.

    • A = B - C. No puede utilizar NONEMPTYTUPLE en B ni C. Si faltan B o C, el resultado será Ninguno, que es incorrecto (a menos que se utilicen las dos reglas como se ha descrito anteriormente).

  • Puede utilizar NONEMPTYTUPLE cuando el resultado es el mismo independientemente de que la tupla esté presente. Imagine lo siguiente:

    • A = B. Puede utilizar NONEMPTYTUPLE en B.

    • A = B*C. Puede utilizar NONEMPTYTUPLE en B o C.

    • A = B/C. Puede utilizar NONEMPTYTUPLE en B o C.

En conclusión, puede utilizar NONEMPTYTUPLE de forma segura en operaciones de multiplicación o división. Para sumar o restar, debe evaluar su uso para cada caso por separado para evitar resultados inesperados.

Note:

Para obtener información sobre la escritura de reglas de cálculo dinámico, consulte Sintaxis de fórmulas de las reglas de cálculo personalizadas. Para obtener información sobre la activación de tuplas no vacías, consulte "¿Cómo puede activar las tuplas no vacías (NET) en Enterprise Profitability and Cost Management?" en Preguntas frecuentes sobre Enterprise Profitability and Cost Management.