Alocar Valores em uma Dimensão
Este exemplo de script de cálculo do Essbase usa a função @ALLOCATE para alocar despesas totais orçadas entre categorias de despesa para dois produtos. As despesas totais orçadas são alocadas com base nos valores reais do ano anterior.
Suponha que você tenha feito as seguintes alterações no Sample Basic, conforme mostrado na estrutura ilustrada abaixo:
-
Adicionado um filho, Leasing, em Despesas Totais na dimensão Medidas
-
Adicionado um filho, PY Real, à dimensão Cenário
Figura 24-3 Medidas Modificadas e Dimensões de Cenário

Suponha que os valores de dados 1000 e 2000 sejam carregados em Orçamento -> Total de Despesas para Colas e Cerveja Raiz, respectivamente. Esses valores devem ser alocados para cada categoria de despesa, distribuindo uniformemente os valores com base nos filhos não ausentes do Total de Despesas de PY Real. Os valores alocados devem ser arredondados para o dólar mais próximo.
Exemplo de script:
/* Allocate budgeted total expenses based on prior year */
FIX("Total Expenses")
Budget = @ALLOCATE(Budget->"Total Expenses",
@CHILDREN("Total Expenses"),"PY Actual",,
spread,SKIPMISSING,roundAmt,0,errorsToHigh)
ENDFIX Budget PY Actual
Colas Marketing 334 * 150
Payroll #MI #MI
Lease 333 200
Misc 333 100
Total Expenses 1000 450
Root Beer Marketing 500 300
Payroll 500 200
Lease 500 200
Misc 500 400
Total Expenses 2000 1100* Erros de arredondamento são adicionados a este valor.
O Essbase percorre o banco de dados, executando os seguintes cálculos:
-
Correções nos filhos do Total de Despesas.
O uso de uma instrução FIX com @ALLOCATE pode melhorar o desempenho do cálculo.
-
Para Orçamento -> Colas -> Marketing, divide 1 pela contagem de valores não ausentes para cada categoria de despesa em PY Real -> Colas para cada mês.
Nesse caso, 1 é dividido por 3, porque há 3 valores de despesa não ausentes para Budget -> Colas.
-
Pega o valor da etapa 2 (.333), multiplica-o pelo valor de Orçamento -> Colas -> Total de Despesas (1000) e arredonda para o dólar mais próximo (333). O resultado é colocado em Orçamento -> Colas -> Marketing.
-
Repete as etapas 2 e 3 para cada categoria de despesa para Orçamento -> Colas e, em seguida, para Orçamento -> Cerveja Raiz.
-
Conforme especificado no script de cálculo, os valores alocados são arredondados para o dólar inteiro mais próximo.
O Essbase faz uma segunda passagem pelo bloco para tornar a soma dos valores arredondados igual ao valor de alocação (por exemplo, 1000 para Orçamento -> Colas -> Total de Despesas). Neste exemplo, há um erro de arredondamento 1 para Orçamento -> Colas -> Total de Despesas, porque as categorias de despesa somam 999, e não 1000, que é o valor de alocação. Como todos os valores alocados são idênticos (333), o erro de arredondamento 1 é adicionado ao primeiro valor no intervalo de alocação, Orçamento -> Colas -> Marketing (assim, um valor de 334).