Skip to Content
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?

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

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 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.