Referências de Nível em Construções de Dimensão
Os níveis são definidos a partir de uma hierarquia de baixo para cima, em que os membros da folha são de nível 0, e cada etapa mais próxima do nome da dimensão aumenta o nível em 1. Ao criar dimensões do Essbase de uma origem de baixo para cima, use o método de criação Nível. Se os dados de origem contiverem nulos, use o método de criação Nulos no nível do processo.
Em uma origem de dados ascendente, cada registro define um único membro de uma dimensão. A definição começa com as informações mais específicas sobre o membro e fornece informações progressivamente mais gerais. Um registro típico especifica o nome do novo membro, o nome de seu pai, o pai de seu pai e assim por diante.
Por exemplo, no esboço ilustrado abaixo, os membros de nível inferior estão no fundo das ramificações da dimensão Produto.
Figura 14-3 Números de Geração e Nível

Para criar o outline usando um job de criação de dimensão, você pode inserir a seguinte origem de dados de baixo para cima:
100-10-12 100-10 100
100-20-12 100-20 100Normalmente, você executaria uma criação de dimensão usando o método de criação Nível quando os membros de nível inferior fossem sequenciados da esquerda para a direita. Os membros de nível 0 (nível de folha) estão no primeiro campo, os membros de nível 1 estão no segundo campo e assim por diante. Esta organização é o oposto de como os dados são apresentados para referências de geração (de cima para baixo).
Suponha que você tenha um cubo com uma dimensão Produto e queira usar o seguinte arquivo de dados de baixo para cima, delimitado por tabulação, para criar mais membros do produto para a dimensão Produto.
600-10-11 600-10 600
600-20-10 600-20 600
600-20-18 600-20 600A fonte de dados é "bottom-up" na medida em que a primeira coluna da fonte de dados contém novos membros de nível de folha (600-10-11, 600-20-10 e 600-20-18). A segunda coluna contém os pais dos novos membros (600-10 e 600-20), e a terceira coluna contém os pais dos pais (600).
A regra de carregamento de compilação de dimensão usa o método de criação de referência de nível para adicionar os membros à dimensão Produto. A regra especifica o número do nível e o tipo de campo para cada campo da origem de dados. Você também deve selecionar o método de criação Nível nas propriedades de 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-4 Níveis

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.

Se você usar o método de criação Nível do processo nulo, ele instruirá o Essbase a esperar alguns valores nulos ao processar referências de nível 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 baixo para cima, o que significa que os níveis mais baixos aparecem primeiro em cada registro. Portanto, faz sentido usar um método de criação de referências de nível. 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.
Channel-04,,Indirect,"All Channels"
Channel-07,,Indirect,"All Channels"
Channel-24,,Indirect,"All Channels"
Channel-21,Outlet,Direct,"All Channels"
Channel-29,Mall,Direct,"All Channels"
Channel-31,Kiosk,Direct,"All Channels"Você pode criar uma regra para criar as dimensões e evitar erros relacionados a nulos, usando o método de criação Nível do processo nulo.
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
levchannel.txte faça upload dele para o diretório de cubo Sample Basic.Channel-04,,Indirect,"All Channels" Channel-07,,Indirect,"All Channels" Channel-24,,Indirect,"All Channels" Channel-21,Outlet,Direct,"All Channels" Channel-29,Mall,Direct,"All Channels" Channel-31,Kiosk,Direct,"All Channels" -
Na Home page, abra o aplicativo e, em seguida, 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 relevância.
-
Para Tipo de Origem, selecione Arquivo, clique em Catálogo e navegue até
levchannel.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 Nível de processo nulo.

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

-
Altere o seletor Tipo do Campo 1 para Nível.
-
Incremente o Nível para 0, pois os IDs de canal estão no nível 0.
-
Em Campos 2 - 4, Canal agora deve ser selecionado como a dimensão. Altere os seletores Tipo para Nível e marque os números de nível como 1 para o Campo 2, 2 para o Campo 3 e 3 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 Nível
Se o processamento nulo estiver ativado, o Essbase processará nulos no nível das seguintes maneiras:
-
Campo de nível nulo: Se um valor nulo ocorrer quando o Essbase esperar um campo de Nível, o Essbase promoverá o próximo campo de Nível para substituir o campo ausente.
Exemplo
A criação da dimensão coloca Indireto no Nível 1 em vez do Nível 2, porque o Campo 2 para o Nível 1 contém um valor nulo.

-
Campo nulo antes de um campo secundário: Se um valor nulo ocorrer diretamente antes de um campo secundário, o Essbase ignorará o campo secundário. (As opções de campo secundário são alias, propriedade, fórmula, nível duplicado, alias de nível duplicado, nome da moeda, categoria da moeda, atributo pai, UDA e um nome de uma dimensão de atributo.)
Exemplo
A criação da dimensão ignorará o alias no Campo 3, porque o Campo 2 contém um valor nulo. O Essbase colocará Indireto no Nível 1 e Todos os Canais no Nível 2.

-
Campo secundário nulo: Se um valor nulo ocorrer quando o Essbase esperar um campo secundário, o Essbase ignorará o campo nulo secundário e continuará carregando (esse é o mesmo comportamento do método de criação Nível).
Exemplo
A criação da dimensão ignorará o primeiro alias no Campo 3, porque esse campo contém um valor nulo. O membro Outlet será adicionado ao outline sem nenhum alias.
