Skip to Content
Technical Articles
Author's profile photo Ciro Peroso Alves Junior

Automação do SAPGUI com python

Automacao SAPGui

Automação do SAP Gui utilizando o Python.

Vamos criar um robo que automaticamente acessa o SAP Gui “SAP logon” e executa uma transação e faz qualquer operação que desejarmos.

Faça automatização e vá para outro nível profissional, pare de fazer trabalhos repetitivos.

Seja você quem faz a diferença na tua empresa.

Esse exemplo de automação pode e deve ser aplicado em vários outros trabalhos manuais e repetitivos.

Vamos estudar jundo o código que foi criado.

Acesse o arquivo automacaoGUI.py para ter acesso ao código fonte

O que vamos precisar?

  1. Python.
  2. Ambiente virtual – Virtualenv “opcional”
  3. Pacotes do python “time, os e selenium”
  4. Driver para windows.

Detalhando os itens acima.

  1. Python.
    • Vem instalado em todos sistemas operacionais, exceto o windows.
    • Para instalar no windows, clique aqui e veja como
  2. Ambiente virtual.
    • Instalar, clique e veja como
    • Para criar a máquina virtual “virtualenv nome_da_virtualenv”
    • Para acessar “source nome_da_virtualenv/bin/activate”
  3. Pacotes do Python.
    • pip install selenium
    • Os outros vem com a instalação padrão do python, não precisa adicionar.
  4. Driver para windows.

Todo ambiente pronto agora é mão no código.

Calma que vamos analisar linha por linha calmamente.

Veja o vídeo abaixo com os detalhes para fazer a automação.

 

# coding: utf-8
import time
import subprocess
import login
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

winium = subprocess.Popen("C:\\Users\\ciro.junior\\Documents\\Winium.Desktop.Driver.exe")

#Abrindo o SAP Gui
driver = webdriver.Remote(
    command_executor='http://localhost:9999',
    desired_capabilities={
        'app': r'C:\Program Files (x86)\SAP\FrontEnd\SapGui\saplogon.exe'
    })

#Clicando no ambiente que deseja acessar no SAP Gui.
time.sleep(5)
elemento = driver.find_element_by_name("QAS").click()
actionchains = ActionChains(driver)
actionchains.double_click(elemento).perform()

#Passando usuário e senha para logar.
usuario = login.usuario()
senha = login.senha()

time.sleep(3)
elemento = driver.find_element_by_id("1004").click()
elemento = driver.find_element_by_id("1004")
elemento.send_keys(usuario)

elemento = driver.find_element_by_id("1005").click()
elemento = driver.find_element_by_id("1005")
elemento.send_keys(senha)

elemento = driver.find_element_by_name("Logon").click()

time.sleep(10)


elemento = driver.find_element_by_id("1001").click()
elemento = driver.find_element_by_id("1001")
elemento.send_keys('ME2N')
elemento.submit()

time.sleep(2)

elemento = driver.find_element_by_id("4004").click() #chamar variante
time.sleep(42)

#Fechando o SAP Gui e winium
driver.close()
winium.terminate()

 

Para achar os ID no programas windows vamos utilizar o software Accessibility Insights.

Você também pode ver a automação do SAP Analytics Cloud

Vamos automatizar tudo e fazer só o trabalho que realmente importa.

Assigned Tags

      4 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Stefani Ramalho
      Stefani Ramalho

      Muito obrigado pelo excelente artigo.

      Author's profile photo Basis Team
      Basis Team

      Boa tarde, gostaria de realizar esse mesmo processo no Linux Ubuntu, teria algum artigo ou projeto ou indicação de leitura que me ajude?

      Author's profile photo Former Member
      Former Member

      Achei interessante, mas fiquei curioso em saber qual a vantagem em se utilizar o Selenium, em  comparação ao SAP GUI Scripting...

      Author's profile photo Joao Freitas
      Joao Freitas

      Muito obrigado por compartilhar o conhecimento.  Tentei fazer, como exercício python, mas não consegui sucesso porque apresentou o erro a abaixo, tentei varias coisas e não conseguir resolver:


      from win32com.client import Dispatch
      ModuleNotFoundError: No module named 'win32com'

      Process finished with exit code 1


      Estou usando o pycharm e paython :

      Python 3.11.0 (main, Oct 24 2022, 18:26:48) [MSC v.1933 64 bit (AMD64)] on win32
      Type "help", "copyright", "credits" or "license" for more information.

      pip list:

      pywin32 305

      webdriver-manager 3.8.5

      Gostaria de saber se ainda é possivel implementar este conteúdo da forma que esta ou se devemos atualizar alguma parte.

      Att

      João