Robô - Criando uma macro em vb para acesso ao terminal de um sistema mainframe.
Publicado em: 23/11/2006

Artigo recomendado para Visual Basic 6


Exitem situações junto ao terminal de acesso de um mainframe que inviabiliza a consulta rápida na base de dados de um banco
. Um Robô ou simplismente macro como é chamado o código que efetua consultas de forma rápida e acelerada sem as repetitivas inputs "dados de consulta" intruduzidas pelo usuários para acesso a base de dados.

O que o Robô faz? - Esta macro acelera as consultas pois emprega uma velocidade de digitação que não é comparavel a um digitador normal, onde o código retira da tela informações pertinentes a consulta e armazena em um banco de dados ou planilha para consulta do usuário.

Os mainframes como são chamados os supercomputadores, entre eles os mais conhecidos são de fabricação da IBM, e representam boa parcela da capacidade de processamento dos grandes centros de dados, sobretudo podemos salientar que 60 porcento das informações residentes na web estão em mainframes.

Vamos ao código:

Este código foi desenvolvido e testado para atuar junto ao terminal de dados EXTRA! Personal Client 32 bits, porém o programador pode alterar para outra ferramenta a partir do entendimento do código abaixo.

Inicialmente digite as linhas abaixo em General Declarations:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim Sess0 As Object
Dim Mensagem As String

Em Form Load digite:

Inicio do sistema. Obtém o objeto Session necessário.
Set Sess0 = System.ActiveSession
If (Sess0 Is Nothing) Then
MsgBox "Não foi possível criar o objeto Session. Anulando a reprodução da macro."
Exit sub
End If

If Not Sess0.Visible Then Sess0.Visible = True
Set MyScreen = Sess0.Screen

Intruções de input e output de dados no terminal
Sleep 20
MyScreen.MoveTo 3, 15 Move o cursor para linha 12, coluna 18.
Sess0.Screen.SendKeys ("commando") Insere a palavra commando na linha 12 col 18.
Sess0.Screen.SendKeys ("<Enter>") Confirma o commando com a tecla Enter.
Sleep 30
Mensagem = MyScreen.Area(1, 6, 1, 20)

 

Analizando os códigos acima:

O comando Sleep é conhecido do Basic, ele provoca um parada na linha de dados na ordem de milisegundos, então se quisermos parar um segundo será Sleep 1000. Este comando é usado para ajustar o tempo entre uma tela e outra do terminal, ou entre um comando e outro, aqui vale lembrar que a mecânica deste código depende do que se quer como resultado, assim sendo este processo visa suprir a digitação em escala com o mecanismo automatizado.

O comando MyScreen.Move, posiciona o cursor no exemplo linha 3 coluna 15, onde há o desejo de inserir ou colher alguma informação no terminal.

Já o comando Screen.SendKeys, executa a inserção de caracteres no terminal a título de instrução de comando ou dados para manipular as funções do terminal. Quando for inserir um dado como comando este deve estar entre "", já se for um tecla a ser precionada este deve estar entre "<Nome da Tecla>".

E por fim, porém não menos importante o comando MyScreen.Area(1, 6, 1, 20), que extrai da posição exemplo linha 1 coluna 6 da posição 6 até à 20, a informação desejada.

 

Por hoje é só! breve enviarei mais informações sobre estes e outros assuntos.