Technical Articles
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?
- Python.
- Ambiente virtual – Virtualenv “opcional”
- Pacotes do python “time, os e selenium”
- Driver para windows.
Detalhando os itens acima.
- Python.
- Vem instalado em todos sistemas operacionais, exceto o windows.
- Para instalar no windows, clique aqui e veja como
- 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”
- Pacotes do Python.
- pip install selenium
- Os outros vem com a instalação padrão do python, não precisa adicionar.
- Driver para windows.
- Windows – https://github.com/2gis/Winium.Cruciatus
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.
Muito obrigado pelo excelente artigo.
Boa tarde, gostaria de realizar esse mesmo processo no Linux Ubuntu, teria algum artigo ou projeto ou indicação de leitura que me ajude?
Achei interessante, mas fiquei curioso em saber qual a vantagem em se utilizar o Selenium, em comparação ao SAP GUI Scripting...
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