Sap Script & VBA – Conexão utilizando SAP GUI Scripting API
Eu já disponibilizei em postagens anteriores arquivo com rotina para conexão com o SAP utilizando o Excel VBA (Arquivo de Conexão), também já detalhei como gravar o arquivo .vbs no próprio SAP (Introdução Parte I e Introdução Parte II).
Agora nessa postagem vou dar um exemplo de conexão utilizando uma API fornecida pela própria SAP nas instalações do SAP GUI a Sap Gui Scripting API (sapfewse.ocx).
A grande vantagem em utilizar essa funcionalidade é ter acesso a todas as propriedades e métodos de cada objeto declarado assim como utilizar o intellisense da OCX que é aquela funcionalidade de auto preenchimento após inserir o ponto e ter acessos aos métodos e propriedades.
Clicando aqui você pode baixar a documentação em PDF dessa API, que você também pode encontrar no Help da sua instalação SAP GUI (dependendo da versão da sua instalação isso pode variar).
Para utilizar essa API é necessário flegar a opção de referencia dentro do VBA e para isso você deve entrar no editor do VBA, clicar em Ferramentas > Referências… procure por SAP GUI Scripting API conforme a imagem abaixo. Essa API geralmente é carregada durante a instalação o SAP GUI, caso você não à encontre automaticamente você tem a opção de procurar pela OCX sapfewse.ocx clicando em procurar nessa mesma tela “Referencias – VBAProject”, se ainda assim não encontrar reveja sua instalação SAP GUI.

Agora vamos criar um modulo no VBAProject conforme imagem abaixo, esse modulo ira conter os códigos de conexão e execução da rotina.

Após a inclusão do modulo, de um duplo clique no modulo para incluir os códigos.

Incluir o código abaixo no módulo criado.
Option Explicit
'Declaração de variaveis
Public objGui As GuiApplication
Public objConn As GuiConnection
Public objSess As GuiSession
'Função de conexão
Function Get_Session() As Boolean
'Carregando variaveis de objeto
Set objGui = GetObject("SAPGUI").GetScriptingEngine
Set objConn = objGui.Children(0)
Set objSess = objConn.Children(0)
'Testando se a conexão foi bem sucedida
If objSess Is Nothing Then
Get_Session = False
Exit Function
End If
'Retorno verdadeiro para função
Get_Session = True
End Function
Public Sub FS10N()
Dim fCheck As Boolean
'Executando a rotina de conexão
fCheck = Get_Session()
If fCheck = True Then
'Inicianco codigo
objSess.FindById("wnd[0]").Maximize
objSess.FindById("wnd[0]/tbar[0]/okcd").Text = "FS10N"
objSess.FindById("wnd[0]").sendVKey 0
objSess.FindById("wnd[0]/usr/ctxtRACCT-LOW").Text = Cells(13, 3).Value
objSess.FindById("wnd[0]/usr/ctxtRBUKRS-LOW").Text = Cells(14, 3).Value
objSess.FindById("wnd[0]/usr/txtRYEAR").Text = Cells(15, 3).Value
objSess.FindById("wnd[0]/tbar[1]/btn[8]").press
End If
'Descarregando variaveis
Set objGui = Nothing
Set objConn = Nothing
Set objSess = Nothing
End Sub
Para esse exemplo vou utilizar a transação FS10N, que ira apenas acessar a transação e passar parâmetros, algo bem simples. Veja imagem abaixo de como irá ficar essa a planilha, crie também uma chamada ao código no botão Executar.

Finalizando você pode executar o código e verificar sua funcionalidade. É importante que o SAP esteja logado para que o código funcione, este é um exemplo bem resumido o qual não fez nenhuma leitura das informações de log, como nome do sistema, usuários, janelas. Não foi feito nenhum check de consistência etc… Algo bem simples pra mostrar a funcionalidade da API.
Clique aqui para baixar o exemplo em Excel utilizado nessa postagem

Want to know how to play scatter using your GCash? It’s all about knowing the tricks! Learn more at how to play scatter in gcash and level up your game!
Want the VIP treatment? Borneo303’s SV388 online VIP is where it’s at. Higher stakes, better odds, and exclusive perks. Worth the upgrade! Check it out here: sv388 online borneo303 vip
Anyone know the easiest way to get the Taya777 app? Downloaded it previously and it was too good to be true ! I hope there’s a fast way you all know taya777 app download.