GPO ( Grupo de Profissionais Oracle )
A maior comunidade Oracle do Brasil !

Fazer o Forms abrir um novo Form ao perder conexão !

Saudações Rubro-Negras a todos, ( MENGÃO )

Depois de longas 3 semanas de prova na faculdade, estou vivo !! Agora é só relaxar e planejar o que fazer nos horários vagos que tenho enquanto a faculdade não volta… Aproveitar pra repor as noites de sono perdidas, atenção para namorada, família, cachorro e o BLOG!!!

Enfim, andei dando uma pesquisada e achei algo implementado e muito interessante !

Digamos que você tenha um software responsável pelo controle de créditos telefônicos em um banco separado da sua aplicação principal.

O cliente paga um valor, esse valor é creditado e através de um usuário e senha você consegue usar ligar normalmente até acabar os créditos.

Com isso, no meu sistema principal, preciso ter a informação do quanto de crédito já foi utilizado ou algo parecido, então, a cada ligação, faço o débito da conta do cliente.

Como não tenho uma integração direta entre as aplicações, vou precisar de um Robô que faça a leitura de um lado e jogue no outro, porém, por algum motivo, esse robô perdeu a conexão e ninguém foi avisado, então, teremos que ficar nos preocupando vendo se o robô está sempre ativo, etc…

Vamos lá!

Preciso criar 3 parâmetros para receber os valores de usuário, senha, banco. Depois de criado e alimentado esses parâmetros (se é um robô, usuário e senha ficam fixados nesses parâmetros. caso desejem, podem passar esses valores por linha de comando como vou mostrar mais pra frente).

Preciso então criar uma trigger WHEN-NEW-FORM-INSTANCE e então atribuir esses valores ao seu bloco de login.

http://pastebin.com/f53b294ce

Próximo passo é implementar a trigger ON-LOGON.

http://pastebin.com/f279179ad

No próximo passo vamos implementar a trigger que irá nos ajudar a identificar os tipos de erro, é a ON-ERROR.

Todo erro existente no forms, passa por ela para que seja possível um tratamento… se não tem nada ali, o erro aparece normalmente…

http://pastebin.com/ff9a4c6

Agora que tudo foi criado e tratado, resta apenas a rotina final e mais importante… que é fazer a rotina para quando o timer disparar, fazer a abertura do novo form por linha de comando…

então, na trigger WHEN-TIMER-EXPIRED, vamos ter o seguinte código.

http://pastebin.com/f3500ff12

Pronto, Dessa forma, não preciso me preocupar tanto com a rotina do robô responsável pela integração… se a conexão parar, ele mesmo identifica isso, abre novo form e tudo resolvido! )

Essa solução ajuda para aqueles casos em que sua empresa trabalha em RAC, pois, se uma instância cair, automaticamente ele fecha a que deu erro e abre outra na instância que ficou ativa.

Share

You may also like...

Deixe um comentário

O seu endereço de e-mail não será publicado.