Vertec AI Chatbot

Der Chatbot hilft Ihnen bei Fragen rund um das Produkt und die Anpassbarkeit der Software. Wie bei allen AI-generierten Daten sollten die Antworten bei kritischen Informationen verifiziert werden. Nehmen Sie dafür gerne Kontakt mit uns auf. Weitere Informationen zur Verarbeitung der Chat-Daten bieten wir auf der Datenschutzseite.

Die besten Antworten liefert der Chatbot, wenn Ihr Input möglichst viele Informationen enthält. Zum Beispiel:

«Welche Apps stehen im Vertec Cloud Abo zur Verfügung?»

COM Forwarding

COM Schnittstellen cloudfähig machen mit COM Forwarding

Standard

|

Expert

CLOUD ABO

|

ON-PREMISES

Leistung & CRM

Budget & Teilprojekt

Fremdkosten

Ressourcenplanung

Business Intelligence

Erstellt: 15.03.2024
Aktualisiert: 15.03.2024 | COM Forwarding ab Vertec 6.7.0.7

Einige Vertec Schnittstellen zu Drittprogrammen basieren auf einer COM Schnittstelle zum Fremdsystem. Da die Verbindung jedoch nur lokal, d.h. auf demselben Rechner, funktioniert, sind diese Schnittstellen nicht cloudfähig und können nur mit der Vertec Desktop App und demnach nur On-Premises verwendet werden.

Mit dem COM Forwarding führen wir mit Vertec 6.7.0.7 ein Proxy-System ein, mit welchem auch aus der Cloud App auf die COM Objekte des Fremdsystems zugegriffen werden kann.

So können im serverseitigen Python-Code COM Forwarding Proxy Objekte verwendet werden, deren Aktionen dann an die Cloud App weitergeleitet und dort auf die eigentlichen COM Objekte des Drittprogramms angewendet werden.

So läuft das COM Forwarding ab:

  • Proxy Objekte in Python (Klasse ComFwProxy) fangen Aufrufe (Methoden, Attribute get/set) ab und verpacken sie in Messages.
  • Adapter Objekte führen die Aktion in der Cloud App auf dem "echten" COM Interface aus.
  • Es gibt ein Message / Response Pattern zwischen Proxy Objekt und Adapter Objekt.
  • Der Einstieg erfolgt via Python Funktion vtccom.createobject(identifier).

Funktionsumfang

Die Implementierung der COM Forwarding Proxy Objekte lehnt sich an die dynamischen COM Objekte aus win32com.client.dynamic an. Ein COM Forwarding Proxy Objekt implementiert jedoch nur die folgenden Python Standard Methoden:

  • __getattr__ für Lesezugriffe auf COM Properties und Bereitstellung von Methoden.
  • __setattr__ für Schreibzugriffe auf COM Properties.
  • __repr__ Stringdarstellung des Proxy Objekts, zu Debugging-Zwecken. Enthält den identifier.
  • __del__ wird von Python aufgerufen, sobald das Objekt nicht mehr referenziert wird.

Modul vtccom

Die Funktionalitäten für das COM Forwarding werden im Modul vtccom mitgeliefert. Dieses ist auch als Stub File vorhanden.

Bestehende, nicht cloudfähige Schnittstellen umbauen

Schnittstellen, welche COM Forwarding verwenden, funktionieren auch in der Desktop App unverändert.

Falls Sie in Vertec (andere als die standardmässig mitgelieferten) Schnittstellen mit COM Zugriffen auf Drittprogramme verwenden und diese an COM Forwarding anpassen möchten, müssen Sie folgende Änderungen vornehmen:

vtccom.createobject statt win32com.Dispatch

Die Aufrufe der COM Objekte erfolgen mittels vtccom.createobject(identifier) anstelle von win32com.Dispatch.

Dafür muss das Modul vtccom importiert und die Aufrufe wie folgt geändert werden:

Neu Bisher
import vtccom
self.invoice = vtccom.createobject('ThirdPartyAPI.Invoice')
from win32com.client import Dispatch
self.invoice = Dispatch('ThirdPartyAPI.Invoice')
import vtccom
word = vtccom.createobject("Word.Application")
word.Visible = True
doc = word.Documents.Add()
doc.SaveAs(r"C:\temp\Test Document.docx")
from win32com.client import Dispatch
Word = Dispatch('Word.Application')
Word.Visible = True
doc = Word.Documents.Add()
doc.SaveAs(r"C:\temp\Test Document.docx")

Für die Sicherstellung der Rückwärtskompatibilität liefert vtccom.createobject() in der Desktop App das originale COM Objekt zurück.

Nicht zugelassene Module ausbauen

Damit die Schnittstellen mit COM Forwarding auch mit Restrict Scripting funktionieren, müssen Aufrufe von Modulen wie sys oder pywintypes ausgebaut werden. Es dürfen nur Module verwendet werden, die auf der Whitelist stehen.

Funktionsumfang der COM Objekte beachten

Die Vertec COM Forwarding Proxy Objekte implementieren nur eine begrenzte Anzahl von Methoden (siehe oben). Werden Schnittstellen an COM Forwarding angepasst, können nur noch die entsprechenden Methoden verwendet werden.

Es kann auch sein, dass die Verwendung der Vertec COM Forwarding Proxy Objekte nicht mit allen via win32com.Dispatch verfügbaren COM Schnittstellen möglich ist.

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 uns mitgelieferten Buchhaltungsschnittstellen mit COM Forwarding sind bereits hinterlegt. Bei ihnen kommt diese Abfrage also auch beim erstmaligen Aufruf nicht.

Kontakt

Montag bis Freitag
9-12 und 14-17 Uhr

Vertec 30 Tage kostenlos ausprobieren

Lernen Sie unsere Software mit allen Kernfunktionen kennen

Jetzt testen
Bitte wählen Sie Ihren Standort