Estudo de caso: Log SXP
A solução foi exportar os dados que estavam gravados na Tabela SXP ISAM para uma Tabela SXP em uma base SQL, e, para facilitar a consulta (pois mesmo em um Banco SQL os dados da tabela eram muitos), essa Tabela teria que ser criada automaticamente pelo sistema a cada virada de mês. Ou seja, teriamos uma Tabela de Log para cada mês do ano.
Os Logs, após a exportação do SXP ISAM para SXP SQL, deveríam ser gravados automaticamente nesse último.
Esse processo poderia ser habilitado ou desabilitado através de uma chave no .ini do Protheus Server.
Para que isso fosse possível, todos os módulos do sistema deveriam estar configurados de forma trabalhar nesse novo esquema. Usamos então o que é conhecido como “Ponto de Entrada Genérico dos Módulos”. O Ponto de Entrada genérico de um módulo do Protheus tem as seguintes características:
- Faz-se necessário criar uma User Function com o nome do Módulo;
- Sempre será executado durante a rotina de “Abertura” do sistema;
- Sempre será executado assim que a rotina, chamada à partir do Menu Principal do Módulo, voltar para esse Menu.
O programa u_Modulos.prg contém a declaração de todas as User Function relacionadas aos Módulos do Protheus e em conjunto com o programa u_EspSxp.prg irá fazer com que o Protheus passe a gravar os Logs configurados para o SXP em Tabelas mensais criadas na base SQL para essa finalidade.
Recomendo que o teste seja efetuado em um ambiente novo, sem nenhuma User Function, para que não ocorra conflitos entre as User Functions declaradas nos programas disponíveis para Download e as User Function em Produção.
Primeiro Passo:
Incluir a seguinte configuração no .ini do Protheus Server
[SXPTOP]
; (habilita ou desabilita o uso: 1 Enable 0 Disable)
EnableSXPTop=1
; (ip ou nome do servidor Top para acesso as tabelas SXP)
SxpTopServer=localhot
; (porta do servidor Top para acesso as tabelas SXP)
SxpTopPort=7890
;(nome do BataBase onde as Tabelas SXP estao armazenadas: Oracle, Postgres, MsSql, etc.)
SxpTopDatabase=postgres
; (Alias do Banco onde as Tabelas SXP estão armazenadas)
SxpTopAlias=msiga
Segundo Passo: Baixar e Compilar os programas u_Modulos.prg e u_EspSxp.prg
Agora, ao entrar em qualquer módulo do Protheus, quando a chave EnableSXPTop estiver com o conteúdo igual a 1(Habilitada), será verificada a existência da tabela SXPEECAAAAMM, onde:
EE Corresponde ao código da Empresa;
C Constante 0 (zero);
AAAA Corresponde ao Ano de Criação da Tabela; e
MM Corresponde ao Mês da Criação da Tabela.
Se o arquivo SXP ISAM tiver conteúdo esse será, automaticamente, exportado para a Tabela criada anteriormente e todos os novos dados passarão a ser gravados nessa nova tabela. A operação de exportação é feita apenas uma vez por dia (quando o primeiro usuário logar no sistema e se houver informações a serem exportadas.
Se desejar que a primeira exportação seja manual, execute os seguintes passos:
0 Comments