|
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.
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. |
1. Gehen Sie in MS Word über Extras->Makro->Visual Basic-Editor in den integrierten VBA Editor.
2. Wählen Sie in der Projektsicht “NewMacros” an.
3. Erfassen Sie dort ein VBA Skript wie folgt Sub SAP_Save() GuiXTLocation = “C:\Programme\SAP\Frontend\sapgui\guixt.exe “ Path = GuiXTLocation + GuiXTInputString
Shell Pathname:=Path, WindowStyle:=vbHide
MsgBox “Dokument in SAP-System gesichert”
End Sub Erläuterungen:
4. In MS Word klicken Sie nun auf Extras->Anpassen
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
6. Der neue Button erscheint mit seinem technischen Namen in der Symbolleiste. :
7. Mit der rechten Maustaste (während “Anpassen” aktiv ist
8. Nach Geschmack ein zusätzliches Symbol auswählen.
9. Bei Klick auf den neuen Butten wird das VBA Skript ausgeführt. Es startet das Input Skript “upload.txt”.
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.
11. Trace-Ausgabe des InputSkript “upload.txt”. Als Dateiname wurde aus Word heraus der Inhalt von “ActiveDocument.Fullname” übergeben.
|