Ordem de Cálculo da Célula

A ordem em que o Essbase calcula as células dentro de cada bloco de dados depende de como você configurou o banco de dados.

Cada bloco de dados contém todos os valores de membro de dimensão densos para sua combinação exclusiva de membros de dimensão esparsa. Cada valor de dados está contido em uma célula do bloco de dados.

A forma como você configurou o banco de dados determina a ordem de cálculo dos membros de dimensão densa em cada bloco, bem como a ordem de cálculo dos blocos que representam membros de dimensão esparsa.

Veja os seguintes exemplos:

Ordem de Cálculo da Célula: Exemplo 1

Neste exemplo, considere um segmento de dados em uma dimensão compacta e armazenada. A ordem das dimensões define a ordem de cálculo. Os valores #MISSING devem ser consolidados e não há fórmulas. O Essbase é capaz de calcular o segmento em uma única passagem.

Neste exemplo, que é o caso mais simples, estas condições são verdadeiras:

  • Nenhuma dimensão tem tags de tempo ou contas.

  • A configuração para consolidar valores #MISSING está ativada.

  • Mercado e Ano são dimensões densas.

    O Essbase calcula dimensões densas na ordem em que são definidas no outline do banco de dados. Suponha que a dimensão Ano esteja posicionada na estrutura do banco de dados antes da dimensão Mercado e seja calculada primeiro.

A grade a seguir mostra um segmento (um subconjunto das células em um bloco de dados). Na grade, a ordem de cálculo das células do intervalo é representada pelos números de 1 a 6.

Tabela 19-3 Exemplo de Ordem de Cálculo 1: Células de Entrada e Células Calculadas

Mercado anual New York Massachusetts Leste
Jan 112.345 68.754 3
Fev 135.788 75.643 4
Mar 112.234 93.456 5
Trim1 1 2 6

Os valores de dados foram carregados nas seguintes células de entrada:

  • Jan -> Nova Iorque

  • Fev -> Nova Iorque

  • Mar -> Nova Iorque

  • Jan -> Rio de Janeiro

  • Fev -> Massachusetts

  • Mar -> Rio de Janeiro

O Essbase calcula as células na ordem a seguir.

  1. Qtr1 -> Rio de Janeiro

  2. Qtr1 -> Rio de Janeiro

  3. Jan -> Leste

  4. Fev -> Leste

  5. Mar -> Leste

  6. Trim1 -> Leste

Qtr1 -> Leste tem vários caminhos de consolidação; pode ser consolidado no Mercado ou no Ano. Quando consolidado no Mercado, é uma consolidação de Qtr1 -> Nova York e Qtr1 -> Massachusetts. Quando consolidado no Ano, é uma consolidação de Jan -> Leste, Fev -> Leste e Mar -> Leste.

O Essbase sabe que Trim1 -> Leste tem vários caminhos de consolidação. Portanto, ele calcula Qtr1 -> Leste apenas uma vez, consolidando os valores para Qtr1 e usa o caminho de consolidação da dimensão calculada por último (neste exemplo, a dimensão Mercado), conforme mostrado abaixo.

Tabela 19-4 Exemplo de Ordem de Cálculo 1: Resultados

Mercado anual New York Massachusetts Leste
Jan 112.345 68.754 181.099
Fev 135.788 75.643 211.431
Mar 112.234 93.456 205.690
Trim1 360.367 237.853 598.220

Com base na ordem de cálculo, se você colocar uma fórmula de membro no Trimestre 1, o Essbase a ignorará ao calcular o Trimestre 1 -> Leste. Se você colocar uma fórmula de membro no Leste, a fórmula será calculada quando o Essbase consolidar Qtr1 -> Leste ao longo do Mercado.

Se necessário, você pode usar um script de cálculo para calcular as dimensões na ordem escolhida.

Ordem de Cálculo da Célula: Exemplo 2

Neste exemplo, considere um segmento de dados em uma dimensão armazenada e densa. A configuração do banco de dados determina que a ordem das dimensões define a ordem de cálculo. Um bloco precisa ser calculado duas vezes.

Neste exemplo, estas condições são verdadeiras:

  • Nenhuma dimensão tem tags de tempo ou contas.

  • A configuração para consolidar valores #MISSING está desativada (o padrão).

  • Mercado e Ano são dimensões densas.

    O Essbase calcula dimensões densas na ordem em que são definidas no outline do banco de dados. Suponha que a dimensão Ano esteja posicionada na estrutura do banco de dados antes da dimensão Mercado e seja calculada primeiro.

A grade a seguir mostra um segmento (um subconjunto das células em um bloco de dados). Na grade, a ordem de cálculo das células do intervalo é representada pelos números de 1 a 7.

Tabela 19-5 Exemplo de Ordem de Cálculo 2: Células de Entrada e Células Calculadas

Mercado anual New York Massachusetts Leste
Jan 112.345 68.754 4
Fev 135.788 75.643 5
Mar 112.234 93.456 6
Trim1 1 2 3/7

Os valores de dados foram carregados nas seguintes células de entrada:

  • Jan -> Nova Iorque

  • Fev -> Nova Iorque

  • Mar -> Nova Iorque

  • Jan -> Rio de Janeiro

  • Fev -> Massachusetts

  • Mar -> Rio de Janeiro

O Essbase calcula as células Qtr1 para as células de Nova York, Massachusetts e Leste e Leste para Jan, Fev e Março.

  1. Qtr1 -> Rio de Janeiro

  2. Qtr1 -> Rio de Janeiro

  3. Trim1 -> Leste

  4. Jan -> Leste

  5. Fev -> Leste

  6. Mar -> Leste

  7. Trim1 -> Leste

Qtr1 -> Leste é calculado nos caminhos de consolidação Ano e Mercado. Primeiro, Qtr1 -> Leste é calculado como uma consolidação de Qtr1 -> Nova York e Qtr1 -> Massachusetts. Segundo, Qtr1 -> Leste é calculado como uma consolidação de Jan -> Leste, Fev -> Leste e Mar -> Leste.

Os resultados são idênticos aos resultados, por exemplo 1. No entanto, Qtr1 -> Leste foi calculado duas vezes. Esse fato é significativo quando você precisa carregar dados nos níveis pai.

Com base na ordem de cálculo, se você colocar uma fórmula de membro em Trim1, seu resultado será substituído quando o Essbase consolidar Trim1 -> Leste ao longo do Mercado. Se você colocar uma fórmula de membro no Leste, o resultado será mantido porque o Mercado é calculado por último.

Tabela 19-6 Exemplo de Ordem de Cálculo 2: Resultados

Mercado anual New York Massachusetts Leste
Jan 112.345 68.754 181.099
Fev 135.788 75.643 211.431
Mar 112.234 93.456 205.690
Trim1 360.367 237.853 598.220

Ordem de Cálculo da Célula: Exemplo 3

Neste exemplo, considere uma fatia de dados em uma dimensão compacta e armazenada. A configuração do banco de dados determina que a ordem das dimensões define a ordem de cálculo. Há dois caminhos de consolidação pelos quais os blocos serão calculados.

Os dados de entrada de não nível 0 precisam ser calculados ao longo dos membros da região da dimensão Mercado. Faltam dados para os mercados-filho. Embora os valores #MISSING não sejam consolidados e não haja fórmulas, o Essbase faz duas aprovações.

Neste exemplo, estas condições são verdadeiras:

  • Nenhuma dimensão tem tags de tempo ou contas.

  • A configuração para consolidar valores #MISSING está desativada (o padrão).

  • Os valores de dados foram carregados nos níveis pai.

  • Mercado e Ano são dimensões densas.

    O Essbase calcula dimensões densas na ordem em que são definidas no outline do banco de dados. Suponha que a dimensão Ano esteja posicionada na estrutura do banco de dados antes da dimensão Mercado e seja calculada primeiro.

A grade a seguir mostra um segmento (subconjunto das células em um bloco de dados) que precisa ser calculado.

Tabela 19-7 Exemplo de Ordem de Cálculo 3: Células de Entrada e Valores #MISSING

Mercado anual New York Massachusetts Leste
Jan #AUSENTE #AUSENTE 181.099
Fev #AUSENTE #AUSENTE 211.431
Mar #AUSENTE #AUSENTE 205.690
Trim1 #AUSENTE #AUSENTE  

As células são calculadas na mesma ordem que em Ordem de Cálculo de Célula: Exemplo 2. Qtr1 -> Leste é calculado nos caminhos de consolidação Ano e Mercado.

Como a configuração para consolidar valores #MISSING está desativada, o Essbase não consolida os valores #MISSING. Assim, os dados carregados nos níveis pai não são substituídos pelos valores #MISSING abaixo dele.

No entanto, se qualquer um dos valores de dados filho não for #MISSING, esses valores serão consolidados e substituirão os valores pai. Por exemplo, se Jan -> Nova York contiver 50000.00, esse valor substituirá os valores carregados nos níveis pai.

O Essbase deve calcular a célula Trim1 -> Leste duas vezes para garantir que um valor seja calculado para a célula. Se Qtr1 -> Leste for calculado de acordo apenas com o último caminho de consolidação, o resultado será #MISSING, que não é o resultado necessário.

Os resultados mostram que o Essbase primeiro calcula corretamente a célula Trim1 -> Leste consolidando Jan -> Leste, Fev -> Leste e Mar -> Leste e, em seguida, calcula o caminho de consolidação do Mercado. No entanto, não consolida os valores #MISSING em Qtr1 -> New York e Qtr1 -> Massachusetts; portanto, o valor em Qtr1 -> East não é substituído.

Tabela 19-8 Exemplo de Ordem de Cálculo 3: Resultados

Mercado anual New York Massachusetts Leste
Jan #AUSENTE #AUSENTE 181.099
Fev #AUSENTE #AUSENTE 211.431
Mar #AUSENTE #AUSENTE 205.690
Trim1 #AUSENTE #AUSENTE 598.220

Ordem de Cálculo da Célula: Exemplo 4

Neste exemplo, considere uma fatia de dados em uma dimensão armazenada. A configuração do banco de dados determina em que ordem os blocos serão calculados.

Alguns dados de entrada que não sejam de nível 0 precisam ser calculados ao longo dos membros trimestrais da dimensão Tempo. Faltam dados para os meses filhos. A forma como este cubo é configurado, a dimensão Contas é calculada primeiro e os valores #MISSING não são consolidados. Não há fórmulas na hierarquia de Contas desta fatia.

Neste exemplo, estas condições são verdadeiras:

  • A dimensão Ano é marcada como Tempo.

  • A dimensão Medidas está marcada como Contas.

    O Essbase calcula uma dimensão marcada como Contas primeiro, seguida por uma dimensão marcada como Tempo. Portanto, neste exemplo, as Medidas são calculadas antes do Ano.

  • A configuração para consolidar valores #MISSING está desativada (o padrão).

  • Os valores de Marketing, Folha de Pagamento e Despesas Diversas foram carregados nos trimestres (nível 1).

A imagem abaixo mostra a ramificação Profit da dimensão Measures no banco de dados Sample Basic. Este exemplo pressupõe que o Total de Despesas seja armazenado (não um membro do Cálculo Dinâmico).

Figura 19-9 Filial de Lucro da Dimensão Medidas


Ramificação de lucro da dimensão Medidas.

Como não há fórmulas e o #MISSING não se consolida, os valores de nível superior não são substituídos. Os valores de dados com dois caminhos de consolidação (as medidas não de nível 0) são calculados duas vezes.

A grade a seguir mostra um segmento (um subconjunto das células em um bloco de dados). Na grade, a ordem de cálculo das células do intervalo é representada pelos números de 1 a 17.

Tabela 19-9 Exemplo de Ordem de Cálculo 4: Células de Entrada, Valores #MISSING e Células Calculadas

Medidas/Ano Jan Fev Mar Trim1
Sales 31.538 32.069 32.213 13
COGS 14.160 14307 14.410 14
Margem 1 4 7 15/10
Marketing #AUSENTE #AUSENTE #AUSENTE 15.839
Payroll #AUSENTE #AUSENTE #AUSENTE 12.168
Diversos #AUSENTE #AUSENTE #AUSENTE 233
Total de despesas 2 5 8 11/16
Lucro 3 6 9 12/17

As células a seguir têm vários caminhos de consolidação:

  • Margem -> Trimestre1

  • Total de despesas -> Trimestre 1

  • Lucro -> Trim1

Como a configuração para consolidar valores #MISSING está desativada, o Essbase não consolida os valores #MISSING. Qualquer dado carregado nos níveis pai não é substituído pelos valores #MISSING, e o Essbase calcula as células com vários caminhos de consolidação duas vezes.

Com base na ordem de cálculo, se você colocasse uma fórmula em Margem, seu resultado seria substituído pela consolidação em Trim1.

Os resultados são mostrados abaixo:

Tabela 19-10 Exemplo de Ordem de Cálculo 4: Resultados

Medidas/Ano Jan Fev Mar Trim1
Sales 31.538 32.069 32.213 95.820
COGS 14.160 14307 14.410 42.877
Margem 17.378 17.762 17.803 52.943
Marketing #AUSENTE #AUSENTE #AUSENTE 15.839
Payroll #AUSENTE #AUSENTE #AUSENTE 12.168
Diversos #AUSENTE #AUSENTE #AUSENTE 233
Total de despesas       28.240
Lucro 17.378 17.762 17.803 12/17

Ordem de Cálculo da Célula para Fórmulas em uma Dimensão Densa

Ao colocar uma fórmula em um membro de dimensão densa, considere cuidadosamente a ordem de cálculo da célula. Conforme ilustrado nos exemplos anteriores, a dimensão calculada pela última vez substitui os cálculos de célula anteriores para células com vários caminhos de consolidação.

A ordem de cálculo da célula em um bloco de dados não é afetada por fórmulas em membros. Quando o Essbase encontra uma fórmula em um bloco de dados, ele bloqueia qualquer outro bloco de dados necessário, calcula a fórmula e prossegue com o cálculo do bloco de dados.

Se necessário, você pode usar um script de cálculo para alterar a ordem em que as dimensões são calculadas. Consulte Desenvolver Scripts de Cálculo para Cubos de Armazenamento de Bloco e Desenvolver Fórmulas para Cubos de Armazenamento de Bloco.