Skip to content

Latest commit

 

History

History
94 lines (75 loc) · 4.82 KB

README.md

File metadata and controls

94 lines (75 loc) · 4.82 KB

SAPFlowSavvy - Toolkit de automatização para SAP Gui

GitHub Static Badge GitHub last commit Python VBA

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.

Autor - Nathan Almeida (Neitan96):

GitHub LinkedIn Instagram

Principais características

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

Exemplos

Python:

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

VBA:

' TODO

Melhorias futuras

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

Links úteis SAP

Aviso Legal

Este projeto não é afiliado, endossado ou mantido pela SAP SE. SAP é uma marca registrada da SAP SE em vários países.