Technical Articles
Automação para exportar histórias do SAP Analytics Cloud com Python.
Vamos criar um robô que automaticamente acessa uma análise criada no SAP Analytics Cloud, faz a interação necessária na análise e exporta os arquivos.
Deixa eu exemplificar a situação:
- Você tem uma lista de vendedores com a venda e a meta.
- Você precisa todos os dias acessar a sua análise, filtrar vendedor por vendedor, exportar e enviar para cada um deles a informação de quanto já atingiu da sua meta.
- Se você tem uns 20 vendedores, acredito que em 1 hora mais ou menos você faz esse trabalho.
- Se você tem 200 vendedores, quando termina de gerar os arquivos do dia está na hora de ir embora.
Vamos criar um robô para fazer o trabalho por nós.
Clique no vídeo para ver acontecendo e aprender a fazer.
O que vamos precisar?
- Python.
- Ambiente virtual – Virtualenv “opcional”
- Pacotes do python “time, os e selenium”
- Driver do navegador preferido.
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 do navegador.
Todo ambiente pronto agora é mão no código.
Abaixo o script feito em python, pode ser visto todo conteúdo no meu github também.
'''
Utilizando o Python para automatizar um export de relatório do SAP Analytics Cloud.
É necessário instalar selenium, driver do navegador e é recomendado usar virtualenv
'''
import login
import time
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
usuario = login.usuarios()
senha = login.senha()
url = login.url()
#executando webdriver e abrindo o site
driver = webdriver.Chrome()
driver.get(url)
time.sleep(3)
#Passando usuário
element = driver.find_element_by_id("i0116")
element.send_keys(usuario)
driver.find_element_by_id("idSIButton9").click()
#Passando senha
time.sleep(2)
element = driver.find_element_by_id("i0118")
element.send_keys(senha)
driver.find_element_by_id("idSIButton9").submit()
#confirmando acesso
time.sleep(1)
driver.find_element_by_id("idSIButton9").submit()
#Opções do input control no SAC
lista_inputControl = ['Jose','Joao','Julio']
#desmarcando todos os checkbox
time.sleep(5)
for x in lista_inputControl:
driver.find_element_by_xpath(".//*[contains(text(),'"+x+"')]").click()
#marcando o primeiro checkbox
time.sleep(10)
for x in lista_inputControl:
driver.find_element_by_xpath(".//*[contains(text(),'"+x+"')]").click()
driver.find_element_by_xpath("//div[contains(@class, 'sapEpmToolbarElement sapEpmToolbarItem sapEpmUiPageTipEnabled')]").click()
driver.find_element_by_xpath(".//*[contains(text(),'Export...')]").click()
time.sleep(2)
driver.find_element_by_xpath("//button[contains(@class, 'sapEpmUiDialogButton sapEpmUiDialogOkButton sapMBarChild sapMBtn sapMBtnBase sapMBtnInverted')]").click()
time.sleep(10)
os.rename("/home/ti/Downloads/SAC+Python.pdf", "/home/ti/Downloads/SAC+Python "+x+".pdf")
driver.find_element_by_xpath(".//*[contains(text(),'"+x+"')]").click()
driver.close()
O Python,selenium e SAP Analytics Cloud são recursos fantástico e da para fazer muita coisa legal, coloque a mão na massa você também.
Be the first to leave a comment
You must be Logged on to comment or reply to a post.