COM Forwarding

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.

Modul "vtccom"

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. 

Sicherheit

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.

  • Wird der Zugriff erlaubt, wird das Script ausgeführt und die Erlaubnis auf dem Client gespeichert. Bei zukünftigen Aufrufen desselben COM Servers erscheint die Abfrage nicht mehr.
  • Wird der Zugriff nicht erlaubt, bricht die Ausführung ab, ohne dass eine Meldung erscheint. Bei wiederholtem Aufruf erscheint die Meldung erneut.

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.

Netherlands

United Kingdom