Winword, XML-RPC und Avanti-cl

Volker Bachschneider V.Bachschneider at t-online.de
Mo Mai 20 11:49:04 CEST 2002


Liebe Liste,

in Anlage:
Eine technische Demo wie man Avanti-cl
via XML-RPC direkt aus Office-Anwendungen heraus nutzt.

Besonderer Vorteil der gezeigten Lösung:
Python ist ausschließlich auf dem Server zu installieren! Für die
Arbeitsplätze reicht eine kleine DLL-Sammlung, die in drei Minuten
aufgespielt ist.

Achtung Avanti-cl und alle hier gezeigten Scripts sind Beta!
Insbesondere mit dem Befehl xport param xxx sollte man vorsichtig sein.
Es dürfen nach meiner Erfahrung keine ESC-Sequenzen ausgegeben werden.

Inhalt des Zip-Archivs:
ein(e) minimalistische(r)
Avanti-cl XML-RPC Server (Python)
Avanti-cl XML-RPC Client (Python)
Winword-Doc mit VBS-Makro´s, Symbolleiste, Userform um
direkt Avanti-cl-Jobs  in Winword/Office auszuführen

Außerdem zur Demonstration:
Avanti-cl SOAP Server (Python)
Avanti-cl SOAP Client (Python)

Die Aufrufe von Avanti-cl funktionieren Client-Server, also auch über das
Intranet / Internet
Die Installation ist m.E. unkompliziert.

Was man noch braucht / sich beschaffen muß:
Für den Server / die Pythonscripts:
ein halbwegs aktuelles Python mit xmlrpclib und SimpleXMLRPCServer.py,
sowie den win32-Erweiterungen von Mark Hammond
(Am besten Activestate-Python 2.2.xxx von www.activestate.com  ca. 14MB)

Wer sich die SOAP-Scripts ansehen will braucht die soaplib
(gleiche Adresse wie xmlrpclib: www.pythonware.com )
Die soaplib läßt sich aber auch gut mit pyppm (dem Paketmanager von
Activestate)
online installieren.

Natürlich Avanti-cl

Für die Office-Clients:
PocketXML-RPC von www.pocketsoap.com
das ist eine Sammlung von DLL´s die XML-RPC via COM anbieten.
Dort gibt des auch SOAP-DLL´s, die ich aber nicht zur Zusammenarbeit mit der
soaplib überreden konnte.
Daher wird im folgenden nur die XML-RPC-Strecke weiterverfolgt.

Office:
Ein Winword das Visual-Basic-Script versteht und den Visual-Basic Editor
(unter Extras/Makro in Winword eingebunden)
Meine Testumgebung ist ein Office 2000

Hat man Avanti-cl und Python funktionstüchtig installiert kopiert man
avcl.py, avclxmlrpcclient.py, und avclxmlrpcserver.py in das Verzeichnis in
dem auch Avanti-cl liegt.

Am besten testet man zunächst localhost

avclxmlrpcserver.py starten (Doppelklick)
Jetzt sollte eine Konsole aufgehen in der steht:
Avanti-cl XMLRPC-Server running at: localhost:8002
Wenn nicht muß man sich leider doch mit Python zu beschäftigen :-(
Das Serverscript hat 35 Zeilen auf Zeile 25 kann man den Host auf Zeile 26
den Port einstellen

avclxmlrpcclient.py sollte man edieren:
Das Script hat nur 8 Zeilen (wovon 2 noch auskommentiert sind).
In der dritten Zeile ist der Pfad @ c:\\Info\\usr .. anzupassen
Ggf. auch hier Host und Port einstellen (Zeile 5)

Ein Doppelklick auf avclxmlrpcclient.py sollte kurz eine zweite Konsole
aufblitzen lassen und
einen Registerauszug einblenden.

PocketXMLRPC kommt als .exe mit eigener Installationsroutine
Installieren, Rechner neu starten, avclxmlrpcserv.py start

avclxmlrpc.doc öffnen (Makros aktivieren!)
Normalerweise müßte in den Symbolleisten ein Eintrag Avanticl qrix zu sehen
sein. Damit wir ein Userform geöffnet, mit dem man einen Registerauszug
(Verfasser) anfordern kann, der an Cursorposition eingefügt wird.

Alternativ unter Extras/Makro/Makros qrix ausführen.

Auch hier sollte mit dem Visual-Basic Editor der Job angepasst werden. Er
findet sich im Userform in der Routine execJob() Nach dem Öffnen des
Userform im Visual-Basic Editor in die Code-Ansicht umstellen (F7)

Die ganze technische Demo ist aus Gründen der Anschaulichkeit so einfach wie
möglich gehalten, deshalb insbesondere der Server nicht besonders schnell.
Im Web finden sich aber auch Beispiele für XML-RPC mit Medusa, oder als
Rundumlösung mit Zope. Für Perl und Ruby gibt es nach meiner Kenntis auch
entsprechende Bibliotheken.

Guten Start in die neue Woche

MfG

Volker Bachschneider
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : avcl.zip
Dateityp    : application/x-zip-compressed
Dateigröße  : 12748 bytes
Beschreibung: nicht verfügbar
URL         : <http://bibservices.biblio.etc.tu-bs.de/pipermail/allegro/attachments/20020520/28a1d607/attachment.bin>


Mehr Informationen über die Mailingliste Allegro