Modelo de objeto do SAP GUI Scripting é um conceito fundamental para automatizar, personalizar e integrar processos SAP.
Compreendendo o modelo de objeto, você pode criar scripts robustos e eficientes que agilizam seu fluxo de trabalho.
O SAP GUI Scripting é criado em torno de uma linguagem orientada a objetos, isso quer dizer que antes de executar qualquer ação, você precisa especificar o objeto com o qual está trabalhando.
Este modelo de objeto permite que você interaja e manipule vários elementos dentro do SAP GUI. Cada objeto no modelo de objeto tem suas próprias propriedades e métodos, que você pode usar para ler valores e interagir com eles.
Hierarquia do modelo de objeto do SAP GUI
A hierarquia do modelo de objeto do SAP GUI é organizada de forma a refletir a estrutura das interações do usuário com o sistema SAP.
Ela segue uma cadeia de objetos que começam com o SAP GUI e descem até as sessões e elementos de interface.
SapGuiAuto (SAP GUI Automation Object)
- Este é o ponto de entrada para qualquer automação do SAP GUI.
- Função: controla a automação da interface gráfica do SAP e é o objeto raiz do modelo de automação.
Set SapGuiAuto = GetObject("SAPGUI")
Esta linha cria uma nova instância do mecanismo SAP GUI Scripting usando a função
GetObject, que retorna uma referência a um objeto Automation. SAPGUI é o identificador para o mecanismo SAP GUI Scripting.
Application (SAP GUI Application Object)
- Representa a instância do SAP GUI em execução.
- Função: permite acesso às conexões que estão abertas no SAP GUI.
Set application = SapGuiAuto.GetScriptingEngine
Esta linha define o objeto do aplicativo para o objeto do mecanismo de script retornado pelo método GetScriptingEngine do objeto SapGuiAuto.
Connection (SAP GUI Connection Object)
- Representa a conexão aberta entre o cliente SAP GUI e o servidor SAP.
- Função: cada instância de SAP GUI pode ter múltiplas conexões. As conexões permitem ao usuário se comunicar com diferentes sistemas SAP.
Set connection = application.Children(0) 'Refere-se à primeira conexão.
Esta linha define o objeto de conexão para o primeiro objeto filho do objeto do aplicativo, que representa uma conexão aberta com o sistema SAP.
Session (SAP GUI Session Object)
- Cada conexão pode conter múltiplas sessões, que são basicamente janelas SAP abertas.
- Função: uma sessão representa uma interação única com o sistema SAP (como uma janela onde você pode realizar transações).
Set session = connection.Children(0) 'Refere-se à primeira sessão da conexão.
Esta linha define o objeto de sessão para o primeiro objeto filho do objeto de conexão, que representa uma sessão aberta no sistema SAP ou GuiSession.
GuiSessions são os objetos com os quais interagimos quando usamos SAP GUI.
Window (SAP GUI Window Object)
- Representa uma janela de diálogo, como a principal janela de transações ou pop-ups dentro do SAP.
- Função: permite manipular a janela, como maximizar, minimizar ou mover a janela.
Set window = session.ActiveWindow
SAP GUI Screen (SAP GUI Screen Object)
- Representa a tela ativa no momento dentro de uma janela SAP.
- Função: controla os elementos da interface, como campos de entrada de dados, botões, tabelas, etc.
Set screen = session.findById("wnd[0]/usr") 'Acessa a área de trabalho da janela atual.
SAP GUI Elementos de Interface (SAP GUI Components)
- Esses são os componentes individuais de uma tela SAP, como campos de texto, caixas de seleção, botões, etc.
- Função: são os elementos com os quais o usuário interage, e você pode automatizar a entrada de dados, cliques de botões e muito mais.
- Use o
findById
com o identificador único do elemento.
session.findById("wnd[0]").sendVKey 0
Esta linha envia a tecla Enter na primeira GuiMainWindow (wnd[0]). O método sendVKey é usado para simular um evento de teclado e, neste caso, ele envia a tecla Enter (representada pelo valor 0).
Essa hierarquia permite navegar pela interface SAP GUI e automatizar diversas operações. Cada nível da hierarquia representa uma parte diferente da interação com o sistema SAP.
Ao usar o gravador de scripts do SAP GUI, as linhas de conexão são criadas automaticamente.
Veja a explicação detalhada de cada uma das linhas de código geradas pelo gravador de scripts do SAP:
Verificar e Obter o Objeto SAP GUI
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(application) Then
: Verifica se o objetoapplication
já foi criado. Isso é útil para garantir que o script não tente criar novamente o objeto se ele já existir.Set SapGuiAuto = GetObject("SAPGUI")
: obtém a instância da aplicação SAP GUI que está rodando no computador. OGetObject("SAPGUI")
acessa o objeto SAP GUI Automation.Set application = SapGuiAuto.GetScriptingEngine
: obtém a “engine de scripting” do SAP GUI, que permite a automação das interações com a interface do SAP.
Obter a Conexão com o Sistema SAP
If Not IsObject(session) Then
Set session = connection.Children(0)
End If
If Not IsObject(connection) Then
: verifica se o objetoconnection
já foi criado.Set connection = application.Children(0)
: obtém a primeira conexão ativa com o SAP a partir da lista de conexões disponíveis na instância do SAP GUI. OChildren(0)
refere-se à primeira conexão disponível (índice zero).
Obter a Sessão SAP
If Not IsObject(session) Then
Set session = connection.Children(0)
End If
If Not IsObject(session) Then
: verifica se o objetosession
já foi criado.Set session = connection.Children(0)
: obtém a primeira sessão ativa dentro da conexão SAP. As conexões SAP podem ter múltiplas sessões, eChildren(0)
aqui seleciona a primeira sessão disponível.
Conectar o Script com Eventos do SAP (Opcional)
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject application, "on"
End If
If IsObject(WScript) Then
: verifica se oWScript
está sendo utilizado, o que indica que o script está rodando como um Windows Script.WScript.ConnectObject session, "on"
: conecta eventos do SAP ao objetosession
, permitindo que o script reaja a eventos disparados pela sessão SAP.WScript.ConnectObject application, "on"
: faz a mesma coisa para o objetoapplication
, conectando-o a eventos que podem ocorrer na aplicação SAP GUI.
Resumo
- Obtenção de objetos: as primeiras três partes do código estabelecem a conexão com a interface SAP GUI, a conexão ativa e a sessão dentro da conexão.
- Eventos de automação: a última parte (
WScript.ConnectObject
) é usada apenas se o script estiver rodando em um ambiente que suporte eventos do Windows Scripting Host, permitindo que o script monitore e responda a eventos. - Objetos do SAP GUI possuem métodos e propriedades. Veja os exemplos aqui.
Este conteúdo foi sobre o modelo de objeto do SAP. Para saber como configurar o SAP e o Excel para automatizar os processos, clique aqui.
Modelo de objeto do SAP – participe
O que achou do Modelo de objeto do SAP? Deixe sua opinião nos comentários.
Se este conteúdo foi relevante para você, convide seus amigos para que eles também fiquem sabendo deste material.
Precisa desta automação na sua empresa? Entre em contato e vamos conversar.
Um abraço e até a próxima.