Propósito
O objetivo desse Spike é analisar a duplicidade do conceito de App Interno (e seus parâmetros), propondo solução para unificação.
Desenvolvimento
Atualmente o RM possui as informações de integração do próprio EAI sendo parametrizadas como um registro na tabela GEAIAPP, com campo APPHOST igual a 1, e na tabela de parâmetros gerais do EAI (GEAICONFIG).
Segue abaixo tabela de configurações e locais de uso:
- Código do produto
- Campo "CODPRODUTO" na tabela GEAIAPP
- Informação utilizada na consulta de Apps pelo Monitor
- Informação utilizada na criação do arquivo de config do Monitor
- Informação utilizada como constante "RM" na engine do EAI.
- URL do WebService Interno
- Campo "URLWSDLEXTERNO" existe no Aplicativo da GEAIAPP mas não é utilizado.
- Campo "URLWSDLINTERNO" da tabela GEAICONFIG
- Campo utilizado somente na consulta da API de aplicativos do Monitor.
- URL do Monitor RM
- Campo "MONITORURL" existe no Aplicativo da GEAIAPP mas não é utilizado.
- Informação utilizada na criação do arquivo de config do Monitor
- Campo "URLMONITORINTERNO" da tabela GEAICONFIG
- Campo utilizado somente na consulta da API de aplicativos do Monitor.
- SourceApplication
- Campo "SOURCEAPPLICATION" na tabela GEAIAPP
- Informação utilizada somente na consulta de Apps pelo Monitor
- Informação utilizada na criação do arquivo de config do Monitor
- Campo "SOURCEAPPLICATIONRM" da tabela GEAICONFIG
- Campo utilizado pela engine do EAI como SourceApplication para composição do AppId.
- Nome do App
- Campo "NOME" na tabela GEAIAPP
- Informação utilizada somente na consulta de Apps pelo Monitor
- Este campo somente existe na tabela de Aplicativos.
- Descrição do App
- Campo "DESCRICAO" na tabela GEAIAPP
- Informação utilizada somente na consulta de Apps pelo Monitor
- Usuário de login no WebService
- Campo "USRWSDLEXTERNO" na tabela GEAIAPP
- Informação utilizada na criação do arquivo de config do Monitor
- Senha de login no WebService
- Campo "SOURCEAPPLICATION" na tabela GEAIAPP
- Informação utilizada na criação do arquivo de config do Monitor
Proposta de solução
Considero que deva ser removido o conceito de inclusão de um registro na tabela de Aplicativos para gerenciamento dos parâmetros, migrando todo este comportamento para a rotina de configurações gerais do EAI, uma vez que não é necessário a criação de um registro para informar quem é o próprio sistema e não existe nenhuma ForeignKey para este registro.
Segue abaixo lista com os parâmetros e seu novo comportamento:
Parâmetro | Informação de uso |
---|
Código do Produto | Constante com valor 'RM' |
SourceApplication | Parâmetro geral - "SOURCEAPPLICATIONRM" |
Url do Monitor | Parâmetro geral - "URLMONITORINTERNO" |
Url do serviço SOAP | Parâmetro geral - "URLWSDLINTERNO" |
Nome do App | Criar parâmetro, tratando como default uma constante "RM" |
Descrição do App | Criar parâmetro, tratando como default uma constante "TOTVS Linha RM" |
Usuário do WebService | Esta informação não deve ser parametrizada internamente ao RM e sim no aplicativo externo |
Senha do WebService | Esta informação não deve ser parametrizada internamente ao RM e sim no aplicativo externo |
Ações necessárias
Esta seção apresenta a lista de ações necessárias para que a solução proposta seja implementada, juntamente com outras melhorias identificadas no processo.
- Migração do processo de criação do arquivo de configuração do monitor para a rotina de Configurações Gerais do EAI.
- Geração de script para limpeza da base de clientes que possuam registro de "Aplicativo Interno".
- Ajustes na tela de Aplicativos para remover a funcionalidade de "Aplicativo Interno".
- Criação de classe de parâmetros com cache para as Configurações Gerais do EAI.
- Refatoração dos pontos de uso das informações da tabela GEAIAPP como Aplicativo Interno, passando a usar os parâmetros gerais.
- Verificação dos parâmetros gerais do EAI aplicando o correto uso de cada um deles.
- Ex.: Os parâmetros de uso de log não são passados para o objeto de armazenamento de log, salvando sempre.