Calcular Tuples Selecionados

Ao selecionar tuples, pode concentra-se nos seus cálculos do Essbase na grelha ativa do Smart View, limitando o respetivo âmbito a setores específicos de dados no seu cubo de armazenamento em blocos.

As seguintes secções descrevem o cálculo de tuple.

Para a sintaxe para empregar @GRIDTUPLES num script de cálculo, consulte FIX…ENDFIX.

Caso de Utilização para Cálculo de Tuple

Ao selecionar tuples, pode concentra-se nos seus cálculos do Essbase na grelha ativa do Smart View, limitando o respetivo âmbito a setores específicos de dados no seu cubo de armazenamento em blocos.

A seleção de tuples ajuda-o a otimizar os cálculos de grelhas assimétricas entre dimensões, evitando o cálculo em excesso.

Os tuples de cálculo do Essbase diferem dos tuples utilizados nas consultas de MDX. O desempenho do cálculo e o tamanho do cubo são orientados principalmente pelo número de blocos no cubo (dado um tamanho do bloco específico). Por este motivo, os tuples de cálculo só são especificados para combinações de membros dispersos. Além disso, para facilitar a execução de scripts de cálculo, é possível incluir numa especificação de tuple de cálculo vários membros de uma única dimensão dispersa. Por exemplo, se especificar ("New York", "California", "Actual", "Cola") como um tuple de cálculo, irá calcular as seguintes intersecções de células:

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

Considere a grelha simétrica seguinte. É simétrica porque cada produto tem os mesmos mercados e cenário (Actual) representados na grelha.

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

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

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

O âmbito do cálculo por omissão, quando existe mais de uma dimensão numa instrução FIX ou num ponto de vista (POV) da grelha do Smart View, é calcular o produto cruzado (todas as combinações possíveis) dos membros na instrução FIX ou na grelha. Por outras palavras, um cálculo orientado por POV no qual as combinações de produto e mercado são retiradas da grelha 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"

Esta atividade de cálculo poderá ser excessiva para aquilo de que necessita. Se pretender calcular apenas as combinações mostradas na grelha, pode especificar quais os tuples a calcular e limitar o cálculo a um setor mais pequeno. O cálculo de tuples também pode 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 sobre Cálculo Baseado no Tuple

Um tuple de cálculo é uma forma de representar um setor de dados dos membros, de duas ou mais dimensões dispersas, a utilizar num cálculo de armazenamento em blocos do Essbase.

Exemplos de tuples de cálculo válidos:

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

Caso escreva expressões de MDX, deverá estar a par destas restrições de tuple que se aplicam ao MDX:

  • Apenas um único membro de cada dimensão pode ser incluído num tuple de MDX
  • Todos os tuples num conjunto de MDX devem ter as mesmas dimensões representadas, pela mesma ordem

No entanto, quando seleciona tuples em scripts de cálculo, estes requisitos são flexibilizados por conveniência. Pode escrever livremente expressões de tuple e os tuples podem descrever listas de membros, tal como o tuple seguinte: (@Children(East), Cola).

Selecionar Tuples para Cálculo do Ponto de Vista

Uma forma fácil de selecionar tuples é inseri-los explicitamente num script de cálculo, como uma lista dentro de uma instrução FIX.

Recorde-se de que o formato de uma instrução FIX é o seguinte:

FIX (fixMbrs)
COMMANDS ;
ENDFIX

Na instrução FIX abaixo, são especificados dois tuples antes de o bloco do comando começar. Os tuples são colocados entre chavetas { } que delimitam um conjunto, que é uma coleção de tuples.

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

Outra forma de selecionar tuples é contextualmente, com base nos membros que estão presentes num POV da grelha do Smart View no momento da execução do cálculo. Pode fazê-lo fornecendo a função @GRIDTUPLES como um argumento para FIX, no seu script de cálculo.

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

Se executar este script de cálculo a partir do Smart View relativamente à grelha abaixo, só são calculadas as combinações de produtos e mercados apresentadas. Por exemplo, "Diet Cola"->Massachusetts não é calculado, uma vez que não é mostrado explicitamente na grelha. Tenha em atenção que todos os cenários (a terceira dimensão dispersa neste cubo de exemplo) são calculados, embora apenas Actual seja mostrado na grelha. Isto ocorre porque a dimensão Scenario não faz parte da instrução GRIDTUPLES no script de cálculo.

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

A seleção de tuples, quer seja feita através da utilização de listas explícitas de tuples ou da 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 tuples:

FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs)
COMMANDS ;
ENDFIX
  • tupleList - conjunto de tuples separados por vírgulas.
  • dimensionList - pelo menos duas dimensões dispersas cujos membros da grelha do Smart View ativa são utilizados para definir as regiões de cálculo. (Nos scripts de cálculo, só pode utilizar dimensões dispersas para definir tuples.)
  • fixMbrs - um membro ou lista de membros.

Exemplos de Seleção de Tuples para Reduzir o Âmbito do Cálculo

Utilizando uma grelha do Smart View e uma instrução FIX do script de cálculo do Essbase, pode calcular os tuples dos membros selecionados com base no ponto de vista (POV) da grelha. Em alternativa, pode escrever explicitamente as combinações de tuples na sua instrução FIX, retirando a dependência numa grelha específica do Smart View para definir o âmbito do cálculo.

O cálculo dos tuples selecionados ajuda-o a trabalhar de forma eficiente com regiões assimétricas nos scripts de cálculo e nas grelhas do Smart View.

Considere os exemplos que se seguem:

  • Nenhuma Seleção de Tuple - Calcula no modo por omissão, com base no ponto de vista (POV) da grelha do Smart View atual. O cálculo não está limitado a nenhum tuple específico.
  • Seleção de Dimensões Dispersas Designadas - Calcula os tuples de uma ou mais dimensões dispersas designadas num script de cálculo. O cálculo está limitado aos membros das dimensões de tuples que estão presentes na grelha do Smart View.
  • Seleção de Dimensões Dispersas Contextuais - Calcula os tuples das dimensões dispersas selecionadas em runtime. O cálculo está limitado aos membros das dimensões de tuples presentes na grelha do Smart View.

Para experimentar os exemplos, descarregue o modelo de livro CalcTuple_Tuple.xlsx da secção Technical > Calc da pasta Galeria na área Ficheiros da interface web do Essbase. Consulte a folha de cálculo README no livro para obter instruções.

Nenhuma Seleção de Tuple

Ao demonstrar o comportamento do cálculo de armazenamento em blocos do Essbase por omissão que ocorre quando não seleciona tuples, o script de cálculo seguinte calcula todo o produto cruzado dos membros da dimensão Product e Market a partir de uma grelha do Smart View.

Com a ajuda de duas variáveis de substituição em runtime (RTSV) definidas no bloco SET RUNTIMESUBVARS, o cálculo é limitado aos pontos de vista de Product e Market que estiverem presentes na grelha quando o cálculo for executado a partir do 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 Designadas

Utilizando a função @GRIDTUPLES para selecionar o tuple das dimensões Product e Market, este script de cálculo de armazenamento em blocos do Essbase calcula os tuples apenas para essas duas dimensões, limitando o respetivo âmbito aos membros presentes numa grelha do Smart View no momento em que o cálculo é executado a partir do Smart View.

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

Ao focar apenas as dimensões dispersas designadas no tuple, o cálculo abrange um número de blocos muito mais pequeno do que um cálculo por omissão. No entanto, todos os membros das dimensões não mencionados no foco (Year, Scenario) são calculados por este script de cálculo.

Seleção de Dimensões Dispersas Contextuais

Utilizando a função @GRIDTUPLES e uma variável de substituição em runtime, este script de cálculo de armazenamento em blocos do Essbase calcula apenas os tuples selecionados da grelha, com base nas seleções de dimensões dispersas no prompt RTSV.

A variável de substituição em runtime &DimSelections, que está definida no bloco SET RUNTIMESUBVARS, limita o âmbito do cálculo apenas às dimensões dispersas do cubo, excluindo o Cenário. A função @GRIDTUPLES utilizada na instrução FIX chama esta variável, limitando o número de intersecçõ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 abrange um número de blocos ainda mais pequeno do que o exemplo anterior porque, neste caso, a definição de tuple alarga-se a mais dimensões dispersas para além de Product->Market.

Para experimentar os exemplos, descarregue o modelo de livro CalcTuple_Tuple.xlsx da secção Technical > Calc da pasta Galeria na área Ficheiros da interface web do Essbase. Consulte a folha de cálculo README no livro para obter instruções.