Resolução dos Avisos de Validação do Script de Cálculo

Quando você cria e valida Cálculos Configuráveis ou regras Sob Demanda que usam Script de Cálculo do Essbase, como parte do processo de validação, o Financial Consolidation and Close oferece avisos sobre problemas que possam causar diminuição do desempenho quando você executa a regra. Para ver esses avisos, selecione a guia Erros e Avisos no Calculation Manager e clique no botão verde para executar o diagnóstico do script.

Na captura de tela a seguir, as células realçadas em verde são avisos do Financial Consolidation and Close. Os outros avisos exibidos são do Calculation Manager.


Validações de regra no Calc Manager

Nota:

Os avisos de Validação da Regra do Financial Consolidation and Close também são exibidos no módulo Recomendações. Consulte Exibição de Recomendações de Aplicativo.

As mensagens de aviso são classificadas e mostradas com base no número da linha do script.

Para exibir os avisos de validação da regra no Calculation Manager:

  1. Abra o Calculation Manager e selecione a guia Erros e Avisos.
  2. Clique no ícone Executar para exibir os avisos.

As seções a seguir dão detalhes sobre como resolver avisos de Validação da Regra.

Validação do Script do Calc Manager para Uso de Âncora

Siga estas diretrizes para o uso correto de Âncora em scripts do Calc Manager:

Para Aplicativos Não DSO

  • Se o bloco FIX tiver um único membro Movimento, o Financial Consolidation and Close recomendará usar esse membro Movimento como âncora.
  • Se tiver mais de um membro Movimento no bloco FIX, você não conseguirá escolher Movimento como a âncora. Nesse caso, você pode escolher um membro de outras dimensões Esparsas como âncora.
    • Para cálculos configuráveis (pontos de inserção), você não pode escolher um membro em Cenário, Ano, Período, Entidade ou Exibição como âncora.

    • Para On Demand Rules (regras sob demanda - ODRs), você não pode escolher um membro em Cenário, Ano, Período, Entidade, Consolidação ou Moeda como âncora.

  • Evite usar um membro de uma dimensão Densa como âncora. No caso de aplicativos não DSO, Conta é uma dimensão Densa. Para blocos de membros Densos, CALCMODE(BOTTOMUP) não oferecerá nenhuma vantagem em termos de desempenho.

Para Aplicativos DSO

  • Em aplicativos DSO, Movimento é uma dimensão Densa. Se estiver migrando de um aplicativo não DSO para DSO, você deverá se certificar de que um membro da dimensão Movimento não seja a âncora. Você pode escolher um membro na dimensão Conta como âncora para o bloco de membros, uma vez que Conta é Esparsa em aplicativos DSO.

  • Se você não conseguir escolher um membro Conta como âncora, escolha um membro de outras dimensões Esparsas como âncora.

    • Para cálculos configuráveis (pontos de inserção), você não pode escolher um membro em Cenário, Ano, Período, Entidade ou Exibição (Densa) como âncora.

    • Para On Demand Rules (regras sob demanda - ODRs), você não pode escolher um membro em Cenário, Ano, Período, Entidade, Consolidação ou Moeda como âncora.

  • Evite usar um membro de uma dimensão Densa como âncora. Em aplicativos DSO, Movimento e Período são dimensões Densas. Para blocos de membros Densos, CALCMODE(BOTTOMUP) não oferecerá nenhuma vantagem em termos de desempenho.

Este é um exemplo de um Cálculo Configurável (regra de inserção) para um Aplicativo não DSO. Cada linha é indicada por #, que é o número da linha.

#1 FIX ("FCCS_Periodic", "FCCS_Journal Input", "FCCS_Managed Data", "IFRS_IN ", "Entity Currency", "FCCS_Mvmts_NetIncome", @relative("Total Categories", 0), @relative("Total Area", 0), @LEVMBRS("Intercompany", 0) @relative("Total Custom", 0)) 
#2        "FCCS_Entity Input" (
#3           IF (@ISMBR("Actual_Red")) 
#4                IF (@ISUDA("Entity", "B10") AND ("FCCS_Mvmts_NetIncome" <> #Missing)) 
#5                    ENDIF
#6            ENDIF
#7        ) 
#8 ENDFIX

Neste exemplo de script, o processo de validação das regras vai gerar o seguinte aviso:

Linha 2: Use o membro Movimento FCCS_Mvmts_NetIncome como âncora, em vez do membro Âncora FCCS_Entity Input.

Este é um exemplo de um Cálculo Configurável (regra de inserção) para um Aplicativo DSO. Cada linha é indicada por #, que é o número da linha.

     #1   FIX("FCCS_Periodic","FCCS_No Intercompany","No operating Expense","Product1    ","CORP_IN","IC_PROFIT_ACC ")
        #2      "FCCS_Managed Data"(
        #3      @CALCMODE(BOTTOMUP);
        #4          IF (@ISMBR("FY21"))
        #5              "FCCS_OpeningBalanceAdjustment"=10;
        #6         ENDIF
        #7       )
        #8     ENDFIX

Neste exemplo de script, o processo de validação das regras vai gerar o seguinte aviso:

Linha 2: Use o membro Conta IC_PROFIT_ACC como âncora, em vez do membro Âncora FCCS_Managed Data.

Validação do Script do Calc Manager para @CALCMODE (BottomUp)

@CALCMODE(BOTTOMUP) X @CALCMODE(TOPDOWN)

O Financial Consolidation and Close recomenda o uso de BOTTOMUP, em comparação com TOPDOWN, tendo em vista cálculos mais rápidos usando Cálculos Configuráveis (Pontos de Inserção) ou On-Demand Rules (regras sob demanda - ODRs).

Durante BOTTOMUP, que é a abordagem padrão para cálculos, o Essbase determina quais blocos de dados existentes precisam ser calculados para que ele calcule os dados usando os blocos de membros Esparsos. O Essbase acaba calculando apenas os blocos que precisam ser calculados durante o cálculo do banco de dados completo.

Exemplo: A = B + C

A só será calculado se B e C existirem no banco de dados. A dependência de A sobre B e C é conhecida antes do início do cálculo real.

Durante TOPDOWN, o Essbase calcula a fórmula em todos os blocos de dados em potencial usando os membros Esparsos no bloco de membros.

Exemplo: A = B -> D + C -> D

Para calcular a fórmula, o Essbase deve examinar todas as combinações de A para saber se existe B -> D ou C -> D.

O Essbase usa BOTTOMUP como o mecanismo padrão para calcular uma fórmula atribuída em um membro Esparso, a menos que a fórmula seja naturalmente complexa, quando o cálculo executará TOPDOWN.

Expressão complexa é aquela que atende aos seguintes critérios:

  • Contém operadores entre dimensões [ -> ]

  • Usa uma ou mais funções de intervalo, por exemplo, @AVGRANGE, @MAXRANGE, @MINRANGE ou @SUMRANGE

  • Usa funções financeiras ou de relacionamento, por exemplo, @ANCESTVAL, @NEXT, @PARENTVAL, @SHIFT, @ACCUM or @GROWTH

Nessas situações, o Essbase oferece a função @CALCMODE(BOTTOMUP) para aplicar um cálculo de fórmula esparsa a fim de executar BOTTOMUP.

Este é um exemplo de um Cálculo Configurável (regra de inserção). Cada linha é indicada por #, que é o número da linha.

#1   FIX ("FCCS_Periodic", "FCCS_Entity Input", "Entity Currency", "FCCS_ClosingBalance_Input","FCCS_Balance Sheet","FCCS_Total Data Source") 
#2   "FCCS_Income_Statement"(
#3   "FCCS_Movements"=@CURRMBR("Entity")->"FCCS_Contribution" -> "FCCS_Movements";
#4   )
#5   ENDFIX 

Neste exemplo de script, o processo de validação das regras vai gerar o seguinte aviso:

Linha 2: Use @CalcMode (BOTTOMUP) para o bloco de membros FCCS_Income_Statement.

Para obter mais informações, consulte este tópico: https://docs.oracle.com/cd/E57185_01/ESBTR/calcmode_func.html

Validação do Script do Calc Manager para BSO Híbrido

Para aplicativos híbridos do Financial Consolidation and Close, é recomendável definir HYBRIDBSOINCALCSCRIPT NONE/FULL sempre que aplicável, tendo em vista os resultados de melhor desempenho.

Por padrão, os Cálculos Configuráveis (regras de inserção) têm HYBRIDBSOINCALCSCRIPT definido como FULL e, para regras Sob Demanda, HYBRIDBSOINCALCSCRIPT definido como NONE.

O processo de validação das regras verifica se o script contém membros da Dimensão CustomTop, que têm o tipo de armazenamento Cálculo Dinâmico.

  • Se a expressão tiver Membros CustomTop 0 ou 1, um aviso será exibido para definir HYBRIDBSOINCALCSCRIPT como NONE (se definido como FULL).
  • Se a expressão tiver dois ou mais Membros CustomTop, um aviso será exibido para definir HYBRIDBSOINCALCSCRIPT como NONE (se definido como NONE).

Este é um exemplo de uma regra Sob Demanda. Cada linha é indicada por #, que é o número da linha.

     #1 FIX ("FCCS_Periodic", "FCCS_No Intercompany", "No Product", "FCCS_Mvmts_NetIncome", @RELATIVE("AllDepts", 0), "No Department") 
        #2    FIX (@RELATIVE("TotalHFM", 0)) 
        #3        "StkCmpRev_CE" = -("555011_CE"->"FCCS_YTD"->"FCCS_Intercompany Top") - ("555012_CE"->"FCCS_YTD"->"FCC_Intercompany Top");
        #4    ENDFIX 
#5 ENDFIX

Neste exemplo de script, o processo de validação das regras vai gerar o seguinte aviso:

Linha 3: Desative o cálculo Híbrido para este bloco com SET HYBRIDBSOINCALCSCRIPT NONE.

Para obter mais informações, consulte este tópico: https://docs.oracle.com/en/cloud/paas/analytics-cloud/tress/hybridbsoincalcscript.html.

Validação do Script do Calc Manager para @CALCMODE (BLOCK)

Para esse caso de uso específico, o Financial Consolidation and Close recomenda adicionar @CalcMode (BLOCK) sempre que aplicável para melhorar o desempenho.

Para obter mais informações sobre @CalcMode (BLOCK), consulte este tópico: https://docs.oracle.com/cd/E57185_01/ESBTR/calcmode_func.html.

Para identificar se @CALCMODE(BLOCK) é obrigatório em um bloco Âncora para aplicativos DSO e Não DSO, o processo de validação das regras verifica as seguintes condições:

  • Se as expressões no bloco Âncora forem complexas

  • Se a expressão contiver determinadas funções, por exemplo, @ANCEST, @CURRMBR, @ISMBR em um membro denso, @MDANCESTVAL, @MDPARENTVAL, @MDSHIFT, @NEXT, @PARENT, @PARENTVAL, @PRIOR, @SANCESTVAL, @SPARENTVAL, @SHIFT

Se essas condições forem atendidas, o processo de validação emitirá um aviso incluindo o número da linha.

Este é um exemplo de um Cálculo Configurável (regra de inserção). Cada linha é indicada por #, que é o número da linha.

#1   FIX ("FCCS_Periodic", "FCCS_Entity Input", "Entity Currency", "FCCS_ClosingBalance_Input","FCCS_Balance Sheet","FCCS_Total Data Source") 
#2   "FCCS_Income_Statement"(
#3   "FCCS_Movements"=@CURRMBR("Entity")->"FCCS_Contribution" -> "FCCS_Movements";
#4   )
#5   ENDFIX 

Neste exemplo de script, o processo de validação das regras vai gerar o seguinte aviso:

Linha 2: Use @CalcMode (BLOCK) para o bloco de membros FCCS_Income_Statement.