Hi ich hoffe irgendjemand kann mir hier helfen. Ich habe einen Code geschrieben, der mir zumindest mittlerweile die Tabelle in SAP öffnet und auch bis zu dem Fenster "Speichern unter" funktioniert. Ab hier komme ich allerdings nicht mehr weiter. Das Skript hängt sich jedes mal nach dem im ersten Pop-Up-Fenster "Enter" gedrückt wird und sich das "Speichern unter" Pop-Up öffnet auf.
Ab hier kann ich nur noch den Task killen.
SAP bleibt bedienbar, allerdings scheint das Skript hier nicht das richtige Fenster im Fokus zu haben oder Ähnliches...
Als kurze Beschreibung:
geöffnet wird die Transaktion "ZSA38" mit einer Variante "1150_DP_PUMPS"
hier ist ein Timer von 15 Sekunden hinterlegt, da das aufrufen schonmal etwas dauern kann.
Als nächsten wird der Export Button gedrückt -> Shift+F6 (43)
Nun öffnet sich das erste Pop-Up zur Wahl der zu exportierenden Datei -> Excel .xlsx
Als nächstes wird mit "Enter" bestätigt und es öffnet sich das zweite Pop-Up "speichern unter"
Ab hier hängt sich das Skript auf.
Mein Skript:
CodeTags gesetzt ~VaporiZed
Ab hier kann ich nur noch den Task killen.
SAP bleibt bedienbar, allerdings scheint das Skript hier nicht das richtige Fenster im Fokus zu haben oder Ähnliches...
Als kurze Beschreibung:
geöffnet wird die Transaktion "ZSA38" mit einer Variante "1150_DP_PUMPS"
hier ist ein Timer von 15 Sekunden hinterlegt, da das aufrufen schonmal etwas dauern kann.
Als nächsten wird der Export Button gedrückt -> Shift+F6 (43)
Nun öffnet sich das erste Pop-Up zur Wahl der zu exportierenden Datei -> Excel .xlsx
Als nächstes wird mit "Enter" bestätigt und es öffnet sich das zweite Pop-Up "speichern unter"
Ab hier hängt sich das Skript auf.
Mein Skript:
Visual Basic-Quellcode
- Sub SAPScript()
- Dim sap_gui_auto As Object
- Dim sap_app As Object
- Dim connection As Object
- Dim session As Object
- Dim excel_file_path As String
- Dim df_materials As Object
- Dim materials As Variant
- Dim current_date As Date
- Dim start_date As Date
- Dim end_date As Date
- ' Überprüfen, ob bereits eine SAP-Sitzung geöffnet ist
- On Error Resume Next
- Set sap_gui_auto = GetObject("Sapgui.ScriptingCtrl.1")
- If Err.Number <> 0 Then
- ' SAP GUI Automatisierungsobjekt erstellen
- Set sap_gui_auto = CreateObject("Sapgui.ScriptingCtrl.1")
- End If
- On Error GoTo 0
- ' SAP GUI Anwendung öffnen
- sap_gui_auto.OpenConnection "Production (P14) - Central ERP"
- ' SAP GUI Anwendungsskript erstellen
- Set sap_app = sap_gui_auto.Children(0)
- ' Anmeldedaten eingeben
- Set session = sap_app.Children(0)
- session.findById("wnd[0]/usr/txtRSYST-BNAME").Text = "Benutzername" ' Benutzername
- session.findById("wnd[0]/usr/pwdRSYST-BCODE").Text = "Passwort" ' Passwort
- session.findById("wnd[0]").sendVKey 0 ' Enter-Taste drücken
- session.findById("wnd[0]").sendVKey 0 ' Enter-Taste drücken
- session.findById("wnd[0]").sendVKey 3 ' Zurück-Button (F3) drücken
- ' Transaktion aufrufen und Programmaufruf tätigen
- session.findById("wnd[0]/tbar[0]/okcd").Text = "ZSA38" ' Transaktion "ZSA38" aufrufen
- session.findById("wnd[0]").sendVKey 0 ' Enter-Taste drücken
- ' Wartezeit, um sicherzustellen, dass das ZSA38-Fenster vollständig geladen ist
- Application.Wait Now + TimeValue("0:00:01")
- ' Navigiere zum Programmfeld
- session.findById("wnd[0]/usr").SetFocus
- session.findById("wnd[0]/usr/ctxtRS38M-PROGRAMM").Text = "ZPPLAP_DISPOLISTE"
- ' Button "Ausführen mit Variante" auswählen
- session.findById("wnd[0]").sendVKey (18) ' Button "Ausf. m. Variante" anklicken
- ' Wartezeit, um sicherzustellen, dass das Fenster vollständig geladen ist
- Application.Wait Now + TimeValue("0:00:01")
- ' Navigiere zum Textfeld im übergeordneten Popup-Fenster
- session.findById("wnd[1]/usr/ctxtRS38M-SELSET").Text = "1150_DP_PUMPS"
- session.findById("wnd[0]").sendVKey 0 ' Enter-Taste drücken
- session.findById("wnd[0]").sendVKey (8) ' Ausführen-Button (F8) drücken
- ' Wartezeit, um sicherzustellen, dass das Fenster vollständig geladen ist
- Application.Wait Now + TimeValue("0:00:15")
- ' Liste aller Bestands- und Dispositionsdaten
- session.findById("wnd[0]").sendVKey (43) ' Tabellenkalkulation
- ' Wartezeit, um sicherzustellen, dass das Fenster vollständig geladen ist
- Application.Wait Now + TimeValue("0:00:02")
- session.findById("wnd[0]").sendVKey (0) ' Enter-Taste drücken im ersten Pop-up-Fenster
- ' Eingabe im zweiten Pop-up-Fenster
- session.findById("wnd[1]/usr/txtSXF-FILENAME").Text = "Export_1150_DP_PUMPS.xlsx"
- session.findById("wnd[1]").sendVKey 0 ' Enter-Taste drücken
- ' SAP abmelden
- session.findById("wnd[0]").sendVKey 3 ' F12-Taste drücken
- session.findById("wnd[1]/usr/btnSPOP-VAROPTION1").press ' Dialog bestätigen
- session.findById("wnd[0]").sendVKey 3 ' F12-Taste drücken
- End Sub
CodeTags gesetzt ~VaporiZed
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()