ACESSAR O SAP COM MACRO VBA

VBALLAN 14/01/2014 15:26:39
#433035
Boa tarde,

Estou necessitando criar uma solução que basicamente vai logar, acessar, inserir informações e fazer algumas ações no SAP. Tudo isso por macro VBA.

Antes que digam que não tem como, quem duvidar veja esse video: http://www.vbasystems.com.br/solucoes.aspx?id=3

Bom, em quase 3 dias de pesquisa achei vários códigos em sites americanos a alguns copiei e até consegui, com o SAP aberto criar umas ações e tals. Até um deles, esboçou de abrir e logar mas deu erro, claro por falta de alguma outra informação.

Alguém aí, sabe como posso resolver, ou pelo menos mandar algum arquivo, ou dar uma luz sobre esses códigos.

Valeu.

Código que achei para Logar:

Sub ed_baker_login()
[ô]Declaration
[ô]
Dim objBAPIControl As Object [ô]Function Control (Collective object)
Dim sapConnection As Object [ô]Connection object
Set objBAPIControl = CreateObject([Ô]SAP.Functions[Ô])
Set sapConnection = objBAPIControl.Connection

sapConnection.client = [Ô]100[Ô]
sapConnection.user = [Ô]ebaker[Ô]
sapConnection.Language = [Ô]EN[Ô]
sapConnection.hostname = [Ô]Thermo[Ô]
sapConnection.Password = [Ô]ladeeladee[Ô] [ô]Fake password
sapConnection.SystemNumber = [Ô]4[Ô]
sapConnection.Destination = [Ô]DE1[Ô]
sapConnection.logon
If sapConnection.logon(1, True) <> True Then
MsgBox [Ô]No connection to R/3![Ô]
Exit Sub [ô]End program
End If

End Sub


Código que achei para gerar as ações:

Option Explicit
Public SAP As Object
Public SAPGui As Object
Public SAPCon As Object
Public SAPSession As Object

[ô]run saplogon if it is not running
Sub OpenSAP()
Dim SAPTaskID As Double
Dim SAPLogonPad As String
SAPLogonPad = [Ô]C:\Program Files\SAP\FrontEnd\SAPgui\saplogon.exe[Ô]
On Error Resume Next
AppActivate [Ô]SAP Logon 720[Ô]
If Err <> 0 Then
Err = 0
SAPTaskID = Shell(SAPLogonPad, vbMinimizedNoFocus)
If Err <> 0 Then
MsgBox [Ô]Cannot start SAPLOGON[Ô], vbCritical, [Ô]SAPLOGON FAILED[Ô]
Else
MsgBox [Ô]SAP Logon activated [Ô] & SAPTaskID, vbInformation, [Ô]SAP Running[Ô]
End If
End If
End Sub
Sub SAPLogon()
Call OpenSAP
AppActivate (ThisWorkbook.Name)
Static sapID As String
Static sapPassword As String
If sapID = [Ô][Ô] Or sapPassword = [Ô][Ô] Then
With loginSAP [ô]a userform to get the sap id and password
.Show
sapID = .SAPuser
sapPassword = .SAPPass
End With
End If
If SAPGui Is Nothing Then
Set SAP = GetObject([Ô]sapgui[Ô])
Set SAPGui = SAP.GetScriptingEngine
End If

If SAPCon Is Nothing Then
Set SAPCon = SAPGui.OpenConnectionByConnectionString([Ô]xxx.xxx.xxx.xxx[Ô], True)
Else
[ô](what should I put here to call the SAPCon object already declared from previous run?)
End If

If SAPSession Is Nothing Then
Set SAPSession = SAPCon.Children(0)
With SAPSession
.findById([Ô]wnd[0]/usr/txtRSYST-MANDT[Ô]).Text = [Ô]200[Ô]
.findById([Ô]wnd[0]/usr/txtRSYST-BNAME[Ô]).Text = sapID
.findById([Ô]wnd[0]/usr/pwdRSYST-BCODE[Ô]).Text = sapPassword
.findById([Ô]wnd[0]/usr/txtRSYST-LANGU[Ô]).Text = [Ô]EN[Ô]
.findById([Ô]wnd[0][Ô]).sendVKey 0
End With
Else
[ô](how do I call the Session already running from previous call to this script?)
End If
End Sub






VBALLAN 15/01/2014 09:05:40
#433076
Pô! Nínguém? Nenhum [Ô]tecla[Ô] sabe sobre isso?
Tópico encerrado , respostas não são mais permitidas