Optimizar el rendimiento en historias que utilizan fórmulas de miembros

Objective

After completing this lesson, you will be able to evalúe cuándo utilizar fórmulas de miembro en su historia de planificación y aplique las mejores prácticas para optimizar el rendimiento.

Antes de empezar esta lección

En un mundo perfecto, cada cálculo de una historia se ejecutaría sin problemas cada vez que se introducen nuevos datos, sin afectar al rendimiento del sistema.

En realidad, al diseñar cálculos, es importante tener en cuenta un enfoque que aproveche tanto los cálculos en tiempo real como las fórmulas, y los cálculos asincrónicos como las fórmulas avanzadas. El uso de solo fórmulas de miembro para todos los cálculos genera una carga para el rendimiento general del sistema. Se requiere un equilibrio saludable para poder ofrecer a los usuarios altas tasas de disponibilidad y capacidad de respuesta, junto con el logro de los objetivos empresariales deseados.

Puede ser temping para utilizar fórmulas de miembro exclusivamente, porque parece la opción más simple al crear un modelo. Sin embargo, tenga en cuenta su uso y añada fórmulas de miembro con cuidado, por ejemplo, para los cálculos de ratio. cálculos que se deben realizar en cada nivel o jerarquía, y para los cálculos que un planificador debe ver reflejados durante la entrada de datos. Para optimizar el rendimiento, tenga en cuenta las fórmulas avanzadas, dejando que el usuario inicie los cálculos mediante un iniciador de acción de datos.

El artículo de SAP Help Portal Fórmulas y cálculos es una referencia para explicaciones y ejemplos de las reglas generales relacionadas con fórmulas y cálculos en SAP Analytics Cloud.

Uso de fórmula de miembro

Al añadir fórmulas de miembro a una historia, es importante tener en cuenta no solo las consideraciones de rendimiento, sino también cómo se utilizarán las fórmulas de miembro. Por ejemplo, al utilizar fórmulas ResultsLookup y Lookup.

Con las fórmulas ResultsLookup, las dimensiones que se definen en la fórmula deben estar en el estado de desglose actual y solo puede filtrar por un valor. Dado que los árboles de creación de valor solo incluyen información sobre las dimensiones Cuenta y Tiempo, las fórmulas ResultLookup a menudo no muestran datos en los nodos del árbol de creación de valor.

Con las fórmulas de búsqueda, las dimensiones definidas en la fórmula no tienen que estar en el estado de desglose actual y puede actualizar más de un miembro en la expresión de filtro.

Veamos con más detalle un modelo y las tablas de dimensiones para Producto, País y Cuenta. Se han aplicado las siguientes fórmulas en la dimensión Cuenta:

  • Búsqueda:LOOKUP([Expenses],[d/Product]=("Paper","Glue"))
  • ResultLookup:RESULTLOOKUP([Expenses],[d/Product]="Paper") + RESULTLOOKUP([Expenses],[d/Product]="Glue")
Modelo con fórmulas de miembro aplicadas a nivel de cuenta.

Ahora, veamos la historia en la que se han introducido los datos en la tabla superior, tabla 1.

  1. Tabla 1: En esta tabla, se introdujeron valores para los productos Pegamento, Plástico y Papel para Francia y Alemania. El total devuelto para pegamento y papel es: pegamento = 48 y papel = 5 para un total de 53 EUR.
  2. Tabla 2: Esta tabla tiene un estado de desglose en Cuenta y Producto con agregación en País.
    • Si marca la dimensión Producto en la tabla, Búsqueda muestra el mismo valor total para cada producto, incluido el plástico, que no se había seleccionado en la fórmula.
    • Los valores de la cuenta ResultLookup aparecen atenuados. Las dimensiones que se definen en la fórmula deben estar en el estado de desglose actual, incluido el campo de filtro en la fórmula ResultLookup.
  3. Tabla 3: Esta tabla tiene un estado de desglose en Cuenta con agregación en Producto y País.

    No hay valores en la cuenta ResultLookup. Las dimensiones que se definen en la fórmula deben estar en el estado de desglose actual, incluido el campo de filtro en la fórmula ResultLookup.

Una historia con tres tablas y números 1-3, que se describen arriba de la imagen.

Fórmulas de miembro

Recuerde que las fórmulas de miembros se calculan previamente y se almacenan en el modelo de datos. Esto puede dar como resultado un mejor rendimiento para conjuntos de datos grandes o modelos complejos, ya que los cálculos se realizan una vez en lugar de cada vez que se ejecuta una consulta. Sin embargo, las fórmulas avanzadas admiten una lógica condicional compleja, lo que le permite crear fórmulas que se adapten en función de determinadas condiciones. Esto es esencial para los escenarios que requieren cálculos dinámicos.

En términos generales, tenga en cuenta las fórmulas avanzadas sobre las fórmulas de miembro cuando necesite abordar grandes volúmenes, tenga que poder desacoplar los cálculos y la entrada de datos cuando desee que los usuarios ejecuten la fórmula a petición.

Fórmula de miembro

Escenario: Debe realizar una serie de cálculos para determinar diferentes niveles de márgenes de contribución para la dimensión de producto Juguetes para 2025. En su modelo, añada las siguientes fórmulas de miembros anidados a la dimensión Cuenta:

En este vídeo veremos con más detalle cómo se configura el modelo con fórmulas de miembros anidados y, a continuación, en una historia optimizada en la que se desacoplan la entrada de datos y los cálculos, lo que permite a los usuarios seleccionar cuándo se producen los cálculos del margen de cobertura.

Resumen

Tiene una historia con problemas de rendimiento. En su modelo, tiene las siguientes fórmulas de miembros anidados para la dimensión Cuenta:

  • Margen de cobertura I = Ingresos - Coste de mercancías vendidas: [Revenue]- [Cogs]
  • Margen de cobertura II = Margen de cobertura I – Costes fijos: [ContribMargI]- [CostsFix]
  • Margen de cobertura III = Margen de cobertura II – Gastos generales de material general: [ContribMargII]- [MatOverheadOver]
Tabla de dimensión de cuenta que muestra fórmulas para márgenes de contribución.

Para optimizar la historia y el modelo, desacople los cálculos y la entrada de datos. Quite las fórmulas de miembro de la dimensión Cuenta del modelo y cree un paso de fórmulas avanzadas en una acción de datos.

Arriba: Tabla de dimensiones de cuenta que muestra las fórmulas eliminadas. Inferior: paso de fórmulas avanzadas en una acción de datos.

En la acción de datos (que se muestra arriba), utilice el siguiente script en el paso de acción de datos de fórmulas avanzadas:

Code Snippet
1234567
MEMBERSET [d/P00D_CostCenter]="Sales" MEMBERSET [d/U00D_Product]="TOYS" MEMBERSET[d/Measures]="SignedData" MEMBERSET[d/Date]=(BASEMEMBER(d/date.h/YW,"[2006]")) DATA([d/Account]="ContribMargI")=RESULTLOOKUP([d/Account]="Revenue")-RESULTLOOKUP([d/Account]="Cogs") DATA([d/Account]="ContribMargII")=RESULTLOOKUP([d/Account]="ContribMargI")-RESULTLOOKUP([d/Account]="CostsFix") DATA([d/Account]="ContribMargIII")=RESULTLOOKUP([d/Account]="ContribMargII")-RESULTLOOKUP([d/Account]="MatOverheadOver"

Estos cálculos se realizan utilizando la función DATA, que fija los valores para cuentas específicas (ContribMargI, ContribMargII y ContribMargIII) en función de los resultados de las funciones RESULTLOOKUP.

Historia de planificación con tabla de planificación, una acción de datos (arriba) y el panel Generador abiertos con el nombre de la acción de datos resaltado.

El desacoplamiento de la entrada de datos de los cálculos permite a los usuarios completar la entrada de datos antes de calcular los valores del margen de contribución, lo que permite un mejor rendimiento, ya que los dos procesos no se producen simultáneamente.