Este repositório é uma coleção de APIs desenvolvidas em Python e VBA projetadas para simplificar e acelerar a criação de automações no SAP GUI. O SAP GUI é uma ferramenta poderosa para interagir com sistemas SAP, mas sua automação muitas vezes requer códigos extensos e complexos, essa API procura resolver esse problema, fornecendo funcionalidades pré-fabricadas que permite que você automatize tarefas SAP de forma eficiente e sem a necessidade de codificação extensiva.
- (Em andamento) Constantes de TCodes comuns do SAP para uso rápido.
- Multi-linguagem: Disponível para Python e para VBA(com algumas limitações).
- Classes Wrapper(Embrulho) da API do Sap Gui para facilitar o code-complete.
- Classes Wrapper documentadas em português dispensando a consulta constante na documentação oficial do SAP.
- (Em andamento) Funções customizadas nas classes Wrapper para auxiliar no dia a dia.
- (Em andamento) Scripts complexos pré-programados, como:
- Armazenamento de credenciais: Faz o armazenamento das credenciais do SAP para o usuário não precisar ficar logando manualmente, ótimo para scripts autônomos.
- Login no SAP: Faz o login no SAP Verificando todas as possibilidades, login e senha errados, caixas pos login(tentativas de logins, multi-login, copyrigth, timeout), caso não tenha sessão aberta.
from PySavvyApi.Modules.SavvySessionsManager import SavvySessionsManager
from PySavvyApi.SapGuiWrapper import *
from PySavvyApi.StdTCodes import *
# Aqui obtemos o gerenciador de sessões, que pode obter sessões disponíveis para uso.
# isso inclui abrir o sap quando não estiver aberto, abrir sessão quando não tiver sessão
# aberta disponível para uso, se deseja considerar sessões no menu principal como sessões
# disponíveis para uso defina o parâmetro main_menu_available como verdadeiro.
sessions_manager = SavvySessionsManager(SapConnNames.ECC, SapConnNames.EWM)
# Aqui obtemos uma sessão disponível para uso com o gerenciador.
session = sessions_manager.get_available_session(SapConnNames.EWM)
if not session.start_transaction('VA03'):
print('Erro: Não foi possivel iniciar a transação VA03 pelo usuário ' + session.info.user)
exit(0)
session.user_area(0).find_by_name_ex('VBAK-VBELN', GuiComponentType.GuiCTextField).text = '7062515975'
session.send_key().enter()
value_liq = session.find_by_id_cast('wnd[0]/usr/subSUBSCREEN_HEADER:SAPMV45A:4021/txtVBAK-NETWR').GuiTextField()
print(f'Valor líquido do pedido é: {float(value_liq.text.replace(",",".")):.2f}')
session.close_session(True)
# ...
' TODO
- Multi-login para uma conexão
- Documentações e tutoriais
- Fluxograma do componentes SAP Gui
- Registro de execução e erros
- Funções para lidar com GridView
- Selecão, alteração e criação de layouts
- Possibilidade de exportar GridView que não tem a opção de exportar
- Varredura e busca de valores em GridView
- Carregamento rápido da GridView completa
- Funções de filtros
- Fórmulas para GridView, como soma, média e etc.
- Funções para pop-ups comuns:
- Seleção múltipla.
- Botões comuns: limpar, executar, cancelar e etc.
- Funções extras:
- Verificação de timeout
- Funções de telas padrões do SAP
- Migo
- /SCWM/PACK
- ...
Este projeto não é afiliado, endossado ou mantido pela SAP SE. SAP é uma marca registrada da SAP SE em vários países.