GuiXT-Aufruf aus MS Word

Mit GuiXT können Sie  dem Benutzer in einer Transaktion einen neuen Button anbieten, durch den automatisch ein Word-Dokument mit der Aufbereitung aktueller Transaktionsdaten geöffnet wird. Technik: eine Vorlage als RTF-Dokument abspeichern, in dem InputScript die benötigten Daten besorgen (aus der laufenden Transaktion oder über “Call”), dann MS Word über die View-Anweisung mit template=”…”  aufrufen. Für diese Vorgehensweise brauchen Sie die beiden Add-ons InputAssistant und Viewer.

Hier beschreiben wir den umgekehrten Weg: In Word soll ein zusätzlicher Button angeboten werden, der ein InputScript startet. Anwendungsbeispiel: Sie haben in einem InputScript ein neues Dokument erstellt und mit “View” in Word angezeigt. Nach Änderung des Dokuments durch den Benutzer soll das Dokument in der SAP-Datenbank abgespeichert werden. Die Abspeicherung selbst kann z.B. durch Aufruf eines Funktionsbausteins aus dem InputScript geschehen. Das folgende Besipiel bezieht sich auf die Oberfläche von Word 2002. Benötigt wird für diese Richtung nur der InputAssistant.

Eine technische Anmerkung: MS Word speichert den zusätzlich angelegten Button (wie man ihn anlegt, wird gleich erklärt) und das zugehörige VBA-Skript in einem Word-Template, einer .dot-Datei. Als Standard ist das “normal.dot”. Wenn Sie “normal.dot” ändern, erscheint der Button jedoch jedesmal, wenn Sie in Word ein neues Dokument (ohne eigenes Template) anlegen. Daher empfiehlt es sich, zunächst “normal.dot” zu kopieren, und dann mit dem kopierten Template (z.B. “sapupload.dot”) zu arbeiten. EIn Doppelklick auf “sapupload.dot” genügt zum Öffnen eines neuen Dokuments unter Benutzung dieses Templates.

Sap Guixt wordbutton12 GuiXT Aufruf aus MS Word

Um das Ganze später für eine grössere Benutzeranzahl zur Verfügung zu stellen, müssen Sie Ihr neues Word-Template “sapupload.dot” von den jeweiligen PCs erreichbar ablegen, also entweder auf einem Server, oder als Kopie auf jedem PC. SIe können die Datei auch im SAP Web Repository ablegen, und sie im InputScript dann zunächst in eine temporäre lokale Datei kopieren.

Nun ein wichtiger Punkt: Der Name des Word-Template wird bei Erzeugen einer .doc oder .rtf-Datei von Word im Dokument selbst vermerkt. SIe müssen also Ihr rtf-Dokument, das Sie im “View”-Befehl als View-Template verwenden, unter Verwendung des Server-Templates “sapupload.dot” herstellen, oder zumindest später über einen ASCII-Editor (wie notepad.exe) den Template-Namen im rtf-Dokument selbst korrigieren. Es ist auch möglich, hier eine GuiXT-Variable &[templatefile] zu verwenden, die dann im InputScript geeignet besetzt wird (also den Namen der Serverdatei oder einer lokal kopierten Datei enthält).

Das Ganze ist zunächst etwas verwirrend, da es zwei Templates gibt: Die .dot-Datei für Word (sapupload.dot), und dann Ihre .rtf-Datei als Template im View-Befehl. 

Zum Hinzufügen des neuen Buttons sowie des VBA-Skripts gehen Sie wie folgt vor. Öffnen SIe zunächst “sapupload.dot” oder ein damit bereits erzeugtes Dokument in Word.

Sap Guixt wordbutton01 GuiXT Aufruf aus MS Word

1. Gehen Sie in MS Word über Extras->Makro->Visual Basic-Editor in den integrierten VBA Editor. 

 

Sap Guixt wordbutton02 GuiXT Aufruf aus MS Word

2. Wählen Sie in der Projektsicht “NewMacros” an.

 

Sap Guixt wordbutton03 GuiXT Aufruf aus MS Word

3. Erfassen Sie dort ein VBA Skript wie folgt

Sub SAP_Save()

‘ Save + Upload in SAP Datenbank über InputScript “upload.txt”

ActiveDocument.Save

GuiXTLocation = “C:\Programme\SAP\Frontend\sapgui\guixt.exe “
GuiXTInputString = “Input=U[filename]:” + ActiveDocument.FullName + “;OK:process=upload.txt”

Path = GuiXTLocation + GuiXTInputString

Shell Pathname:=Path, WindowStyle:=vbHide

MsgBox “Dokument in SAP-System gesichert”

End Sub

Erläuterungen:

  • Der Name SAP_Save ist beliebig wählbar
  • ActiveDocument.Save sichert das Dokument lokal
  • GuiXTLocation enthält den Pfad zur guixt.exe. Bitte Leerzeichen danach oder vor dem “Input=…” in der nächsten Variablen
  • GuiXTInputString enthält den an GuiXT zu übermittelnden String. SIehe Dokumentation der Image-Anweisung für den Aufbau des Strings
  • Shell ruft nun GuiXT auf und übergibt den InputString. Hierdurch wird das InputScript “upload.txt” in der aktuellen SAP Session gestartet. Als Parameter erhält es den lokalen Dateinamen. 

 

 

Sap Guixt wordbutton04 GuiXT Aufruf aus MS Word

4. In MS Word klicken Sie nun auf Extras->Anpassen


Sap Guixt wordbutton05 GuiXT Aufruf aus MS Word

5. Bei “Speichern in” bitte Ihr Template auswählen. Unter “Makros” wird das neu hinzugefügte Makro angeboten. Ziehen Sie es mit der Maus in die Symbolleiste an eine geeignete Stelle, zum Beispiel ganz nach links 


Sap Guixt wordbutton06 GuiXT Aufruf aus MS Word

6. Der neue Button erscheint mit seinem technischen Namen in der Symbolleiste.

:

Sap Guixt wordbutton07 GuiXT Aufruf aus MS Word

7. Mit der rechten Maustaste (während “Anpassen” aktiv ist
) können Sie nun die Eigenschaften des Buttons ändern.

Sap Guixt wordbutton08 GuiXT Aufruf aus MS Word

8. Nach Geschmack ein zusätzliches Symbol auswählen. 

 

Sap Guixt wordbutton09 GuiXT Aufruf aus MS Word

9. Bei Klick auf den neuen Butten wird das VBA Skript ausgeführt. Es startet das Input Skript “upload.txt”. 

 

Sap Guixt wordbutton10 GuiXT Aufruf aus MS Word

10. InputSkript “upload.txt”. Der Dateiname wird als Parameter übergeben. Die Anweisung “Return” am Ende bewirkt eine Rückkehr zu dem Screen, auf dem das Skript gestartet wurde, ohne weitere Aktion. 

 

Sap Guixt wordbutton11 GuiXT Aufruf aus MS Word

11. Trace-Ausgabe des InputSkript “upload.txt”. Als Dateiname wurde aus Word heraus der Inhalt von “ActiveDocument.Fullname” übergeben.

 

 

 

GuiXT-Aufruf aus MS Word