Referências de Geração em Construções de Dimensão
Os membros da dimensão do Essbase que ocupam uma ramificação comum estão na mesma geração. Geração 1 é o nome da dimensão e cada nível inferior incrementa o número de geração. Ao criar dimensões de uma origem de cima para baixo, use o método de criação Geração. Se os dados de origem contiverem nulos, use o método de criação Geração de processos nulos.
As origens de dados de cima para baixo são organizadas da esquerda para a direita do nível mais alto para o mais baixo. Cada registro começa com as informações mais gerais e avança para as informações mais específicas. O nome do novo membro está no final do registro. Ao usar uma origem de dados de cima para baixo, use o método de criação de referências de geração. No arquivo de regras, especifique o número de geração e o tipo de campo de cada campo da origem de dados.
O Essbase numera membros dentro de uma dimensão de acordo com a posição hierárquica do membro dentro da dimensão. Os números são chamados de referências de geração. Uma dimensão é sempre a geração 1. Todos os membros na mesma ramificação em uma dimensão são chamados de geração. As gerações são numeradas de cima para baixo de acordo com a sua posição em relação à dimensão; isto é, em relação à dimensão 1.
Por exemplo, conforme ilustrado abaixo, a dimensão Produto é a geração 1. O produto tem um membro 100, que é a geração 2. 100 tem membros, como o 100-10, que são a geração 3. Para usar o método de criação de referências de geração, especifique o número de referência de geração no arquivo de regras.
Figura 14-1 Gerações

Suponha que você tenha um cubo com uma dimensão Produto. Dimensões são geração 1, portanto Produto é geração 1. Suponha que você queira usar o seguinte arquivo de dados de cima para baixo, delimitado por tabulações, para criar a dimensão Produto:
500 500-10 500-10-10
500 500-10 500-10-20
500 500-20 500-20-12
500 500-20 500-20-15
500 500-20 500-20-20
Normalmente, você executaria um build de dimensão usando o método de build Generation quando os membros de nível inferior fossem sequenciados da direita para a esquerda, conforme mostrado acima.
Você pode usar a regra a seguir para criar as dimensões usando referências de geração. A regra especifica o número de geração de cada campo na origem dos dados. Você também deve selecionar o método de criação Geração nas propriedades da dimensão da regra, a menos que seus dados de origem contenham nulos (para esse caso de uso, consulte Lidando com Campos Vazios, abaixo).

O Essbase cria a seguinte hierarquia a partir da origem de dados e regra:
Figura 14-2 Referências de Geração

Lidando com campos vazios
Ao criar dimensões a partir de referências de geração ou nível nos dados de origem, você pode optar por processar valores nulos. O processamento nulo especifica quais ações o Essbase deve executar ao encontrar campos vazios na origem dos dados.
Observação:
Opções de processamento nulas estão disponíveis apenas para regras de criação de dimensão regulares (não baseadas em índice).Se o processamento nulo não estiver ativado, o Essbase rejeitará todos os registros com valores nulos e gravará um erro no log de erros.
Para ativar o processamento nulo, selecione um dos métodos de criação de processamento nulo nas propriedades da dimensão quando você criar a nova regra de criação de dimensão: Geração de processo nula ou Nível de processo nulo.

Se você usar o método de criação Geração de processo nula, ele dirá ao Essbase para esperar alguns valores nulos ao processar referências de geração nos dados de origem, o que ajuda a evitar erros.
Exemplo
Para este exemplo de criação de dimensão, suponha que você queira adicionar uma hierarquia ragged/assimétrica como a seguinte em uma nova dimensão de Canal no Sample Basic.

A origem de dados é de cima para baixo, o que significa que os níveis mais altos (perto do membro da dimensão superior) aparecem primeiro em cada registro. Portanto, faz sentido usar um método de criação de referências de geração. No entanto, serão necessárias instruções de tratamento nulas. Os três primeiros registros de dados de origem contêm campos nulos, pois não há dados de local para os canais indiretos.
"All Channels",Indirect,,Channel-04
"All Channels",Indirect,,Channel-07
"All Channels",Indirect,,Channel-24
"All Channels",Direct,Outlet,Channel-21
"All Channels",Direct,Mall,Channel-29
"All Channels",Direct,Kiosk,Channel-31Você pode criar uma regra para criar as dimensões e evitar erros relacionados a nulos, usando o método de criação Geração de processo nula.
Para criar uma regra para este exemplo,
-
Importe/crie o cubo Básico de Amostra, usando a pasta de trabalho do aplicativo disponível na galeria no catálogo de arquivos do Essbase Server.
-
Crie um arquivo de dados delimitado por vírgulas como o seguinte, nomeie-o como
genchannel.txte faça upload dele para o diretório de cubo Sample Basic."All Channels",Indirect,,Channel-04 "All Channels",Indirect,,Channel-07 "All Channels",Indirect,,Channel-24 "All Channels",Direct,Outlet,Channel-21 "All Channels",Direct,Mall,Channel-29 "All Channels",Direct,Kiosk,Channel-31 -
Na página Aplicativos, abra o aplicativo e depois abra o banco de dados (cubo).
-
Selecione a guia Scripts e clique em Regras.

-
Clique em Criar e escolha Criação de Dimensão (Regular).

-
Na caixa de diálogo Nova Regra,
-
Informe um nome de regra; por exemplo, canal de referência.
-
Para Tipo de Origem, selecione Arquivo, clique em Catálogo e navegue até
genchannel.txt.Quando você clica em Catálogo, espera-se que o arquivo esteja localizado no diretório de cubo no Essbase Server por padrão, portanto, você já deve tê-lo carregado usando a seção Arquivos da interface Web do Essbase. Se o arquivo estiver na sua máquina cliente, clique em File Browser para localizar o arquivo.
-
Deixe os campos Número de Registro do Cabeçalho e Número de Registro de Criação de Dimensão como 0. Registros de cabeçalho não são úteis para builds de dimensão.
-
Clique em Continuar.
-
A regra de criação de dimensão é aberta com campos indefinidos e dados de visualização (do arquivo de texto) preenchendo a grade abaixo dos campos.

-
-
Como esta é uma nova regra, ainda não há dimensões associadas.
- Clique em Dimensões.

- Digite o novo nome da dimensão Canal e clique em Adicionar.
- Clique em Dimensões.
-
Agora você precisa definir o método de criação e verificar outras instruções operacionais de criação de dimensão. Clique no link Canal para editar as propriedades da dimensão.
-
Altere Método de Criação para Geração de processo nula.

Clique em OK.
-
Clique no seletor de Dimensão no Campo 1 e selecione Canal.

-
Altere o seletor Tipo do Campo 1 para Geração.
-
Incremente a Geração para 2, pois o membro da hierarquia Todos os Canais está no nível 2. O membro da geração 1 é sempre o nome da dimensão; neste caso, Channel.
-
Em Campos 2 - 4, Canal agora deve ser selecionado como a dimensão. Altere os seletores de Tipo para Geração e marque os números de geração como 3 para o Campo 2, 4 para o Campo 3 e 5 para o Campo 4.

-
Verifique a regra, em seguida, salve e feche. Se houver erros, consulte Requisitos para Arquivos de Regra de Criação de Dimensão Válidos.
-
Execute o job de criação de dimensão.
-
Exiba a estrutura de tópicos para confirmar se a dimensão Canal e a hierarquia esperada de membros foram adicionadas.
Fluxo de Processamento Nulo para Builds de Dimensão Baseados em Geração
Se o processamento nulo estiver ativado, o Essbase processará a geração de nulos das seguintes maneiras:
-
Campo de geração nula: Se o valor nulo ocorrer quando o Essbase esperar um campo Geração, o Essbase promoverá o campo de próxima Geração para substituir o campo ausente.
Exemplo
A criação da dimensão promove o ID do canal para Geração 4 em vez da Geração 5, porque a Geração 4 contém um valor nulo.

-
Campo nulo antes do campo secundário: Se ocorrer um nulo diretamente antes de um campo secundário, o Essbase ignorará o campo secundário. (Os tipos de campo secundário são alias, propriedade, fórmula, geração duplicada, alias de geração duplicada, nome da moeda, categoria da moeda, atributo pai, UDA e nome de uma dimensão de atributo.)
Exemplo
A criação da dimensão ignora o alias no campo 4, porque a Geração 4 contém um valor nulo e promove o ID do canal para a Geração 4 em vez da Geração 5.

-
Campo secundário nulo: Se o nulo ocorrer quando o Essbase espera um campo secundário, o Essbase ignora o campo nulo secundário e continua carregando (esse é o mesmo comportamento do método de criação Geração).
Exemplo
A criação da dimensão ignora o alias no Campo 4, porque esse campo contém um valor nulo. O membro Outlet é adicionado ao outline sem nenhum alias.
