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"
        

Voraussetzungen

  1. Das GuiXT Profile muss den externen Aufruf explizit erlauben. In der guixt.ini Datei ist das der Parameter
    AllowExternalInput Yes
    Diese Sicherheitsmaßnahme wurde mit GuiXT Version 2026 Q1 1 eingeführt.
  2. Mindestens eine SAP GUI Session muss aktiv sein.

Funktionsweise

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.

Gezielte Auswahl einer Session

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"

Sessionkennung

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.

Beispiele

(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"

Warteschlangen

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.

Parameterübergabe an das InputScript

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.

Hinweis zu Sonderzeichen

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.

Logging

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.

Benutzen einer weiteren Session

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"
       
GuiXT
// InputScript "set_session_name.txt"
Parameter sessionname

// set session name
Set V[_mysessionname] "&U[sessionname]"

Return
Die maximale Anzahl von SAP GUI Sessions pro Anmeldung ist häufig auf 6 eingestellt. Über den SAP Parameter
rdisp/max_alt_modes
kann der Wert auf bis zu 16 erhöht werden, was in neueren SAP System auch schon als Default-Wert eingestellt ist.