Hallo. Ich habe bereits Ein Makro mit Anbindung an SAP das funktioniert soweit auch.
Option Explicit
Public SapGuiAuto
Public objGui As GuiApplication
Public objConn As GuiConnection
Public session As GuiSession
'--- Funktion für SAP-Anbindung ---
Sub SAPCustomerReport()
'--- Verbindungsaufbau zur SAP Sitzung ---
Set SapGuiAuto = GetObject("SAPGUI")
Set objGui = SapGuiAuto.GetScriptingEngine
Set objConn = objGui.Children(0)
Set session = objConn.Children(0)
'-- SKRIPT AUS DEM SAP RECORDER
End Sub
Allerdings sind dafür gewisse Voraussetzungen notwendig, die ich jetzt gerne teilweise umgehen würde, nur weiß ich nicht wie.
1.) Wie kann ich einen Loop machen, der meine geöffneten Fenster durchgeht um zu prüfen, ob ich mich auf dem richtigen Server befindet?
Dazu hab ich bereits die Unterscheidung getroffen wie folgt:
Dim Test1 As String
If objConn.Description = "1_RPR" Then
Test1 = "RPR"
'Skript für RPR Transaktion <---
ElseIf objConn.Description = "5_SPH" Then
Test1 = "SPH/APO"
'Skript für SPH/APO Transaktion <---
Else
GoTo KeineSitzung
End If
Da würde ich dann das GUI Skripting ausm SAP einfügen wo es jeweils kommentiert ist, nur weiß ich nicht wie ich den Loop für das durchspringen der geöffneten Fenster machen kann.
2.) Wie kann ich das machen, das ich wenn ich beispielsweise im Fall "1_RPR" bin, das er dann prüft ob die maximal Anzahl an Fenstern geöffnet ist, wenn nein dann ein neues Fenster öffnen und darin das GUI Skript ausführen. Wenn ja, dann ein Fenster schließen wodurch die maximal Anzahl unterschritten wird und wieder ein Fenster sich öffnen kann. Weil ich hatte das auch mit dem Recorder mal versucht, ein neues Fenster zu öffnen und darin die Transaktion auszuführen, aber das macht er nicht. Er erwartet dann, das ich in dem Urprungsfenster weiter arbeite..
|