Support vertec.com

Grundlagen COM

Grundlagen für das Arbeiten mit COM / ActiveX

Standard

|

Expert

CLOUD ABO

|

ON-PREMISES

Leistung & CRM

Budget & Teilprojekt

Fremdkosten

Ressourcenplanung

Business Intelligence

Erzeugt: 26.06.2003
Aktualisiert: 27.04.2023 | Artikel umgeschrieben

Vertec kann auf Windows über eine COM-Schnittstelle (oder ActiveX-Schnittstelle) angesprochen werden. Die Vertec Desktop App und die Vertec Cloud App dienen den entsprechenden Applikationen dafür als "out-of-process" COM Server.

Die Beschreibung der zur Verfügung stehenden Interfaces finden Sie im Artikel COM Interfaces.

Vertec Type Library

Sowohl Vertec.Desktop.exe als auch Vertec.Cloud.exe enthalten die Vertec Type Library. Diese kann in der externen Applikation eingebunden werden, um Zugriff auf den Objektkatalog, code completion und compile-time type checking zu erhalten.

Der Unterschied von Desktop App und Cloud App liegt darin, dass die Cloud App lokal einen COM Server anbietet, obwohl gar keine Business-Logik vorhanden ist. Dies wird mit einem Proxy zum eigentlichen COM Server, der auf dem Server in der Vertec Session läuft, simuliert. Der Verkehr läuft dabei über die normale Datenleitung (und ist darum nicht geeignet für Datenmigrationen bzw. grössere Datenmengen).

Für den Einsatz der COM Schnittstelle ist die Einbindung der Type Library nicht nötig bzw. im Falle der Cloud App auch nicht möglich, da keine Businesslogik vorhanden ist und die Verbindung zum COM Server mit einem Proxy gemacht wird.

Auch die Desktop App kann ohne Anbindung an die Type Library angesprochen werden.

Wir empfehlen immer die Verwendung ohne Type Library, da diese Anwendung mit der Desktop App und der Cloud App bzw. auf Windows sowohl im Cloud Abo als auch On-Premises eingesetzt werden kann.

Das bedeutet, dass nicht direkt auf die Typen wie z.B. IVtcObject, App etc. zugegriffen werden kann, da das System diese ohne Type Library nicht kennt. Die Deklaration von Objekten, Objektlisten, Session etc. erfolgt deshalb auf Object. Statt:

Dim Projektbearbeiter as IVtcObject

Schreibt man also:

Dim Projektbearbeiter as Object

Die entsprechenden COM Interfaces sind im laufenden Betrieb dann vorhanden, sobald das Objekt geladen wird.

Unterschiedliche Interface Namen in Desktop App und Cloud App

Da der COM-Server bei der Desktop App direkt, bei der Cloud App via Proxy verfügbar ist, ergeben sich unterschiedliche Interface Namen. Die Verwendung ist jedoch identisch.

Desktop App Cloud App
App ComCoClass
IVtcObject VtcObjectProxy
IVtcObjectList VtcObjectListProxy
ITimBearbeiter TimBearbeiterProxy
...  

Die detaillierte Beschreibung finden Sie im Artikel COM Interfaces.

Übergabe von Variants an den COM Proxy

In Funktionen, welche Vertec Objekte als Parameter akzeptieren, können keine als Variant deklarierte Objekte übergeben werden, sonst erscheint die Meldung Ungültiger Prozeduraufruf oder ungültiges Argument.

Sind die Vertec Objekte als Object deklariert, funktioniert alles problemlos.

Bitte wählen Sie Ihren Standort