1) Introdução
Embora o Elipse E3 já possua diversos eventos que podem ser armazenados automaticamente, também é possível que o integrador/programador gere seus próprios eventos, permitindo assim uma completa rastreabilidade do sistema. Desta forma, este aplicativo tem o objetivo de registrar todo o tipo de intervenção ocorrida entre o operador/sistema e o processo/sistema, adicionando ao projeto ferramentas de armazenamento de dados.
2) Implementação
Por padrão, o E3 permite o registro de diversos eventos, entre eles nomes de usuários, logouts, troca de servidores, etc. Esta configuração é feita diretamente no Domínio, sendo acessada através do E3Server no menu Domínio–Opções, aba Registro de Eventos.
Caso seja necessário armazenar eventos em situações diferentes das disponíveis, é possível utilizar o método TrackEvent() (para maiores informações, consulte o manual de Referência de Scripts), que tem como função armazenar dados na mesma tabela utilizada pelo Registro de Eventos.
A estrutura do método é a seguinte:
TrackEvent(EventMessage, Comment, TimeStamp)
Onde: EventMessage recebe o tipo de evento que será armazenado, Comment é um comentário geral a respeito do evento, e TimeStamp é o horário em que o evento ocorreu.
Um exemplo simples da utilização deste método seria:
Application.TrackEvent "Envio de comando no Motor X", "Usuário Anônimo", "4/6/2007 14:00:00"
3) Aplicação
Anexada a este artigo está uma aplicação exemplo que ilustra como utilizar o método TrackEvent() para inserir os eventos no banco de dados, além de também mostrar os registros já armazenados.
Basicamente, esta aplicação controla um conjunto de motores, onde o usuário tem permissão de ligar/desligar o motor, e também de configurar uma rotação de trabalho para ele. Seu objetivo é armazenar em disco qualquer comando enviado pelo operador, e também registrar quando este comando foi efetivamente realizado.
Inicialmente deve-se habilitar o Registro de Eventos diretamente no E3Server, escolhendo, caso desejado, quais os eventos pré-definidos serão armazenados. Para esta aplicação, foram escolhidos somente os eventos referentes ao login dos usuários.
A seguir, foi adicionado o método TrackEvent() em todos os comandos que o operador pode executar e diretamente na propriedade que está sofrendo alteração. Como a aplicação é baseada em bibliotecas, é suficiente inserir estes comandos diretamente na definição dos objetos XControl e XObject.
O XObject chamado XOMotor possui diversas propriedades, entre elas STATUS e VELOCIDADE, e a cada uma destas foi adicionado um script no evento OnPropertyChanged armazenando a alteração de valor.
O mesmo foi feito no XControl chamado XCMotor, onde o método foi adicionado a cada um dos botões de comandos disponíveis ao operador, e configurado para armazenar a informação de que o usuário logado enviou um comando de alteração de valor.
4) Interação dos objetos da aplicação
A seguir, é demonstrado como os objetos da aplicação interagem entre si. Tomamos como exemplo a alteração de velocidade do Motor XZ11:
Para configurar o novo valor de velocidade até que ela seja efetivamente alterada pelo sistema, siga estes procedimentos:
1) O operador altera o valor configurado para a velocidade e clica o botão Set.
a. Neste momento, é utilizado o método Application.TrackEvent para o banco de dados, informando que o usuário logado no sistema enviou um comando de alteração de velocidade
b. O objeto XOMotor1 é acessado, e o novo valor de velocidade é enviado para a propriedade SetaVelocidade()
2) O objeto XOMotor1, por meio de seus eventos e propriedades, dispara o script para realização efetiva deste comando.
a. Assim que o comando é realizado com sucesso, uma segunda propriedade do objeto Motor1 é atualizada: a propriedade Velocidade, que recebeu o valor atual de campo.
b. Nesta aplicação, foi gerada uma programação no objeto (para fins didáticos) que tem a função de receber a nova programação de velocidade, contar um determinado tempo, e então repassar esta nova velocidade.
c. Quando o objeto receber esta atualização de valor, um novo dado será enviado para o banco de dados, informando que a velocidade do motor em questão foi alterada.
3) Neste momento, o objeto de tela – XCMotor – recebe seu novo valor de velocidade e atualiza a tela.
5) Considerações finais
A uitilização do método TrackEvent() facilita bastante a criação de rastreabilidade no sistema. Este método permite definir uma mensagem e um comentário a ser armazenado no banco somente com uma linha de comando.
Esta facilidade é ainda mais aparente quando a aplicação é baseada em bibliotecas, sendo possível utilizar estes comandos diretamente na definição de cada objeto.
Anexos:
Anexo esta com problema, não deixa baixar o arquivo!
Luiz, para baixar os anexos do KB você pode clicar com o botão direito do mouse e selecionar a opção “Salvar link como”. Outra opção é adicionar o endereço do KB na lista de sites seguros do seu navegador.
Boa tarde, consigo mostrar os eventos em uma tela do Elipse ?