Páginas filhas
  • DEAI1-2475 - Spike - Análise de configurações de App Interno

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âmetroInformação de uso
Código do ProdutoConstante com valor 'RM'
SourceApplicationParâmetro geral - "SOURCEAPPLICATIONRM"
Url do MonitorParâmetro geral - "URLMONITORINTERNO"
Url do serviço SOAPParâmetro geral - "URLWSDLINTERNO"
Nome do AppCriar parâmetro, tratando como default uma constante "RM"
Descrição do AppCriar parâmetro, tratando como default uma constante "TOTVS Linha RM"
Usuário do WebServiceEsta informação não deve ser parametrizada internamente ao RM e sim no aplicativo externo
Senha do WebServiceEsta 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.


  • Sem rótulos