VBA

Modelo de objeto do SAP GUI Scripting – entenda como funciona

Escrito por Adriano Pataro
em 18/10/2024

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.

Modelo de objeto SAP GUI Scripting
imagem do site Help SAP

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.

Código SAP GUI Scripting

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 objeto application 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. O GetObject("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 objeto connection 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. O Children(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 objeto session 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, e Children(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 o WScript está sendo utilizado, o que indica que o script está rodando como um Windows Script.
  • WScript.ConnectObject session, "on": conecta eventos do SAP ao objeto session, permitindo que o script reaja a eventos disparados pela sessão SAP.
  • WScript.ConnectObject application, "on": faz a mesma coisa para o objeto application, 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.

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.

Compartilhe este conteúdo

Artigos Relacionados

Page [tcb_pagination_current_page] of [tcb_pagination_total_pages]

Adriano Pataro

Meu nome é Adriano Pataro, sou certificado pela Microsoft como Excel Specialist e autor do livro Dominando o Excel 2019. Graduando ciência de dados, trabalho como analista de dados e uso o Excel há mais de 15 anos. Em 2005 resolvi trazer meu conhecimento para a internet e compartilhar com você aqui no meu site e nas redes sociais.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Fique por dentro das novidades

Cadastre seu e-mail e receba os conteúdos em primeira mão.

>

Damos valor à sua privacidade

Nós e os nossos parceiros armazenamos ou acedemos a informações dos dispositivos, tais como cookies, e processamos dados pessoais, tais como identificadores exclusivos e informações padrão enviadas pelos dispositivos, para as finalidades descritas abaixo. Poderá clicar para consentir o processamento por nossa parte e pela parte dos nossos parceiros para tais finalidades. Em alternativa, poderá clicar para recusar o consentimento, ou aceder a informações mais pormenorizadas e alterar as suas preferências antes de dar consentimento. As suas preferências serão aplicadas apenas a este website.

Cookies estritamente necessários

Estes cookies são necessários para que o website funcione e não podem ser desligados nos nossos sistemas. Normalmente, eles só são configurados em resposta a ações levadas a cabo por si e que correspondem a uma solicitação de serviços, tais como definir as suas preferências de privacidade, iniciar sessão ou preencher formulários. Pode configurar o seu navegador para bloquear ou alertá-lo(a) sobre esses cookies, mas algumas partes do website não funcionarão. Estes cookies não armazenam qualquer informação pessoal identificável.

Cookies de desempenho

Estes cookies permitem-nos contar visitas e fontes de tráfego, para que possamos medir e melhorar o desempenho do nosso website. Eles ajudam-nos a saber quais são as páginas mais e menos populares e a ver como os visitantes se movimentam pelo website. Todas as informações recolhidas por estes cookies são agregadas e, por conseguinte, anónimas. Se não permitir estes cookies, não saberemos quando visitou o nosso site.

Cookies de funcionalidade

Estes cookies permitem que o site forneça uma funcionalidade e personalização melhoradas. Podem ser estabelecidos por nós ou por fornecedores externos cujos serviços adicionámos às nossas páginas. Se não permitir estes cookies algumas destas funcionalidades, ou mesmo todas, podem não atuar corretamente.

Cookies de publicidade

Estes cookies podem ser estabelecidos através do nosso site pelos nossos parceiros de publicidade. Podem ser usados por essas empresas para construir um perfil sobre os seus interesses e mostrar-lhe anúncios relevantes em outros websites. Eles não armazenam diretamente informações pessoais, mas são baseados na identificação exclusiva do seu navegador e dispositivo de internet. Se não permitir estes cookies, terá menos publicidade direcionada.

Visite as nossas páginas de Políticas de privacidade e Termos e condições.

O site utiliza cookies para melhorar sua experiência de navegação.
Success message!
Warning message!
Error message!