Calcular Tuplas Selecionadas

Selecionando tuplas, você pode focar seus cálculos do Essbase na grade ativa do Smart View, limitando seu escopo a fatias específicas de dados em seu cubo de armazenamento em blocos.

As seguintes seções descrevem o cálculo de tupla:

Para obter a sintaxe da implantação de @GRIDTUPLES em um script de cálculo, consulte FIX…ENDFIX.

Caso de Uso para Cálculo de Tupla

Selecionando tuplas, você pode focar seus cálculos do Essbase na grade ativa do Smart View, limitando seu escopo a fatias específicas de dados em seu cubo de armazenamento em blocos.

A seleção de tupla ajuda você a otimizar os cálculos de grade assimétrica entre as dimensões, evitando cálculo em excesso.

As tuplas de cálculo do Essbase diferem daquelas usadas nas consultas MDX. O desempenho do cálculo e o tamanho do cubo são orientados principalmente pelo número de blocos no cubo (de acordo com um tamanho de bloco específico). Por esse motivo, as tuplas de cálculo são especificadas apenas para combinações de membros dispersos. Além disso, para facilidade do script de cálculo, diversos membros de uma única dimensão dispersa podem ser incluídos em uma especificação de tupla de cálculo. Por exemplo, se você especificar ("New York", "California", "Actual", "Cola") como tupla de cálculo, irá calcular as seguintes interseções de célula:

"New York"->"Actual"->"Cola"
"California"->"Actual"->"Cola"

Considere a seguinte grade simétrica. É simétrica porque cada produto tem o mesmo mercado e cenário (Actual) representados na grade.

Grade simétrica com valores Actual, Jan para cinco mercados de Cola e os mesmos cinco mercados para Diet Cola

A grade seguinte é assimétrica, porque o produto Diet Cola tem menos mercados na grade do que o produto Cola.

Grade assimétrica com valores Actual, Jan para cinco mercados de Cola, mas apenas dois mercados para Diet Cola

O escopo de cálculo padrão, quando mais de uma dimensão está em uma instrução FIX ou em um ponto de vista (POV) da grade do Smart View, seria calcular o produto cruzado (todas as combinações possíveis) dos membros na FIX ou na grade. Em outras palavras, um cálculo orientado a POV no qual as combinações de produto e mercado são extraídas da grade calcula todas estas combinações de linha/membro:

Cola->"New York"
Cola->"Massachusetts"
Cola->"Florida"
Cola->"Connecticut"
Cola->"New Hampshire"
"Diet Cola"->"New York"
"Diet Cola"->"Massachusetts"
"Diet Cola"->"Florida"
"Diet Cola"->"Connecticut"
"Diet Cola"->"New Hampshire"

Isso pode ter mais atividade de cálculo do que você precisa. Se você quiser calcular apenas as combinações mostradas na grade, poderá especificar quais tuplas calcular e limitar o cálculo a uma fatia menor. As tuplas de cálculo também podem reduzir o tempo de cálculo e o tamanho do cubo.

Cola->"New York"
Cola->"Massachusetts"
Cola->"Florida"
Cola->"Connecticut"
Cola->"New Hampshire"
"Diet Cola"->"New York"
"Diet Cola"->"Florida"

Noções Básicas de Cálculo Baseado em Tupla

Uma tupla de cálculo é a forma de representar uma fatia de dados de membros, em duas ou mais dimensões dispersas, a ser usada em um cálculo de armazenamento em blocos do Essbase.

Exemplos de tuplas de cálculo válidas:

  • ("Diet Cola", "New York")
  • ("Diet Cola", "Cola", Florida)
  • (Cola, "New Hampshire")

Se você escrever expressões MDX, esteja ciente destas restrições de tupla que se aplicam a MDX:

  • Apenas um único membro de cada dimensão pode ser incluído em uma tupla MDX
  • Todas as tuplas em um conjunto MDX devem ter as mesmas dimensões representadas, na mesma ordem

No entanto, quando você selecionar as tuplas nos scripts de cálculo, esses requisitos serão flexibilizados por questões práticas. Você poderá escrever livremente expressões de tupla, e estas poderão descrever listas de membros, conforme esta tupla: (@Children(East), Cola).

Selecionar Tuplas para Cálculo de Ponto de Vista

Uma maneira fácil de selecionar tuplas seria inseri-las explicitamente em um script de cálculo, como uma lista dentro da instrução FIX.

Lembre-se de que o formato de uma instrução FIX é semelhante a este:

FIX (fixMbrs)
COMMANDS ;
ENDFIX

Na instrução FIX a seguir, duas tuplas são especificadas antes do início do bloco de comandos. As tuplas foram colocadas entre chaves { } que delimitam um conjunto, que é uma coleção de tuplas.

FIX({
  (@Children(East), Cola),
  ("New York", Florida, "Diet Cola")
  })
Sales (Sales = Sales + 10;);
ENDFIX

Outra maneira de selecionar tuplas seria contextualmente, com base em se os membros estão presentes em um POV da grade do Smart View no momento da execução do cálculo. Isso é feito informando a função @GRIDTUPLES como argumento para FIX, no script de cálculo.

FIX ({@GRIDTUPLES(Product, Market)})
   Sales (Sales = Sales + 10;);
ENDFIX

Se você executar esse script de cálculo no Smart View conforme a grade abaixo, somente as combinações exibidas de produtos e mercados serão calculadas. Por exemplo, "Diet Cola"->Massachusetts não é calculado, visto que não é mostrado explicitamente na grade. Observe que todos os cenários (a terceira dimensão dispersa nesse cubo de amostra) são calculados, ainda que somente Actual seja mostrado na grade. Isso se deve ao fato de que a dimensão Cenário não faz parte da instrução GRIDTUPLES no script de cálculo.

Grade assimétrica com valores Actual, Jan para cinco mercados de Cola, mas apenas dois mercados para Diet Cola

A seleção de tupla, quer seja feita usando listas explícitas de tuplas ou usando a função @GRIDTUPLES, só é aplicável no contexto do comando de cálculo FIX…ENDFIX. A sintaxe da instrução FIX é expandida para ativar a seleção de tupla:

FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs)
COMMANDS ;
ENDFIX
  • tupleList - conjunto de tuplas separadas por vírgula.
  • dimensionList - pelo menos duas dimensões dispersas cujos membros da grade ativa do Smart View são usados para definir as regiões de cálculo. (Em scripts de cálculo, você só pode usar dimensões dispersas para definir tuplas.)
  • fixMbrs - um membro ou uma lista de membros

Exemplos de Seleção de Tupla para Reduzir o Escopo de Cálculo

Usando uma grade do Smart View e uma instrução FIX de script de cálculo do Essbase, você pode calcular tuplas de membros selecionadas com base no ponto de vista (POV) da grade. Se preferir, você poderá digitar explicitamente as combinações de tuplas em sua instrução FIX, removendo a dependência de uma grade do Smart View em particular para definir o escopo de cálculo.

O cálculo de tuplas selecionadas ajuda a trabalhar de forma eficiente com regiões assimétricas em scripts de cálculo e grades do Smart View.

Considere os seguintes exemplos:

  • Nenhuma Seleção de Tupla - Calcula na maneira padrão, com base no ponto de vista (POV) da grade do Smart View atual. O cálculo não se limita a qualquer tupla específica.
  • Seleção de Dimensões Dispersas Nomeadas - Calcula tuplas de duas ou mais dimensões dispersas nomeadas em um script de cálculo. O cálculo se limita aos membros das dimensões de tuplas que estão presentes na grade do Smart View.
  • Seleção de Dimensões Dispersas Contextuais - Calcula tuplas de dimensões dispersas selecionadas no runtime. O cálculo se limita aos membros das dimensões de tuplas presentes na grade do Smart View.

Para testar os exemplos, faça download do modelo de pasta de trabalho CalcTuple_Tuple.xlsx na seção Técnico > Cálculo da pasta galeria na área Arquivos da interface web do Essbase. Consulte a planilha README na pasta de trabalho para obter instruções.

Nenhuma Seleção de Tupla

Demonstrando o comportamento de cálculo padrão de armazenamento em blocos do Essbase que ocorre quando você não seleciona tuplas, o script de cálculo a seguir calcula o produto cruzado inteiro dos membros das dimensões Produto e Mercado em uma grade do Smart View.

Com a ajuda de duas variáveis de substituição de runtime (RTSV) definidas no bloco SET RUNTIMESUBVARS, o cálculo se limita a quaisquer que sejam os pontos de vista Produto e Mercado presentes na grade quando o cálculo é executado no Smart View.

SET RUNTIMESUBVARS
{
ProductGridMembers = POV
<RTSV_HINT><svLaunch>
<description>All Product's members on the grid</description>
<type>member</type>
<dimension>Product</dimension><choice>multiple</choice>
</svLaunch></RTSV_HINT>;
MarketGridMembers = POV
<RTSV_HINT><svLaunch>
<description>All Market's members on the grid</description>
<type>member</type> <dimension>Market</dimension><choice>multiple</choice>
</svLaunch></RTSV_HINT>;
};
FIX (
&ProductGridMembers, &MarketGridMembers
)
Marketing(
   Marketing = Marketing +1;
);
ENDFIX

Seleção de Dimensões Dispersas Nomeadas

Usando a função @GRIDTUPLES para selecionar a tupla de dimensões Produto e Mercado, esse script de cálculo de armazenamento em blocos do Essbase só calcula tuplas dessas duas dimensões, limitando seu escopo aos membros presentes em uma grade do Smart View no instante em que o cálculo é executado no Smart View.

FIX (
{@GRIDTUPLES(Product, Market)}
)
Marketing(
   Marketing = Marketing + 1;
);
ENDFIX

Fixando apenas nas dimensões dispersas nomeadas na tupla, o cálculo inclui um número muito menor de blocos do que um cálculo padrão incluiria. Entretanto, todos os membros das dimensões não mencionadas no fixo (Ano, Cenário) são calculados por esse script de cálculo.

Seleção de Dimensões Dispersas Contextuais

Usando a função @GRIDTUPLES e uma variável de substituição do runtime, esse script de cálculo de armazenamento em blocos do Essbase só calcula as tuplas selecionadas da grade, com base nas seleções de dimensão dispersa no prompt RTSV.

A variável de substituição do runtime &DimSelections, que é definida no bloco SET RUNTIMESUBVARS, limita o escopo de cálculo a apenas as dimensões dispersas do cubo, excluindo Cenário. A função @GRIDTUPLES usada na instrução FIX chama essa variável, limitando o número de interseções que são calculadas.

SET RUNTIMESUBVARS
            {
            DimSelections = "Version", "Site", "Entity", "Product", "Market"
            <RTSV_HINT><svLaunch>
            <description>List two or more sparse dimensions used for forming calculation tuples:</description>
            <type>string</type>
            </svLaunch></RTSV_HINT>;
            };
            FIX (
            {@GRIDTUPLES(&DimSelections)}
            )
            Marketing(
            Marketing = Marketing + 1;
            );
            ENDFIX
        

O cálculo inclui um número ainda menor de blocos do que o exemplo anterior, porque nesse caso, a definição de tupla se estende a mais dimensões dispersas além de Product->Market.

Para testar os exemplos, faça download do modelo de pasta de trabalho CalcTuple_Tuple.xlsx na seção Técnico > Cálculo da pasta galeria na área Arquivos da interface web do Essbase. Consulte a planilha README na pasta de trabalho para obter instruções.