Desenvolver Fórmulas em Outlines de Armazenamento Agregado

As fórmulas calculam relacionamentos entre membros em um outline do Essbase. As fórmulas de armazenamento agregado (ASO) são diferentes das fórmulas de armazenamento em blocos. Você grava fórmulas de armazenamento agregado (ASO) no MDX como expressões de valor numérico e as aplica ao outline do cubo, onde elas são calculadas dinamicamente na recuperação de dados.

Diferenças entre Fórmulas ASO e BSO

Se você estiver familiarizado com fórmulas em contornos de armazenamento em blocos (BSO), observe as diferenças com fórmulas em armazenamento agregado (ASO).

  • O Essbase fornece uma linguagem de cálculo nativa para gravar fórmulas em outlines de armazenamento em blocos. Para escrever fórmulas para contornos de armazenamento agregado, use a linguagem MDX (Multidimensional Expressions).

  • Aplique fórmulas diretamente aos membros no outline. Para cubos de armazenamento em blocos, as fórmulas podem ser colocadas em um script de cálculo. Para cubos de armazenamento agregado, não é possível colocar fórmulas em um script de cálculo.

Cálculo da Fórmula para Cubos ASO

O Essbase calcula fórmulas em outlines de armazenamento agregado somente quando os dados são recuperados. A ordem de cálculo pode afetar os resultados do cálculo. Sempre que você usa fórmulas MDX em várias dimensões em um outline de armazenamento agregado, é uma boa prática definir a ordem de resolução para cada membro ou dimensão. Consulte Ordem de Cálculo e Ordem de Resolução em Cubos ASO.

Observação:

Ao projetar um cálculo de armazenamento agregado, considere que os membros de armazenamento agregado com fórmulas MDX são calculados dinamicamente. Os membros calculados dinamicamente têm o valor #MISSING até serem consultados.

Usar Fórmulas MDX

Uma fórmula MDX deve ser sempre uma expressão de valor numérico MDX. No MDX, uma expressão de valor numérico é qualquer combinação de funções, operadores e nomes de membros que executa uma das seguintes ações:

  • Calcula um valor

  • Testes para uma condição

  • Executa uma operação matemática

Uma expressão de valor numérico é diferente de uma expressão de conjunto. Uma expressão de conjunto é usada nos eixos de consulta e descreve combinações de membros e membros. Uma expressão de valor numérico especifica um valor.

Uma expressão de valor numérico é usada em consultas para criar membros calculados, que são membros lógicos criados para fins analíticos na seção WITH da consulta, mas que não existem na estrutura.

A consulta a seguir define um membro calculado e usa uma expressão de valor numérico para fornecer um valor para ele:

WITH MEMBER
 [Measures].[Prod Count]
AS
 'Count (
    Crossjoin (
     {[Units]},
     {[Products].children}
    )
  )', SOLVE_ORDER=1
SELECT
 {[Geography].children}
ON COLUMNS,
 {
  Crossjoin (
     {[Units]},
     {[Products].children}
    ),
   ([Measures].[Prod Count], [Products])
 }
ON ROWS
FROM
 ASOsamp.Sample

Na consulta de amostra, a cláusula WITH define um membro calculado, Contagem de Produtos, na dimensão Measures, da seguinte forma:

WITH MEMBER
 [Measures].[Prod Count]

A expressão de valor numérico segue a cláusula WITH e está entre aspas simples. Na consulta de amostra, a expressão de valor numérico é especificada da seguinte forma:

'Count ( 
    Crossjoin (
     {[Units]},
     {[Products].children}
    )
  )'

A propriedade SOLVE_ORDER especifica a ordem em que os membros e as fórmulas são avaliados. Consulte Ordem de Cálculo e Ordem de Resolução em Cubos ASO.

Observação:

Para obter uma explicação das regras de sintaxe usadas para criar a expressão de valor numérico no exemplo, consulte a documentação das funções Contagem, CrossJoin e Filhos.

Uma expressão de valor numérico também pode ser usada como uma fórmula MDX para calcular o valor de um membro do outline existente.

Portanto, em vez de criar a consulta de exemplo, você pode criar um membro do outline na dimensão Medidas chamada Contagem de Produtos que é calculada no outline da mesma forma que a Contagem de Produtos hipotética foi calculada na consulta de amostra.

Para criar um membro calculado com uma fórmula:

  1. Criar um membro.

  2. Anexe uma fórmula MDX ao membro.

    Supondo que você tenha criado o membro Contagem de Produto de exemplo, você usaria a seguinte fórmula, que é o equivalente à expressão de valor numérico usada para criar o membro calculado na consulta de exemplo:

    Count(Crossjoin ( {[Units]}, {[Products].children}))
  3. Verifique a fórmula verificando a estrutura.

    Quando você recupera dados do cubo de armazenamento agregado, a fórmula é usada para calcular o valor do membro.

    É possível usar variáveis de substituição em fórmulas. Por exemplo, você pode definir uma variável de substituição chamada "EstimatedPercent" e fornecer diferentes porcentagens como valores de variáveis de substituição. Consulte Implementar Variáveis para Alterar Informações.

Antes de aplicar fórmulas aos membros no outline, você pode escrever consultas MDX que contenham membros calculados. Quando você puder escrever uma consulta MDX que retorne os resultados do membro calculado desejados, você estará pronto para aplicar a lógica da expressão de valor numérico a um membro do outline e validar e testar a expressão. Consulte Gravar Consultas MDX.