Der externe Aufruf eines InputScripts erfolgt über den Start von guixt.exe
mit dem Parameter input=. In 64‑Bit SAP GUI lautet der Aufruf:
C:\Program Files\SAP\FrontEnd\SAPGUI\guixt.exe input="OK:process=myinputscript.txt"
und in der 32‑Bit Version:
C:\Program Files (x86)\SAP\FrontEnd\SAPGUI\guixt.exe input="OK:process=myinputscript.txt"
Damit können Sie beispielsweise aus Excel oder Word über einen eigenen Button und ein VBA‑Makro Daten in SAP hochladen oder aus SAP auslesen. Ebenso lassen sich batchartige Abläufe automatisieren.
Zusätzlich zu dem Namen des Input-Script können Sie Parameter und auch einen SAP GUI OK-Code mitgeben. Beispiel:
guixt.exe input="U[ORDER]:27853;OK:/VA03,process=display_customer_order.txt"
AllowExternalInput YesDiese Sicherheitsmaßnahme wurde mit GuiXT Version 2026 Q1 1 eingeführt.
GuiXT sucht beim Parameter input= eine SAP GUI Session,
in der aktuell kein InputScript läuft, und startet dort das angegebene Script.
Falls in allen Sessions bereits ein InputScript ausgeführt wird,
wartet GuiXT, bis eine Session frei wird. Alle Aufrufe von
guixt.exe input=... werden so lange intern gepuffert.
Bei mehreren Sessions können InputScripts parallel ausgeführt werden.
In bestimmten Situationen ist die Auswahl einer bestimmten Session erforderlich, z. B.:
Die Auswahl erfolgt über die Zusatzoption findsession=:
guixt.exe findsession="system:'S4H'" input="OK:process=se37.txt"
GuiXT bildet für jede aktive Session eine Kennung mit folgenden Attributen:
system:'PS4' user:'MSMITH' client:'100' transaction:'VA01' mode:'1' hwnd:'133842' processid:'11000' mysessionname:'CUSTOMERORDER'
Die Reihenfolge dieser Attribute bleibt auch künftig stabil.
Der bei findsession= angegebene reguläre Ausdruck wird ohne Beachtung der Groß-/Kleinschreibung ausgewertet.
(a) Nur Sessions des Systems PS4:
guixt.exe findsession="system:'PS4'" input=...
(b) Nur Sessions für Benutzer msmith:
guixt.exe findsession="user:'msmith'" input=...
(c) Auswahl über Window Handle:
guixt.exe findsession="hwnd:'133842'" input=...
Das Window Handle entspricht dabei der GuiXT Variablen V[_hwndguiscreen].
(d) Kombination von Bedingungen:
guixt.exe findsession="system:'PS4'(?s).*?user:'MSMITH'" input=...
(e) Sessionname verwenden:
guixt.exe findsession="mysessionname:'BATCH01'" input=...
In GuiXT setzen Sie den Sessionnamen über:
Set V[_mysessionname] "BATCH01"
Wenn kein Treffer gefunden wird, wird der Aufruf ignoriert. Wenn Sessions vorhanden sind, aber alle gerade ein Script ausführen, legt GuiXT pro Suchausdruck eine Warteschlange an.
Die Übergabe erfolgt über:
guixt.exe input="U[par1]:value1;U[par2]:value2;OK:process=myinputscript.txt"
Im InputScript:
Parameter par1 Parameter par2
Die Anzahl der Parameter ist unbegrenzt.
Die mitgegebenen Werte sollten weder ; noch " enthalten.
Falls dies erforderlich ist:
Bei temporären Dateien müssen Dateinamen eindeutig sein, da die Aufrufe asynchron prozessiert werden.
GuiXT schreibt keine eigenen Logeinträge für extern gestartete InputScripts; der InputScript‑Trace steht jedoch zur Verfügung.
Für komplexere Anwendungen empfiehlt sich ein eigenes Log, das Start, Ende und ggf. Parameter jedes Aufrufs dokumentiert.
Um eine neue SAP GUI Session mit einem bestimmten Namen zu öffnen, einige InputScripts zu prozessieren und die Session dann zu schließen, können Sie folgenden Ablauf verwenden:
guixt.exe input="U[sessionname]:BATCH01;ok:/O0,process=set_session_name.txt"
guixt.exe findsession="mysessionname:'BATCH01'" input="..."
guixt.exe findsession="mysessionname:'BATCH01'" input="..."
...
guixt.exe input="U[sessionname]:BATCH01;ok:/i"
// InputScript "set_session_name.txt"
Parameter sessionname
// set session name
Set V[_mysessionname] "&U[sessionname]"
Return
rdisp/max_alt_modeskann der Wert auf bis zu 16 erhöht werden, was in neueren SAP System auch schon als Default-Wert eingestellt ist.