Páginas filhas
  • TOTVS BA - Guia de Customização - Linha Logix

TOTVS BA - Guia de Customização - Linha Logix

Guia de Customização

Produto:

TOTVS BA

País:

All

Criação:

Set/2014

Objetivo

Esse documento tem como objetivo documentar as estratégias para a customização dos extratores do TOTVS BA para a linha Logix.

 

Introdução

Essa seção trata de informações sobre o ambiente de dados e de programas extratores para descrever as premissas e restrições de customização.

 

Premissas:

  • Conhecer programação 4gl;
  • Conhecer o ambiente de dados do ERP Logix e seu dicionário;
  • Conhecer conceitos de BI como Dimensão, Fato, Granularidade, Modelo Dimensional, etc.

 

Restrições:

  • O guia de customização está limitado a descrever a customização para:
    • Utilizar novos atributos em Dimensões existentes;
    • Utilizar novas medidas/dimensões degenerativas em tabelas Fato existentes.

 

Customização 

Para entender como funciona a customização dos programas extratores na linha Logix, será descrito o fluxo de extração e onde se encontram os pontos de entrada para que os programas extratores possam ser estendidos.

Em seguida será indicado o procedimento para customização em cada caso, tanto para Dimensões como para tabelas Fato.

 

Fluxo Principal

O fluxo principal de extração é composto da execução de um programa de controle (KPI10001), que recebe como parâmetro o nome dos programas extratores das tabelas Fato e controla o início/término do processo. Os detalhes desse fluxo podem ser vistos no tópico “Execução de Programas” do Manual de Referência dos extratores da linha Logix.

Neste fluxo, ao executar os programas para extração de tabelas Fato, automaticamente são extraídos os dados das Dimensões relacionadas, logo no início do processamento. A lista das Dimensões relacionadas a cada tabela Fato pode ser consultada por meio do programa KPI10000.

A customização é efetuada por meio de programas que são executados logo após o término de um programa extrator de tabela Fato. Dessa forma, deve ser escrito um programa para cada tabela Fato que estiver sendo customizada, onde serão tratadas também as customizações referentes às Dimensões relacionadas.

 

Campos Livres

Cada tabela que representa uma Dimensão ou uma tabela Fato pode conter até 10 campos livres que servem para customização. Estes campos são identificados com a nomenclatura ???_LIVREn, onde ??? indica o nome da tabela e n indica o número do campo livre.

Dependendo de cada situação de customização, deve ser utilizado o campo livre adequado, já que eles podem ter tipos de dados diferentes. Consulte o dicionário do banco para a tabela que estiver sendo customizada para conhecer cada campo livre.

O comportamento do campo livre em uma Dimensão deve ser de atributo da Dimensão. O comportamento do campo livre em uma tabela Fato deve ser de medida, se o campo livre for numérico e de dimensão degenerativa se for do tipo caractere ou data.

 

Programas “Y”

Um programa “Y” é um programa 4gl que tem o mesmo nome de um programa extrator seguido de uma letra “y”. Por exemplo, para o programa extrator “kpi10002.4gl” o programa “Y” correspondente é o programa “kpi10002y.4gl”, sendo que cada programa extrator está relacionado a uma tabela Fato destino. Por exemplo, este mesmo programa “kpi10002.4gl” é o extrator para a tabela “HL0”.

Cada programa “Y” que for encontrado no “RPO” do ambiente de execução será chamado ao final da execução do programa extrator relacionado e é dessa forma que as customizações ocorrem. O usuário deve providenciar toda a lógica de extração para a tabela relacionada ao programa que está customizando por meio desse programa.

Quando o programa “Y” for executado, todo o conteúdo da tabela relacionada ao extrator já estará pronto e o procedimento desse programa deve ser uma atualização dos campos livres em todos os registros dessa tabela. O programa “Y” não deve adicionar ou excluir registros da tabela para não causar problemas de integridade no momento da carga do banco para o Data Warehouse.

O programa “Y” pode acessar as tabelas de parâmetros de extração para saber os períodos que estão sendo extraídos e os parâmetros gerais. Para a customização, podem ser adicionados novos parâmetros específicos, porém os parâmetros existentes não devem ser excluídos ou modificados, caso contrário os programas extratores podem parar de funcionar.

Como cada programa “Y” está relacionado ao extrator de uma tabela Fato, se houver necessidade de customizar o conteúdo dos campos livres das Dimensões relacionadas, cabe ao desenvolvedor criar funções para esta customização e chama-las dentro de seu programa “Y” correspondente.

 

Parâmetros

A parametrização para os extratores atuais utiliza algumas tabelas do banco de dados para armazenar os valores que o usuário configura. Essas tabelas são descritas a seguir para que o programa customizado possa utilizar esses parâmetros, se necessário.

Tabela HJJ – Parâmetros de Períodos de Extração.

Informa ao extrator de cada Fato, qual o período que deve ser utilizado como filtro/base para a extração dos dados.

Atributo

Nome

Observação

HJJ_CDFATO

Identificador de Tabela Fato

Contém o código da tabela Fato a qual a parametrização de período se refere.

HJJ_INFPER

Informa Período?

T => O usuário precisa informar o período de extração.

F => O usuário não pode informar o período de extração e o extrator utiliza a data da extração como sendo período inicial e final.

HJJ_TIPPER

Tipo de Período

D => Indica que o período de extração é Diário.

M => Indica que o período de extração é Mensal.

HJJ_TIPFXA

Tipo de Faixa de Período

I => Indica que a data inicial e final de extração será informada pelo usuário.

V => Indica que o usuário informa a quantidade de dias ou de meses, conforme HJJ_TIPPER, nos atributos HJJ_PERINI e HJJ_PERFIN e o extrator calcula a data inicial e final de extração a partir dessa informação e da data de extração.

HJJ_PERINI

Período Inicial

Quando o usuário informa o período (HJJ_TIPFXA = I) esse atributo contém a data inicial para a extração no formato YYYYMMDD. Caso contrário esse campo contém o número inicial de dias ou de meses conforme o atributo HJJ_TIPPER.

HJJ_PERFIN

Período Final

Quando o usuário informa o período (HJJ_TIPFXA = I) esse atributo contém a data final para a extração no formato YYYYMMDD. Caso contrário esse campo contém o número inicial de dias ou de meses conforme o atributo HJJ_TIPPER.

   

Exemplos de parametrização:

Tipo de Período

Parâmetros Informados

Período para Extração com data de execução em 31/07/2010

Período Inicial

Período Final

Período Inicial

Período Final

Informado – Diário

01/12/2009

31/03/2010

01/12/2009

31/03/2010

Informado – Mensal

01/2010

03/2010

01/01/2010

31/03/2010

Variável – Diário

-30

0

01/07/2010

31/07/2010

Variável – Diário

-60

30

01/06/2010

31/08/2010

Variável – Mensal

0

0

01/07/2010

31/07/2010

Variável – Mensal

-3

0

01/04/2010

31/07/2010

Variável – Mensal

-1

1

01/06/2010

31/08/2010

Não Informado – Diário

 

 

31/07/2010

31/07/2010

Não Informado - Mensal

 

 

01/07/2010

01/07/2010

Tabela HJK – Parâmetros Gerais de Extração.

Informa aos extratores quais os valores dos parâmetros de extração. Cada extrator pode usar um ou mais parâmetros. A relação de parâmetros é apresentada no manual de referência.

Atributo

Nome

Observação

HJK_CPARAM

Identificado do Parâmetro

Nome único do parâmetro de extração até 10 caracteres. No caso de customizações, utilize um caractere “_” no início do nome para garantir que um parâmetro com mesmo nome não seja utilizado em versões futuras ou atualizações do produto.

HJK_CDFATO

Identificador de Tabela

Contém o código da tabela ao qual o parâmetro se refere. Caso esteja em branco, o parâmetro é utilizado por mais de uma tabela.

HJK_VPARAM

Valor do Parâmetro

Indica o valor do parâmetro. Esse conteúdo pode ser um valor número, caractere, data ou uma lista de parâmetros separada por ponto-e-vírgula. Caso seja uma data estará no formato DD/MM/YYYY

HJK_APARAM

Ajuda do Parâmetro

Esse é o texto de ajuda que é apresentado na tela de parametrização ao usuário para que ele possa entender como configurar o parâmetro.

 

Utilizando atributos de uma Tabela de Dimensão

Para utilizar os atributos livres de uma Dimensão, o usuário deve escrever uma função que será chamada num programa “Y” referente a uma tabela Fato que será customizada. Dentro desta função, deve percorrer todos os registros da tabela relacionada, gravando no campo livre de sua escolha, o atributo relacionado à Dimensão.

Uma Dimensão pode ser composta por um ou mais atributos que representam a chave de negócio e esses campos devem ser utilizados caso o programa “Y” necessite considerar informações relacionadas ao cadastro base em outras tabelas do ERP.

Ao atualizar os atributos livres, deve ser observado o tipo da Dimensão que está sendo utilizada para que não haja problemas de integridade com os registros:

  • Algumas Dimensões podem ter uma estrutura linear onde um ou mais atributos representam a chave de negócio.
  • Algumas Dimensões podem ter uma estrutura hierárquica, onde um ou mais atributos representam a chave de negócio para o item filho e outro conjunto de atributos representa o item pai na estrutura.

Toda Dimensão contém um registro que é chamado “INDEFINIDO”. Esse registro é utilizado para manter a integridade Fato-Dimensão no caso de não haver integridade no sistema ERP. Esse registro normalmente tem a chave de identificada por um código “_” ou 0 (zero). Sugerimos não utilizar atributos livres para esse registro.

 

Utilizando atributos de uma Tabela Fato

Para utilizar os atributos livres de uma tabela Fato, o usuário deve escrever um programa “Y” para a tabela Fato que será customizada, e percorrer todos os registros da tabela relacionada, gravando no campo livre de sua escolha, o atributo desejado de acordo com o tipo de dado do atributo.

Os atributos livres da tabela Fato não podem incluir novas Dimensões comuns, apenas atributos para medidas ou dimensões degenerativas.

No caso da tabela Fato, a granularidade pode não ser a mesma da tabela de movimentos do sistema ERP na qual ela se baseia. Nesse caso, os registros normalmente são agrupados pelo conjunto das dimensões que compõe a tabela Fato. Caso a granularidade seja a mesma da tabela de movimentos, é possível utilizar alguns atributos existentes na tabela Fato, para encontrar os registros de movimentos relacionados no sistema ERP e complementar os atributos livres com as informações necessárias. Quando isso não for possível, devem ser utilizadas as informações das Dimensões para identificar a granularidade que devem ser gravados os atributos livres de forma a manter a informação íntegra.

As tabelas Fato carregam apenas um atributo com o identificador chave para cada Dimensão relacionada que é chamada de chave estrangeira, por isso, caso seja necessário saber os valores dos atributos que representam os códigos do sistema ERP da Dimensão, deve ser feita a busca do registro na Dimensão utilizando esse identificador.

A documentação técnica contém o modelo de entidade e relacionamento (MER) das tabelas Fato e Dimensões para facilitar essa identificação. Para identificar de forma rápida o atributo que corresponde à chave estrangeira quando existe apenas uma ocorrência na tabela Fato, utilize o nome existente a partir do quinto caractere do nome do atributo chave da Dimensão. Por exemplo, o atributo chave da Dimensão “Item” é o atributo “HJ8_ITEM” e a chave estrangeira para a Dimensão na tabela Fato de devolução de vendas (HL6) é o atributo “HL6_ITEM”.

Ao atualizar atributos numéricos não coloque valores “NULL”, pois pode resultar em erro durante a carga para o Data Warehouse ou mesmo inconsistência dos valores apresentados.