Ordem de Cálculo e Ordem de Resolução em Cubos ASO

A ordem de cálculo dos cubos de armazenamento agregado (ASO) do Essbase difere da dos cubos de armazenamento em blocos. As hierarquias armazenadas e as dimensões de atributo são consolidadas e, em seguida, as hierarquias dinâmicas são avaliadas com base em uma ordem de resolução definida.

Para cubos de armazenamento agregado, o Essbase calcula dados na seguinte ordem:

  1. Agrega membros de hierarquias armazenadas e dimensões de atributo. A ordem em que os membros e as dimensões são agregados é otimizada internamente e muda de acordo com a natureza do outline do cubo e as agregações existentes. Como a agregação é aditiva, a ordem na qual o Essbase agrega as dimensões e os membros não afeta os resultados.

    Como a ordem de agregação interna de um cubo de armazenamento agregado não é previsível, quaisquer erros de arredondamento inerentes também não são previsíveis. Estes erros de arredondamento são comportamento esperado no cálculo do computador e são extremamente pequenos em relação aos valores de dados em questão.

  2. Calcula membros e fórmulas da dimensão de hierarquia dinâmica. A ordem em que os membros e as fórmulas são avaliados é definida pela propriedade da ordem de resolução, que você pode definir para cada membro ou dimensão. A ordem de cálculo pode afetar os resultados do cálculo.

Solucionar Propriedade da Ordem

O conceito de ordem de resolução se aplica à execução da consulta. Quando uma célula é avaliada em uma consulta multidimensional, a ordem na qual os cálculos devem ser resolvidos pode ser ambígua. Para remover a ambiguidade, você pode usar a propriedade da ordem de resolução para especificar a prioridade de cálculo necessária.

Observação:

É uma boa prática especificar a ordem de resolução definindo a propriedade da ordem de resolução no nível de membro ou dimensão. Os membros sem fórmulas que não têm uma ordem de solução especificada herdam a ordem de solução de suas dimensões. Os membros com fórmulas que não têm uma ordem de resolução especificada têm uma ordem de resolução igual a zero.

Para alterar a ordem de solução, use o editor de tópicos na Interface Web do Essbase ou use o Smart View. Para especificar a ordem de resolução para um membro calculado, você pode usar o parâmetro solve_order na Com Seção de uma consulta MDX.

O valor da propriedade da ordem de resolução determina a prioridade com a qual o Essbase calcula as fórmulas. As fórmulas dos membros que têm uma ordem de resolução especificada são calculadas na ordem da ordem de resolução mais baixa para a mais alta. Você pode especificar uma ordem de resolução entre 0 e 127. O padrão é 0.

Você pode especificar a ordem de resolução no nível do membro ou no nível da dimensão. O Essbase usa as seguintes informações para definir a precedência de cálculo:

  1. Ordem de resolução do membro

  2. Ordem de resolução de dimensão (membros sem fórmulas para as quais você não especifica uma ordem de resolução de membro herdam a ordem de resolução de sua dimensão. Os membros com fórmulas para as quais você não especifica uma ordem de resolução de membro têm uma ordem de resolução igual a zero.)

    Se vários membros tiverem a mesma ordem de resolução, os membros serão avaliados na ordem inversa em que suas dimensões ocorrerem no outline. O membro que ocorre mais tarde no outline tem precedência.

    A ordem de cálculo da situação de vínculo é diferente para membros calculados definidos em uma consulta MDX para cubos de armazenamento em blocos.

    Observação:

    Quando uma fórmula do membro depende do valor de outro membro, o membro com a fórmula deve ter uma ordem de resolução maior do que a do membro ou dos membros dos quais depende. Por exemplo, na estrutura ASOSamp.Basic, a Média de Unidades/Transação depende do valor de Unidades e de Transações. A Média de Unidades/Transação deve ter uma ordem de resolução maior que Unidades e Transações.

Exemplo Usando a Propriedade Solve Order

O exemplo a seguir é baseado no cubo ASOSamp.Basic. Para remover a ambiguidade nos resultados da consulta, o exemplo usa a propriedade da ordem de resolução para especificar a prioridade de cálculo necessária.

A consulta de planilha mostrada abaixo recupera dados para o número de unidades vendidas e o número de transações para janeiro do ano atual e para janeiro do ano anterior. O membro Variação mostra a diferença entre o ano atual e o ano anterior. O membro Média de Unidades/Transação mostra uma proporção do número de unidades vendidas por transação.

Figura 37-5 Resultados da Consulta de Planilha do cubo ASOSamp.Basic Mostrando a Variação Entre Duas Razões (C12)


Esta imagem mostra os resultados de uma consulta de planilha, conforme descrito no texto que precede a imagem.

A imagem a seguir mostra a estrutura do cubo para esses membros e as fórmulas aplicadas aos membros Variação e Média de Unidades/Transação.

Figura 37-6 ASOSamp.Cubo Básico Mostrando as Dimensões de Medidas, Anos e Tempo


Esta imagem mostra um esquema de tópicos, conforme descrito no texto que precede a imagem.

Ao calcular a variação da média de unidades por transação (célula C12 no exemplo da planilha), o resultado pode ser a variação entre as duas proporções ou o resultado pode ser a proporção das duas variações. O resultado depende de o Essbase dar precedência à fórmula na Variação ou à fórmula na Média de Unidades/Transação.

O valor da propriedade da ordem de resolução, que é anexada aos membros no outline, determina a prioridade com a qual o Essbase avalia as fórmulas. Quanto maior for a configuração da ordem de resolução, mais tarde será a ordem em que o membro será calculado. Por exemplo, uma fórmula com uma ordem de resolução de 1 é resolvida antes que um membro com uma ordem de resolução de 2.

No exemplo, se o membro Variação tiver uma ordem de resolução menor que o membro Média de Unidades/Transação, a fórmula no membro Variação terá precedência e o resultado será a variação entre dois índices. Esse é o caso no cubo ASOSamp.Basic, porque a ordem de resolução do membro Variance é 10 e a ordem de resolução do membro Média de Unidades/Transação é 20. A fórmula em Variação tem precedência, porque o membro Variação tem a ordem de resolução mais baixa. O resultado da célula C12 da consulta no exemplo da planilha é a variação entre as duas proporções, conforme mostrado na tabela abaixo:

Tabela 37-4 Usando a Propriedade Resolver Ordem para Especificar a Variação Entre Duas Proporções

Membro Ordem de Resolução Fórmula Resultado da Interseção de Variância e Média de Unidades/Transação (célula C12)

Variação

10

Ano atual - Ano anterior

Média de unidades/transação do ano atual - média de unidades/transação do ano anterior

0,94894382 (célula C6) - 0,954252111 (célula C9) = -0,005308291 (célula C12)

Média de unidades/transação

20

Unidades/Transações

Como alternativa, se você alterar o cubo ASOSamp.Basic e der ao membro Média de Unidades/Transação uma ordem de resolução inferior à do membro Variação, a fórmula no membro Média de Unidades/Transação terá precedência, e o resultado será a proporção de duas variações, conforme mostrado no exemplo de tabela e planilha abaixo:

Tabela 37-5 Usando a Propriedade Resolver Ordem para Especificar a Razão de Duas Variações

Membro Ordem de Resolução Fórmula Resultado da Interseção de Variância e Média de Unidades/Transação (célula C12)

Variação

20

Ano atual - Ano anterior

Variação (ano atual para ano anterior) de unidades / variação de transações

10585 (célula C10) / 11340 (célula C11) = 0,933421517 (célula C12)

Média de unidades/transação

10

Unidades/Transações

Figura 37-7 Resultados da Consulta de Planilha do Cubo ASOSamp.Basic Mostrando a Razão de Duas Variações (C12)


Esta imagem mostra os resultados de uma consulta de planilha, conforme descrito no texto que precede a imagem.