O Script de Cálculo do Essbase é a linguagem disponível para você gravar a sua própria lógica de negócios personalizada no Financial Consolidation and Close. Esta seção fornece alguns construtos básicos do Essbase, bem como restrições aplicadas ao Financial Consolidation and Close. Para obter detalhes sobre o Script de Cálculo do Essbase, consulte Introdução ao Essbase Cloud para Administradores.
Sintaxe Comum
Vendas = Vendas * 1,50;
"Relação de Caixa" = "Caixa"/"Passivos Atuais";
->
para especificar interseções de mais de uma dimensão"Vendas"->"Alterações na Renda Líquida"->"Produto1";
Comentários
Comentários começam com /*
e terminam com */
.
São suportados um único ou vários comentários.
Você pode usar o ícone de barra de ferramentas para definir ou remover blocos de comentários.
FIX/ENDFIX
FIX/ENDFIX é um dos blocos básicos de construção de qualquer script de cálculo. Para fazer qualquer cálculo, defina uma seção FIX/ENDFIX e depois insira os cálculos reais dos negócios dentro dela.
Exemplo: suponha que "Produtos" seja sua dimensão personalizada e você queira calcular o números de televisões vendidas. Você poderia usar a seguinte sintaxe:
FIX("Televisions")
"Units_Sold" = "LED_TVs" + "UHD_TVs";
ENDFIX
Este é o cálculo real dos negócios:
"Units_Sold = "LED_TVs" + "UHD_TVs";
, que calcula o número de televisões vendidas.
Nota:
Insira um ponto-e-vírgula no fim de cada instrução de cálculo, mas não para FIX ou ENDFIX.A seção FIX/ENDFIX limita os membros de várias dimensões para participarem em cálculos dentro dela. Neste exemplo, somente "Televisões" estão participando dos cálculos.
Você também pode definir FIXes aninhadas, como as seguintes:
O cálculo acima também pode ser escrito da seguinte maneira:
Por exemplo, @List é uma função do Essbase. O Essbase fornece muitas funções. No entanto, o Financial Consolidation and Close não suporta todas essas funções do Essbase. Consulte a "Lista de Funções do Essbase" para ver uma lista de funções suportadas.
FIX em Dimensões do Financial Consolidation and Close
Um aplicativo do Financial Consolidation and Close pode conter 13 dimensões, dependendo dos recursos do aplicativo que estão habilitados. Dentre as 13 dimensões possíveis, você não tem permissão para usar FIX nas dimensões a seguir porque o sistema aplica FIX automaticamente a elas quando um usuário chama um processo de consolidação.
Cenário
Ano
Período
Exibição
Entidade
Por exemplo, suponha que você tenha a instrução a seguir:
O sistema não conseguirá fazer a implantação e uma mensagem de erro será registrada no console de Jobs com as informações apropriadas.
No entanto, isso não quer dizer que você não possa usar essas dimensões no script. Em geral, um cálculo terá algo parecido com a sintaxe abaixo:
Note que em FIX e no "Lado esquerdo", não é possível usar qualquer membro das dimensões Cenário, Ano, Período, Entidade e Exibição. Mas não existe essa restrição no "Lado direito" da equação.
A seguinte sintaxe seria permitida:
Para as oito dimensões restantes, se você não usar FIX em uma dimensão específica, o sistema assumirá todos os membros dessa dimensão. Por exemplo, suponha que você tenha a instrução a seguir:
Neste exemplo, todas as dimensões restantes têm FIX, exceto Conta. Neste caso, o Essbase considerará todos os membros da dimensão Conta para os cálculos dentro de FIX/ENDFIX.
Membros Restritos do Financial Consolidation and Close
Alguns membros específicos dentro de cada Financial Consolidation and Close não podem ser usados ou calculados no script de cálculo. Se os membros restritos forem usados, o sistema não conseguirá fazer a validação ou a implantação, e uma mensagem de erro será registrada no console de Jobs.
Lembre-se de que, se nenhum membro for especificado para a dimensão, o sistema assumirá TODOS os membros dentro da dimensão. No entanto, como os membros restritos não podem ser incluídos como parte do processo, você deverá excluí-los explicitamente nas instruções da dimensão FIX ou no lado esquerdo da expressão.
A tabela a seguir é uma listagem completa dos membros restritos do Financial Consolidation and Close dessas dimensões. Observe que, para as dimensões Moeda e Consolidação, eles serão restritos com base na regra de inserção que estiver em uso. Note que cada regra de inserção distribuída contém informações na seção Comentário sobre qual membro da dimensão Moeda e Consolidação pode ser incluído para essa regra.
Tabela 20-5 Membros de Dimensão Restritos
Dimensão | Membro | Expressão Lado Esquerdo | Expressão Lado Direito |
---|---|---|---|
Cenário | Todos Membros | Não | Sim |
Ano | Todos Membros | Não | Sim |
Período | Todos Membros | Não | Sim |
Exibição | Todos Membros | Não | Sim |
Entidade | Todos Membros | Não | Sim |
Conta | FCCS_CSTATUS | Não | Sim |
FCCS_CSTATUS FILTER | Não | Sim | |
Taxas de Câmbio — Fechamento | Não | Sim | |
Taxas de Câmbio — Média | Não | Sim | |
Average Rate | Não | Sim | |
Ending Rate | Não | Sim | |
SrcAverageRate | Não | Sim | |
TgtAverageRate | Não | Sim | |
SrcEndingRate | Não | Sim | |
TgtEndingRate | Não | Sim | |
FCCS_Balance | Não | Sim | |
FCCS_CTA | Não | Sim | |
FCCS_CICTA | Não | Sim | |
FCCS_Percent Control | Não | Sim | |
FCCS_Current Ratio | Não | Sim | |
FCCS_Quick Ratio | Não | Sim | |
FCCS_Cash Ratio | Não | Sim | |
FCCS_Inventory Turnover | Não | Sim | |
FCCS_Asset Turnover | Não | Sim | |
FCCS_Days Sales no Receivables | Não | Sim | |
FCCS_Days Sales no Inventory | Não | Sim | |
FCCS_Gross Profit Margin | Não | Sim | |
FCCS_Return on Sales | Não | Sim | |
FCCS_Return on Equity | Não | Sim | |
FCCS_Debt to Equity Ratio | Não | Sim | |
FCCS_Debt Ratio | Não | Sim | |
Origem de Dados | FCCS_System Types | Não | Sim |
FCCS_Rate Override | Não | Sim | |
FCCS_Account Override | Não | Sim | |
FCCS_PCON | Não | Sim | |
FCCS_Driver Source | Não | Sim | |
Movimento | FCCS_Opening Balance | Não | Sim |
FCCS_OpeningBalance_Cash | Não | Sim | |
FCCS_FX_Total_NonCash | Não | Sim | |
FCCS_ClosingBalanceCash | Não | Sim |
FIX em Todos os Membros de uma Dimensão, Exceto nos Membros Restritos
É um caso de uso comum em que você precisa usar FIX em todos os membros de nível 0 de uma dimensão e a dimensão pode ter membros restritos. Este exemplo mostra como usar FIX de maneira ideal em todos os membros de nível 0, exceto nos membros restritos dessa dimensão.
Por exemplo, a dimensão Conta tem o maior número de membros restritos.
Veja a seguir o snippet do código de script de cálculo que pode ser usado para FIX em todos os membros Conta de nível 0, exceto nos membros restritos:
@REMOVE( @LEVMBRS( "Account", 0 ), @LIST( @RELATIVE( "FCCS_System Account", 0 ),@RELATIVE( "FCCS_Drivers", 0 ),@RELATIVE( "FCCS_Ratios", 0 ),@RELATIVE( "Exchange Rates", 0 ) ) )
FIX em Dimensões Esparsas versus Dimensões Densas
FIX é mais eficiente quando feito em dimensões Esparsas. Neste caso, FIX criará blocos de extração do Essbase apenas para a combinação de membros de dimensão Esparsa que estão definidos em FIX e ignorarão o restante.
Essas combinações esparsas funcionam como índices para que o Essbase pesquise os blocos de dados correspondentes a índices e extraia-os dos cálculos. Portanto, nem todos os blocos são extraídos do sistema para execução.
Quando FIX for usado em uma dimensão Densa, os membros densos estarão presentes em cada bloco de dados no Essbase. Portanto, isso teria um impacto no desempenho caso não fosse usado corretamente. Note que, quando FIX estiver na dimensão Densa, o Essbase extrairá todos os blocos de dados sem limitar o número de blocos e limitará somente uma parte dentro de cada bloco. Portanto, talvez sejam necessárias várias passagens para que o banco de dados retorne as informações.
Por exemplo, você poderia fazer referência a "Contas" e "Pós-vendas" da dimensão Conta com as seguintes instruções:
Quando o sistema processa a primeira correção em "Vendas", o Essbase extrai todos os blocos de dados da dimensão Conta, mas só trabalha na conta "Vendas" propriamente dita.
Mais adiante na instrução FIX em "Pós-Vendas", o Essbase extrai novamente todos os blocos de dados da dimensão Conta, mas só trabalha na conta "Pós-Vendas" propriamente dita. Nesse caso, são feitas duas passagens para o banco de dados dessas duas contas.
Para evitar problemas de desempenho, você pode evitar usar FIX na dimensão Conta; use IF...THEN para uma dimensão Densa.
Neste exemplo em que você não está usando a instrução FIX, você só precisa fazer uma passagem para o banco de dados do Essbase.
A recomendação é usar FIX em dimensões Esparsas e usar IF..THEN em dimensões Densas. Isso ajudará no desempenho de cálculo.
Bloco de Membros
Os blocos de membros também são conhecidos como blocos de cálculo. Às vezes, você verá o termo "âncora" usado para blocos de Membros. A sintaxe de um bloco de membros é a seguinte:
Veja a seguir um exemplo de instruções de blocos de membros:
Neste exemplo, "Meu Saldo Inicial Total" também é conhecido como âncora ou membro de blocos de cálculo. Sempre que possível, esse membro deve ser um membro de uma dimensão Densa.
No cálculo acima, só limitaremos ao membro "Minha Abertura de Taxa de Câmbio", e os cálculos serão executados no membro especificado na instrução FIX.
Note que, ao usar instruções IF, você precisará de um bloqueio de membros. Você não pode criar instruções IF fora dos bloqueios de Membros.