Verwendung von SAP-Verknüpfungen zum Starten von Transaktionen in anderen Systemen

Wenn ein Benutzer in mehr als einem SAP-System arbeitet, ist es oft wünschenswert eine einfache Verknüpfung zwischen Transaktionen beider Systeme herzustellen und wichtige Daten von einem ins andere System zu übergeben. 

Für unser Beispiel gehen wir davon aus, daß Kundendaten in zwei SAP-Systemen verfügbar sind. In dem ersten System sind alle Kundennummern 4-stellig, im anderen System sind sie 10-stellig. Wir möchtem dem Benutzer eine einzige Oberfläche anbieten in der er die Kundennummer eingibt, eine Taste drückt und sich automatisch in der Transaktion des richtigen System befindet.

Es gibt 2 verschiedene Möglichkeiten für die Realisierung einer solchen Öberfläche. Wir benutzen eine einfache Methode die GuiXT und SAP-Verknüpfungen kombiniert. Hierfür werden die Komponenten InputAssistant und Viewer benötigt. 

Sap Guixt shortcut01 Verwendung von SAP Verknüpfungen zum Starten von Transaktionen in anderen Systemen

Das ist die mit GuiXT erstellte Oberfäche. Der Benutzer gibt die Kundennummer ein und drückt die “Start”-Taste. GuiXT startet die Transaktion VD03 (Debitor anzeigen) im richtigen System mit Übergabe der Kundennummer. Diese Oberfläche kann einem beliebigen SAP-Bildschirm zugefügt werden. In unserem Beispiel haben wir sie im Hauptmenü  eingefügt.

Sinnvoll ist es diese Oberfäche in beiden Systemen zur Verfügung zu stellen, damit der Benutzer im System seiner Wahl starten kann. Das InputScript “Kundenanzeigen.txt”  muß also leicht unterschiedlich in beiden Systemen sein. Man kann auch die Abfrage  “if Q[database=...]“  benutzen um zu entscheiden von wo die Transaktion VD03 aufgerufen werden soll.

So sieht das GuiXT-Skript aus:

SAPLSMTR_NAVIGATION.D0100.txt:

// Anzeige der Benutzer-Oberfläche
Box (0,0) (3,32) “Kundendaten anzeigen”
InputField (2,1) “Nummer” (2,10) Size=10 Name=”Kundennummer” Techname=”RF02D-KUNNR” 
Pushbutton (1,26) “Start” Process=”Kundeanzeigen.txt” Size=”3″
// SAP Standardmenü nach uneten verschieben 
pos [IMAGE_CONTAINER] (6,0)

Das InputScript Kundeanzeigen.txt entscheidet zuerst in welchem System die Kundendaten vorhanden sein könnten abhängig von der Länge der Kundennummer. Wenn es im aktuellen System ist, wird die Transaktion VD03 direkt gestartet. Sonst, wird über den Aufruf einer SAP-Verknüpfung die Transaktion VD03 im anderen System aufgerufen. Da es nicht möglich ist, Parameter über die Verknüpfung an das zweite System zu übergeben, wird eine temporäre Parameter-Datei für den Transport eingesetzt.

Man könnte auch anstelle der Länge der Kundennummer über einen RFC den Kunden in der Datenbank suchen. Sollten mehr als zwei Systeme in Frage kommen müßten Sie mit der Destination=… Option der GuiXT call-Anweisung arbeiten, um das richtige System anzusprechen. Für unser Beispiel gehen wir davon aus, daß wir nur 2 Systeme haben, und daß wir das richtige System über die Länge der Kundennummer bestimmen können. 

// GuiXT InputScript Kundeanzeigen.txt

// Ist die Länge der Kundennummer > 4: Einsatz des 2. SAP-Systems (S4C) für die Datenanzeige
Set V[RechterTeilDerKundennummer] “&V[Kundennummer](5-10)”

if V[RechterTeilDerKundennummer]

  // Schreiben der Kundennummer in die Parameter-Datei (&%[TEMP] ist die Umgebungsvariable TEMP)
  Set V[TempDateiname] “&%[TEMP]\GuiXTKundennummer.txt”
  OpenFile “&V[TempDateiname]” “-Output”
  AppendFile “&V[TempDateiname]” Kundennummer
  CloseFile “&V[TempDateiname]“ 

  // Starten der VD03 im System (S4C) über Verknüpfung 
  View “vd03.sap”
  Leave
endif

// Starten der VD03 im selben System
Screen saplsmtr_navigation.0100
  Enter “/NVD03″

// Erster Bildschirm der VD03
Screen sapmf02d.7108
Set F[Debitor] “&V[Kundennummer]“

Leave

Sap Guixt shortcut02 Verwendung von SAP Verknüpfungen zum Starten von Transaktionen in anderen Systemen

Das GuiXT-Skript für den Einstiegsbildschirm der VD03, liest immer die temporäre Parameter-Datei und setzt die Kundennummer wenn Sie vorhanden ist:

// GuiXT Script SAPMF02D.D7108.txt

// Kundennummer aus der Parameter-Datei
Set V[TempDateiname] “&%[TEMP]\GuiXTKundennummer.txt”
OpenFile  “&V[TempDateiname]“ 
ReadFile  “&V[TempDateiname]” KundennummerAusDatei
CloseFile “&V[TempDateiname]“ 

if V[KundennummerAusDatei]
 
// Löschen der Parameter-Datei 
  OpenFile  “&V[TempDateiname]” -Output
  CloseFile “&V[TempDateiname]“
  Set F[Debitor] “&V[KundennummerAusDatei]“
endif

Die SAP-Verknüpfung vd03.sap kann automatisch im sapgui generiert werden. Hierfür gehen Sie einfach in die Transaktion und wählen die Drucktaste in der Toolbar: 

Sap Guixt shortcut04 Verwendung von SAP Verknüpfungen zum Starten von Transaktionen in anderen Systemen

Es sieht dann wie folgt aus:

Sap Guixt shortcut03 Verwendung von SAP Verknüpfungen zum Starten von Transaktionen in anderen Systemen

Verwendung von SAP-Verknüpfungen zum Starten von Transaktionen in anderen Systemen