Was leistet GuiXT? Mit GuiXT können Sie SAP Masken vereinfachen und an die Erfordernisse einzelner Benutzergruppen anpassen, ohne SAP Programme oder Dynpros modifizieren zu müssen.

Neben der Vereinfachung der Masken bietet GuiXT eine Reihe von Möglichkeiten, die den Benutzer angenehmer und schneller mit SAP ERP arbeiten lassen: Sie können zum Beispiel Eingabefelder durch Auswahlknöpfe ersetzen, Abbildungen und Hilfetext einblenden, Feldtexte unternehmensspezifisch gestalten, zusätzliche Drucktasten definieren,...

Technologie GuiXT arbeitet mit einer einfachen Skriptsprache. Pro SAP Maske können Sie in einem Skript das gewünschte Layout in Form einzelner Anweisungen definieren.
Ein kleines Beispiel del [Umrechnungsdat] 
pos [Erste Belegposition] (8,0)

Das Eingabefeld mit der Bezeichnung Umrechnungsdat wird gelöscht, die Feldgruppe Erste Belegposition wird auf Zeile 8, Spalte 0 verschoben.

Wie erfasse und ändere ich ein GuiXT Skript? Gehen Sie im SAP System auf das Bild, das Sie verändern möchten. Klicken Sie dann im GuiXT Menü auf Edit->Script. Es wird dann der Texteditor (Notepad) für das entsprechende Skript gestartet.
Wo sind die GuiXT Skripte abgelegt? Die GuiXT Skripte sind als normale ASCII-Text-Dateien abgelegt, und zwar entweder unmittelbar auf Ihrem PC oder auf einem Fileserver im lokalen Netz. Sie legen das Verzeichnis, in dem die Skripte liegen, im GuiXT-Profile guixt.ini durch den Parameter

Directory1 directoryname

fest, z.B.
Directory1
C:\GuiXT\Script1

Insgesamt können Sie 4 Verzeichnisse Directory1,...,Directory4 angeben. Sie werden jeweils in der Reihenfolge Directory4,...,Directory1 nach einem passenden Skript durchsucht, das erste gefundene Skript wird ausgeführt. Beispielsweise könnte Directory1 auf ein Verzeichnis mit unternehmensweit definierten Skripten zeigen, die auf einem Fileserver liegen, und Directory2 könnte spezielle Skripte für eine kleinere Benutzergruppe enthalten.

Über das GuiXT Profile können die Skripte unterschiedlich pro Benutzer oder Benutzergruppe zugeordnet werden. Falls Sie sich in mehr als einem SAP-System oder in verschiedenen Mandanten anmelden und hierfür unterschiedliche Skriptverzeichnisse verwenden wollen, können Sie das durch Systemvariablen in den Namen der Skriptverzeichnisse erreichen:

&client wird ersetzt durch den aktuellen SAP Mandanten
&database wird ersetzt durch die aktuelle Datenbanknummer (System Id)

Beispiel:

Directory1 \\Server\GuiXT\scripts
Directory2
F:\GuiXT\scripts\&database
Directory3
C:\GuiXT\myscripts\&database

Wir arbeiten z.B. in dem SAP System TST. Als erstes wird GuiXT nach dem entsprechenden Skript in dem als Directory3 angegebenen Verzeichnis C:\GuiXT\myscripts\TST suchen. Wird das Skript dort nicht gefunden, sucht GuiXT im Verzeichnis F:\GuiXT\scripts\TST und schließlich im Verzeichnis \\Server\GuiXT\scripts.

Im SAP Logon-Fenster wird die Variable &client durch den Wert 000 ersetzt, da der vom Benutzer gewählte Mandant noch nicht bekannt ist.

Unter welchem Namen sind die GuiXT Skripte abgelegt? Jedes GuiXT Skript bezieht sich auf genau eine SAP Maske (Dynpro). Im SAP Repository sind die Masken unter dem ABAP Programmnamen und einer 4-stelligen Nummer abgelegt, z.B. Dynpro 0100 zum Programm SAPMF05A. Da die GuiXT Skripte sprachabhängig sind (Feldnamen, Texte, Bilder), kommt noch der Sprachenschlüssel hinzu, z.B. E für Englisch, D für Deutsch, F für Französisch, I für Italienisch, J für Japanisch,... Der Name eines Skriptfiles setzt sich damit insgesamt wie folgt zusammen:

pppppppp.Lnnnn.txt

pppppppp: ABAP Programmname
L: Sprachenschlüssel D, E, F, I, J, ... (1-stelliger Sprachenschlüssel aus dem SAP System)
nnnn: 4-stellige Dynpronummer

Beispiel:

SAPMF05A.D0100.txt

Hiervon gibt es zwei Ausnahmen:

  • Das Skript zum SAP logon-Bild wird unter dem Namen Dlogon.txt, Elogon.txt,... abgelegt: Der Sprachenschlüssel D, E,... ist dabei die Sprache, in der das logon-Bild angezeigt wird, da die vom Benutzer gewählte Sprache noch nicht bekannt ist
  • Die Bereichsmenüs sind unter dem Namen des jeweiligen GUI-Programms MENUxxxx abgelegt (statt SAPMSYST), um die Bereichsmenüs jeweils unterschiedlich gestalten zu können. Zum Beispiel: MENUS000.D0040.txt oder MENUPR00.D0040.txt

Mit den Anweisungen Image, View, Pushbutton können Sie Ihre eigenen Applikationsmenüs grafisch gestalten.

Format der Skriptanweisungen
  • Jede Skript-Anweisung steht in einer separaten Zeile 
  • Leere Zeilen werden überlesen 
  • Kommentare in einer Zeile können durch // eingeleitet werden
  • Das Skipt-Schlüsselwort steht immer am Anfang, z.B. pos
  • Bildelemente sind in eckige Klammern eingeschlossen, zum Beispiel [Umrechnungsdat] 
  • Bildkoordinaten sind in runde Klammern eingeschlossen, zum Beispiel (8,0)
  • Um Anführungszeichen " innerhalb von Strings zu verwenden, geben Sie doppelte Anführungszeichen "" ein
  • Jede Skriptzeile kann bis zu 4000 Zeichen lang sein
Wie spreche ich die einzelnen Bildelemente an? Bildelemente sind
  • Felder
  • Feldgruppen
  • Drucktasten (Pushbutton)
  • Auswahlknöpfe (Radiobutton)
  • Ankreuzfelder (Check box)
  • Table Controls
  • Tabstrip Controls
  • SAP Controls
  • Menüeinträge

Sie werden über ihren Text, in eckige Klammern eingeschlossen, angesprochen, zum Beispiel [Umrechnungsdat] oder [Kontonummer]. 

Zu beachten: Den Text müssen Sie so eingeben, wie er in der Anzeige erscheint, bis auf folgende mögliche Abweichungen:

  • Groß-/Kleinschreibung ist beliebig, zum Beispiel [KontoNummer] oder [kontonummer] statt [Kontonummer]
  • Zwischenräume sind beliebig, zum Beispiel [Konto Nummer ] statt [KontoNummer]
  • Zur Abkürzung langer Bezeichnungen können Sie einen Punkt am Ende verwenden, z.B.
    [Erste Belegpos.] oder [Erste B.] statt [Erste Belegposition]
  • Bei Drucktasten ohne Text (nur Ikone) können Sie den Quickinfo-Text der Drucktaste verwenden

Wahlweise kann zusätzlich der Typ des Bildelements in Form eines Kennbuchstabens angegeben werden, etwa wenn eine Feldgruppe und ein Feld mit dem gleichen Namen existieren. Folgende Typen sind möglich:

  • F[...] Feld
  • G[...] Feldgruppe
  • P[...] Drucktaste (Pushbutton) innerhalb des Bilds oder in der Drucktastenleiste
  • R[...] Auswahlknopf (Radiobutton)
  • C[...] Ankreuzfeld (Check box)
  • S[...] Tabstrip Control
  • T[...] Table Control
  • X[...] SAP Control (z.B. Image Control)
  • M[...] Menüeintrag

Beispiel:

del F[Umrechnungsdat] 
pos G[Erste Belegposition] (8,0)

Falls in Sonderfällen ein Bildelement ohne Text angesprochen werden muß, kann das durch folgende Schreibweise geschehen:

  • #[x,y]
    wobei
    x die Zeile und y die Spalte (jeweils bei 0 beginnend) des Bildelements ist.
  • für Table Controls ohne Bezeichnung: [table] oder T[table]

Falls es mehrere Felder gleichen Namens gibt, z.B. zweimal [KontoNummer], dann wird das erste Feld (von links oben nach rechts unten gezählt) mit dem normalen Namen [KontoNummer] angesprochen, die folgenden mit [KontoNummer.2], [KontoNummer.3], ...

Falls es mehrere Table Controls ohne Namen gibt, wird der erste mit [table] oder T[table] der folgende: [table.2] oder T[table.2], ...

Positionen Zur Angabe der Position (zeile,spalte) auf dem Bild gibt es drei Möglichkeiten:
  • (x,y) Hierbei ist x die Zeile, y die Spalte. Zum Beispiel bedeutet (4,60): Zeile 4, Spalte 60. Die Zählung beginnt bei (0,0) falls nicht durch offset ein anderer Nullpunkt festgelegt wurde. x und y sind ganzzahlige positive Werte. Nur bei zwei Anweisungen (image und view) können x und y auch Dezimalzahlen (mit Dezimalpunkt) sein, zum Beispiel (1.5,2.8)
  • [name] Angabe eines Bildelements, dessen Position hier eingesetzt wird
  • [name]+(x,y) Angabe eines Bildelements plus einem Offset in Zeilen und Spalten, das zur Position des Bildelements hinzuaddiert wird. Für x und y sind hierbei auch negative Werte erlaubt, zum Beispiel bedeutet [KontoNummer]+(1,-10)eine Zeile unter und 10 Spalten links von dem Feld KontoNummer
Relative Positionierung Um z.B. eine Gruppe von Radiobuttons als Ganzes hin- und herschieben zu können, kann man durch ein "Offset"-Kommando ein Offset in der Form (Zeile,Spalte) angeben, das automatisch zu allen folgenden direkt angegebenen Koordinaten addiert wird. Gleichbedeutend sind z.B. 

Offset (10,21) 
Radiobutton (0,0) "..."
Radiobutton (1,0) "..."
Radiobutton (2,0) "..."

und 

Radiobutton (10,21) "..."
Radiobutton (11,21) "..."
Radiobutton (12,21) "..."

Variablen In allen Strings "..." einer Skript-Kommandozeile können ein oder mehrere Variablen eingefügt werden, die sich auf Felder des aktuellen Bildes oder eines vorangegangenen Bilds beziehen können. Sie werden automatisch ersetzt durch den jeweiligen Feldinhalt. Die Bezeichnung der Variablen setzt sich zusammen aus dem &-Zeichen gefolgt von der Bezeichnung des entsprechenden Felds in eckigen Klammern, z.B. &[Kontonummer]

Beispiel: 

Title "Anzeige Konto &[Kontonummer]

Falls der aktuelle Inhalt des Felds [KontoNummer] 113100 war, ist das Skript-Kommando äquivalent mit 

Title "Anzeige Konto 113100" 

Eine Teilzeichenfolge kann durch die Notation &[...](a-b) eingesetzt werden; dabei ist a die Nummer des ersten Zeichens, b die Nummer des letzten Zeichens. Beispiel: "&[Kontonummer](3-4)" wird ersetzt durch "31", wenn die gesamte Kontonummer 113100 ist.

Ab und zu ist es nötig, auch die Eingabewerte aus vorher prozessierten Masken zur Verfügung zu haben. Beispielsweise könnte eine Materialnummer im Einstiegsbild der Transaktion eingegeben worden sein und Sie benötigen sie im zweiten Bild zum Zusammensetzen des Namens einer Produktabbildung, die Sie anzeigen möchten. Sie können in diesem Fall durch die Angabe von zwei Doppelpunkten :: vor dem Namen der Variablen (innerhalb der eckigen Klammer) ausdrücken, daß es sich um ein Eingabefeld auf einem vorangegangenen Bild handelt. Beispiel:

Image (4,80) "P:\products\img&[::Materialnummer].jpg"

Wurde beispielsweise die Materialnummer 00500187 auf dem Einstiegsbild eingegeben, so wird nun das Bild P:\products\img00500187.jpg angezeigt. 

Als systemseitig vordefinierte Variable steht daneben das Tagesdatum &[today_...] in verschiedenen Formaten zur Verfügung, wobei man die Buchstaben d=Tag, m=Monat und y=Jahr frei zusammensetzen kann. Beispiele für das Datum 24. Dezember 1999:

&[today_dmy] 24121999
&[today_mdy] 12241999
&[today_y] 1999
&[today_d.m.y] 24.12.1999

Ebenfalls unterstützt ist die Angabe einer Anzahl Tage, die zum Tagesdatum dazuaddiert oder davon subtrahiert wird. Beispiele für das Datum 24. Dezember 1999:

&[today+1_dmy] 25121999
&[today-1_dmy] 23121999
&[today+8_d.m.y] 01.01.2000

Siehe auch die Themen Systemvariablen und Special Topics "Variablen,Berechnungen,Vergleiche"

Tipps & Tricks
  • Wenn Sie SAP GUI vor 4.6B verwenden, muß GuiXT bereits vor dem Start des SAP SAP GUI aktiviert sein. Sie können das bequem dadurch erreichen, daß Sie statt saplogon.exe ein saplogon.bat mit Ihrem Saplogon Desktop Icon verbinden, in dem zunächst guixt.exe aufgerufen wird und anschließend saplogon.exe gestartet wird:

    Start C:\guixt\guixt.exe
    Start C:\sapgui\saplogon.exe
  • Durch den Parameter StartHidden Yes in guixt.ini kann optional für einzelne Benutzer GuiXT völlig unsichtbar ablaufen. Eine Alternative ist StartMinimized Yes
  • Falls eine Skript-Anweisung anscheinend keine Wirkung hat, liegt das vielleicht an einer falsch geschriebenen Bezeichnung für ein Bildelement, zum Beispiel haben Sie [Umrechnungsdatum] statt [Umrechnungsdat] geschrieben. Wenn Sie in GuiXT das Skript-Fenster anzeigen , werden entsprechende Syntaxfehlermeldungen in die Anzeige des aktuellen Skripts eingeblendet. Klicken Sie hierzu auf View->Skript.
  • Statt des manuellen Erfassens des Skripts kann auch ein SAP add-on Tool, der GuiXT Designer, eingesetzt werden, um das Layout in einem WYSIWYG-Editor zu definieren. Näheres hierzu finden Sie auf den Webseiten von Synactive unter http://www.synactive.com.