Mit COM Forwarding Schnittstellen zu Drittprogrammen via COM betreiben
Damit via COM auch mit der Vertec Cloud App Schnittstellen zu lokalen Drittprogrammen betrieben werden können, gibt es ab Vertec 6.7.0.7 das COM Forwarding, mit welchem auf die COM Objekte des Fremdsystems zugegriffen werden kann.
So können im serverseitigen Python-Code COM Forwarding Objekte verwendet werden, deren Aktionen dann an die Cloud App weitergeleitet und dort auf die eigentlichen COM Objekte des Drittprogramms angewendet werden.
Schnittstellen, die via COM mit früheren Vertec Versionen betrieben wurden, konnten nur mit der Vertec Desktop App und demnach nur On-Premises verwendet werden. Diese Schnittstellen sollten im Hinblick auf die Abkündigung der Vertec Desktop App mit Vertec 7.1 auf COM Forwarding umgestellt werden. Die Angaben dazu finden Sie im Artikel COM umstellen auf COM Proxy und COM Forwarding.
Die Funktionalitäten für das COM Forwarding werden im Vertec Python Modul vtccom mitgeliefert. Dieses ist auch als Stub File vorhanden.
Die Funktion vtccom.createobject(<progid>) liefert ein COM Objekt, welches in Python verwendet werden kann.
import vtccom word = vtccom.createobject("Word.Application") word.Visible = True doc = word.Documents.Add() doc.SaveAs(r"C:\temp\Test Document.docx")
Damit die Schnittstellen mit COM Forwarding auch mit Restrict Scripting funktionieren, dürfen im Script nur Module verwendet werden, die auf der Whitelist stehen.
Je nach Implementierung des verwendeten Drittproduktes (COM Server) kann es mit COM Forwarding zu Inkompatibilitäten kommen. In diesen Fällen muss spezifisch nach einer alternativen Lösung gesucht werden.
Um zu vermeiden, dass ein Script mit COM Forwarding auf dem Server "unbemerkt" Code in der Cloud App ausführt, wird der Benutzer des Clients einmalig um Erlaubnis gefragt, wenn ein COM Server auf dem Client aufgerufen wird. Diese Erlaubnis wird für zukünftige Aufrufe auf dem Client gespeichert.
Beim Zugriff auf einen COM Server via COM Forwarding (Aufruf von vtccom.createobject()) erscheint in der Cloud App ein Dialog, dass ein Server Script versucht, auf dieses Objekt auf dem Client zuzugreifen.
Die von Vertec mitgelieferten Buchhaltungsschnittstellen mit COM Forwarding sind bereits hinterlegt. Bei ihnen kommt diese Abfrage also auch beim erstmaligen Aufruf nicht.
Gespeichert werden die zugelassenen COM Server im Registry Key HKEY_CURRENT_USER\SOFTWARE\Vertec\ComObjectWhitelist.