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


Esta imagem ilustra números de referência de geração, conforme descrito no texto que precede a imagem.

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).

Arquivo de regras para criação de geração. Campo 1: Produto, Geração 2 nomeado Categoria. Campo 2: Produto, SKU do Produto nomeado da Geração 3. Campo 3: Produto, Promoções nomeadas da Geração 4

O Essbase cria a seguinte hierarquia a partir da origem de dados e regra:

Figura 14-2 Referências de Geração


Esta imagem mostra os novos membros que são criados durante o build 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.


Métodos de criação de processamento nulo nas propriedades de dimensão para uma nova regra

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 dimensão do canal é a geração 1. Uma hierarquia de "Todos os Canais" é a geração 2. A Geração 3 inclui membros "Indiretos" e "Diretos". Indireto tem IDs de canal como filhos na geração 4. Direct tem membros de localização "Outlet", "Mall" e "Kiosk" na geração 4, seguido por IDs de canal na geração 5. Os IDs de canal indireto estão na geração 4, enquanto os IDs de canal direto estão na geração 5, tornando esta uma hierarquia desbalanceada/arrastada.

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-31

Você 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,

  1. 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.

  2. Crie um arquivo de dados delimitado por vírgulas como o seguinte, nomeie-o como genchannel.txt e 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
    
  3. Na página Aplicativos, abra o aplicativo e depois abra o banco de dados (cubo).

  4. Selecione a guia Scripts e clique em Regras.


    A guia Scripts está selecionada e o bloco Regras está destacado, na interface web do Essbase.

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


    Na caixa de diálogo scripts do banco de dados, o botão criar é pressionado e a opção Criação de Dimensão (Regular) é selecionada

  6. Na caixa de diálogo Nova Regra,

    1. Informe um nome de regra; por exemplo, canal de referência.

    2. 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.

    3. 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.

    4. Clique em Continuar.

    5. 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.
      Imagem do editor de regras de criação de dimensão para o novo "genchannel" de regra, com campos indefinidos de 1 a 4 como colunas de metadados aguardando para serem preenchidas. Em cada campo estão os valores de dados importados do arquivo de dados de origem.

  7. Como esta é uma nova regra, ainda não há dimensões associadas.

    1. Clique em Dimensões.
      Botão Dimensões no editor de regras

    2. Digite o novo nome da dimensão Canal e clique em Adicionar.
  8. 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.

  9. Altere Método de Criação para Geração de processo nula.


    Imagem da janela Editar Dimensões no editor de regras de criação de dimensão, com a geração de Processo nula selecionada.

    Clique em OK.

  10. Clique no seletor de Dimensão no Campo 1 e selecione Canal.


    Imagem do campo 1 no editor de regras de criação de dimensão com a dimensão Canal selecionada.

  11. Altere o seletor Tipo do Campo 1 para Geração.

  12. 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.

  13. 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.


    Esta imagem mostra uma regra que cria uma dimensão Canal com uma hierarquia ragged usando o método de criação de nulos de geração de Processo. O campo 1 é definido como Canal, Geração, 2 e contém Todos os Canais. O Campo 2 é definido como Canal, Geração, 3 e contém Indireto para três registros e Direto para três registros. O Campo 3 é definido como Canal, Geração, 4 e contém três campos nulos e três campos de local (Outlet, Mall e Kiosk). O campo 4 é definido como Canal, Geração, 5 e contém IDs canal.

  14. 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.

  15. Execute o job de criação de dimensão.

  16. 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.


    O Campo 1 é Canal, Geração 2 contendo Todos os Canais. O Campo 2 é Canal, Geração 3 contendo Indireto. O Campo 3 é Canal, Geração 4 contendo um nulo. O Campo 4 é Canal, Geração 5 que contém um ID de canal.

  • 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.


    O Campo 1 é Canal, Geração 2 contendo Todos os Canais. O Campo 2 é Canal, Geração 3 contendo Indireto. O Campo 3 é Canal, Geração 4 contendo um nulo. O Campo 4 é Canal, Alias, contendo Catálogo. O Campo 5 é Canal, Geração 5 que contém um ID de canal.

  • 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.


    O Campo 1 é Canal, Geração 2 contendo Todos os Canais. O Campo 2 é Canal, Geração 3 contendo Direto. O Campo 3 é Canal, Geração 4 contendo Saída. O Campo 4 é Canal, Alias, contendo um valor nulo. O Campo 5 é Canal, Geração 5 que contém um ID de canal.