SAP Jobsuche bei DV-Treff
osa
  • osa
  • SAP Forum - Neuling Thema Starter
vor 17 Jahre

Hallo zusammen,

ich greife über VBA (SAP.LogonControl.1) auf ein SAP BW zu. Die Anmeldung und auch der Zugriff funktioniert.

Dass einzigeste Problem ist, die Programmierung soll als Nachtverarbeitung eingestellt werden, d.h. Excel soll sich automatisch am System anmelden. Problem ist, wenn ein Kollege mit der sm02 eine Systemnachricht eingestellt hat, bleibt der Anmeldevorgang hängen.

Hat da jemand eine Idee ?

Im voraus schon mal vielen Dank

Gruss

Jörg

Förderer

danielA.
vor 17 Jahre

Hallo Jörg,

was ist denn das für ein User im SAP der sich über Excel anmeldet? Dialoguser?

Und wie meldet sich Excel an SAP an, Silent?

 

Gruß

DanielA.

osa
  • osa
  • SAP Forum - Neuling Thema Starter
vor 17 Jahre

Hallo Daniel,

der User ist ein Dialog-User.

Was ich jedoch rausgefunden habe ist, das das Problem nicht die eigentliche Anmeldung ist, sondern die erste Aktion (z.B. Refresh), die löst das Ereignis aus, dass die Meldung hochpopt. 

Der User muss ein Dialoguser (wg. Refresh) sein. Die Anmeldung erfolgt an einem SAP BW, mittel der Funktion "login", welche in der Bibliothek sapbex.xla drin steht.

Beipiel:

Set objConnection = Run("SAPBEX.XLA!SAPBEXgetConnection")
Set conn = funcControl.Connection

With objConnection
   .client = "xxx"
   .user = "xxx"
   .Password = "xxx"
   .Language = "DE"    
   .systemnumber = "xx"
   .systemid = "xxx"
   .system = "xxx" 
   .usesaplogonini = False
     
   .Logon 0, True
     If .IsConnected <> 1 Then
        .Logon 0, False
        If .IsConnected <> 1 Then
            MsgBox "Anmeldung fehl ..."
            Exit Function
        End If
     End If
   Run "SAPBEX.XLA!SAPBEXinitConnection"
   Set getSapConnection = objConnection
End With

Solaris
vor 15 Jahre

Hallo zusammen, ich will eine Frage zu diesem Thema stellen:

Ich benutze folgenden Code um eine Verbindung zum SAP aufzubauen, ähnlich dem hier auch geposteten:

 

Dim objBAPICortrol, objConnection, objDiplay As Object

Dim login As Boolean

If login = False Then

'***********************************************************

' Definition Variables for establishing connection

'***********************************************************

Set objBAPICortrol = CreateObject("SAP.Functions")

Set objConnection = objBAPICortrol.Connection

With objConnection

.ApplicationServer = "xxxx"

.System = "BW8"

.SystemNumber = "xxx"

.User = "xxxx"

.Password = "xxxx"

.client = "006"

.Language = "D"

.tracelevel = 6

.usesaplogonini = False

End With

'***********************************************************

' Connection

'***********************************************************

bSilentLogon = True

If objConnection.logon(0, True) = True Then

login = True

MsgBox "Verbunden"

objConnection.Logoff

Set objConnection = Nothing

Set objBAPICortrol = Nothing

End If

Else

login = False

objConnection.Logoff

Set objConnection = Nothing

Set objBAPICortrol = Nothing

End If

---------------------------------------------

Diese verwende ich um für einen RFC eingeloggt zu sein.

Frage, wenn ein user schon eingeloggt ist, gibt es eine möglichkeit user name und passwort auszulesen und an einen RFC zu geben?
Mit SAPBExgetconnection() habe ich geshen kann man den user namen herausfinden. Auch ein Passwort?

 

Vielen Dank!