quinta-feira, 1 de setembro de 2016

Gerenciamento de Parâmetros em Múltiplos Ambientes

Sistemas corporativos geralmente são instalados simultaneamente em múltiplos ambientes, sendo que os clientes Log.One o tem instalado nos ambientes de homologação e produção. Os dados do ambiente de produção são periodicamente copiados para o banco de dados de homologação de modo que os testes feitos no ambiente de homologação se aproximem da operação real do sistema.

Como o Log.One tem muitos parâmetros que regem sua operação, e vários desses parâmetros dizem respeito à sua interação com sistemas externos tais como ERPs e LIMS, e com equipamentos tipo balanças, OCR, cancelas e outros, é importante que os parâmetros da homologação sejam distintos daqueles da produção no que diz respeito à comunicação com esses elementos externos. Isso é necessário para evitar problemas graves do tipo:
  • Faz-se um embarque de navio no Log.One da homologação e os dados desse embarque são enviados erroneamente para o ERP da produção, culminando na emissão de uma nota fiscal de exportação, faturamento, etc.
  • Recebe-se um caminhão na homologação e erroneamente abre-se uma cancela do terminal, permitindo a entrada de um caminhão que ainda não tinha permissão no Log.One da produção para entrar no terminal.
Como os parâmetros do Log.One ficam em uma tabela no banco de dados, num primeiro momento criamos procedimentos de alteração desses parâmetros para serem executados quando fosse feita a cópia dos dados da produção para a homologação, mas isso rapidamente se mostrou inviável devido a falhas nos procedimentos operacionais (leia-se 'o procedimento não era executado') e optamos por uma solução sistêmica e definitiva que não dependesse de procedimentos.

Implementamos então a estrutura de classes do Log.One no seguinte formato:

A chave para a questão dos múltiplos ambiente é o campo situacaoExecucao da classe ValorParametro. O enumerado TipoSituacaoExecucao contém as três possibilidades de ambientes.

A tela de configuração de parâmetros é assim:



Dessa forma ao fazer a configuração do sistema o analista registra os valores conforme eles devem ser, de modo distinto para os ambientes e o mecanismo interno de obtenção dos valores obtém o valor correto conforme o ambiente no qual o Log.One esteja sendo executado de forma transparente para o restante do sistema.


Nenhum comentário: