Hallo Zusammen,
nach dem ich einiges im Internet gelesen und manchmal aber nicht wirklich verstanden habe, hatte es dann doch noch geklappt. Da ich so etwas nicht gefunden habe wollte mein Script allen zur Verfügung stellen, die wie ich als Nichtprogrammierer doch selbst in SAP mit GUIXT und VBScript einiges verändern/verbessern wollen. Sollte jemand in dem Script (funktioniert hat es) Fehler entdecken, so wäre ich über eine Rückmeldung dankbar.
Zusammenfassung
Über die GUIXT Image-Anweisung wird durch das Anklicken der Bericht.png Datei die Bericht.vbs Datei im aktiven SAP Modus ausgeführt. Dann wird Excel mit der angegebenen Excel-Datei gestartet und Stück für Stück die entsprechenden Excel-Zellen befüllt. Die SAP Felder habe ich über die Script-Aufzeichnung bzw. nicht beschreibbare Felder über den Scripting-Tracker identifiziert.
GUIXT Script
Image (10,150) "Bericht.png" Start="Bericht.vbs"
Bericht.vbs
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.Children(0)
End If
set session = application.ActiveSession
session.findById("wnd[0]").maximize
Set xclapp = CreateObject("Excel.Application")
Set xclwbk = xclapp.Workbooks.Open("U:\........\Berich.xlsx")
set xclsht = xclwbk.Sheets("Tabelle1")
'Excel sichtbar machen
xclapp.Visible = True
'Auftragsnummer an Excel übertragen
xclsht.Cells(7, 😎.Value = session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/subSUB_KOPF:SAPLCOIH:1102/txtCAUFVD-AUFNR").text
'Kundenbestellnummer an Excel übertragen
xclsht.Cells(6, 5).Value = session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subSUB_SERVICE:SAPLCOI3:0300/txtPMSDO-BSTKD").text
'Auftragskurztext an Excel übertragen
xclsht.Cells(10, 4).Value = session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/subSUB_KOPF:SAPLCOIH:1102/txtCAUFVD-KTEXT").text
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/subSUB_KOPF:SAPLCOIH:1102/txtCAUFVD-KTEXT").setFocus
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/subSUB_KOPF:SAPLCOIH:1102/txtCAUFVD-KTEXT").caretPosition = 9
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/subSUB_KOPF:SAPLCOIH:1102/subSUB_BTN:SAPLCOIH:1105/btnBTN_LTHE").press
'Auftragslangtext an Excel übertragen
xclsht.Cells(11, 1).Value = session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/subSUB_KOPF:SAPLCOIH:1102/subSUB_TEXT:SAPLCOIH:1103/cntlLTEXT/shell").text
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/subSUB_KOPF:SAPLCOIH:1102/subSUB_TEXT:SAPLCOIH:1103/cntlLTEXT/shell").setSelectionIndexes 8,8
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/subSUB_KOPF:SAPLCOIH:1102/subSUB_TEXT:SAPLCOIH:1103/cntlLTEXT/shell").firstVisibleLine = "1"
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/subSUB_KOPF:SAPLCOIH:1102/subSUB_BTN:SAPLCOIH:1106/btnBTN_LTHE").press
'Standortdaten aufrufen
session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subSUB_ADRESSE:SAPLIPAR:0704/tabsTSTRIP_700/tabpADOB").select
'KundeText an Excel übertragen
xclsht.Cells(8, 2).Value = session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subSUB_ADRESSE:SAPLIPAR:0704/tabsTSTRIP_700/tabpADOB/ssubTSTRIP_SCREEN:SAPLIPAR:0130/subADRESSE:SAPLIPAR:0122/txtDIADR-NAME1").text
'Straße an Excel übertragen
xclsht.Cells(6, 2).Value = session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subSUB_ADRESSE:SAPLIPAR:0704/tabsTSTRIP_700/tabpADOB/ssubTSTRIP_SCREEN:SAPLIPAR:0130/subADRESSE:SAPLIPAR:0122/ctxtDIADR-STREET").text
'Plz in Variable übertragen
varPlz = session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subSUB_ADRESSE:SAPLIPAR:0704/tabsTSTRIP_700/tabpADOB/ssubTSTRIP_SCREEN:SAPLIPAR:0130/subADRESSE:SAPLIPAR:0122/txtDIADR-POST_CODE1").text
'Ort in Variable übertragen
varOrt = session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1100/tabsTS_1100/tabpIHKZ/ssubSUB_AUFTRAG:SAPLCOIH:1120/subSUB_ADRESSE:SAPLIPAR:0704/tabsTSTRIP_700/tabpADOB/ssubTSTRIP_SCREEN:SAPLIPAR:0130/subADRESSE:SAPLIPAR:0122/txtDIADR-CITY1").text
'Variablen PLZ und Ort verketten und an Excel übertragen
xclsht.Cells(7, 2).Value = varPlz + " " + varOrt
session.findById("wnd[0]").sendVKey 0
Gruß
Michael