Grundlagen COM

Über die COM-Schnittstelle (oder ActiveX-Schnittstelle) kann Vertec von aussen ganz ähnlich ferngesteuert werden wie über VBScript. Tatsächlich benutzt das Vertec Script die genau gleiche COM-Schnittstelle für die Vertec Objekte. In den folgenden Beispielen wird von MS-Excel aus auf Vertec zugegriffen, genauso gut könnte der Zugriff aber von jedem Programmiersystem aus erfolgen.

Vertec Type Library

Die Vertec Applikation (Vertec.exe) kann von anderen Applikationen aus als "out-of-process" COM Server verwendet werden. Die Type Library dazu ist in Vertec.exe enthalten. Dazu muss als erstes die Vertec Type Library referenziert werden. Dies geschieht im Visual Basic Editor über das Menü Extras > Verweise. Es öffnet sich folgendes Fenster (je nach Windows sieht das Fenster ev. etwas anders aus):

Die nicht markierten Einträge sind alphabetisch sortiert. Suchen Sie den Eintrag Vertec Typelibrary und markieren Sie ihn. Wenn Sie das Fenster erneut öffnen, sollte der Eintrag Vertec Typelibrary wie hier dargestellt erscheinen.

Die Vertec.App Komponente kann mit oder ohne Type-Library Unterstützung verwendet werden. Wir empfehlen jedoch, die obigen Schritte vorzunehmen, da dann je nach Entwicklungsumgebung (z.B. VB) automatische Code-Completion und compile-time type checking zur Verfügung stehen.

Objektkatalog

Für einen Überblick über die verfügbaren Objekte (genauer: Interfaces) können Sie im VB-Editor den Objektkatalog über Ansicht > Objektkatalog aufrufen. Wählen Sie anschliessend in der Combo-Box oben Vertec, und es erscheint folgende Ansicht:

Hier im Beispiel werden die Methoden (als Symbol die grünen Würfel) und Eigenschaften (als Symbol die Hand) des IVtcObject dargestellt.

Eine genaue Beschreibung der wichtigsten Klassen siehe im Kapitel COM Interfaces.

Anpassungen COM für Kompatibilität mit .NET (Cloud-App)

Im Rahmen der Unterstützung der COM Schnittstelle in der Cloud App musste für Vertec 6.0 die COM Typelibrary geringfügig angepasst werden, damit diese mit dem .NET COM Server kompatibel ist.

Die Cloud App bietet lokal einen COM Server an, obwohl gar keine Business-Logik vorhanden ist. Dies wird nun 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 eher nicht geeignet für Datenmigration und schwere Excel-Reports). Wegen dieser Neuimplementation mussten gewisse Dinge an der Type-Library geändert werden.

Arbeitet man mit Microsoft Office und bindet die Type-Library ein ("Verweise"), siehe oben, so funktioniert alles wie bisher. Bindet man keine Type-Library ein, so ergibt sich ein wichtiger Unterschied:

Setter-Methoden

Das Schreiben eines Members über

projekt.Member("code") = "WINCO"

wirft einen Fehler.

Darum wurden neue Methoden eingeführt, welche in allen Apps und unabhängig von der Type-Library laufen:

projekt.SetMember "code", "WINCO"

Es gibt im Ganzen drei solche neuen Setter-Methoden, diese sind:

  • SetMember
  • SetZusatzfeld
  • SetZusatzfeldAsVariant

Es geht dabei nur um den externen Zugriff via COM und daher nur um die Cloud App – nicht um eingebaute Scripts etc. Potenziell davon betroffen sind auch Excel-Berichte, da diese ebenfalls über COM auf Vertec zugreifen. Da diese aber selten Members schreiben und via Cloud App auch keine Migrationen gemacht werden (sollten), wird das in den allermeisten Fällen keine Auswirkungen haben.

TypeName()

Eine weitere Änderung gibt es bei der Funktion TypeName(). Diese gibt in der Cloud App einen anderen Namen zurück als bisher. Reports, welche die Funktion TypeName() verwenden, müssen angepasst werden.

Die entsprechenden Namen für die COM Interfaces im Proxy (Cloud App) sind:

Resultat bisherResultat neu
App ComCoClass
IVtcObject VtcObjectProxy
IVtcObjectList VtcObjectListProxy
ITimBearbeiter TimBearbeiterProxy
 

Mit Ausnahme von App wird der ClassName + "Proxy"  zurückgegeben.


26.06.2003 | 18.03.2016: Vertec 6.0: Anpassungen COM für Kompatibilität mit .NET (Cloud-App) hinzugefügt.
Produktlinien: Diverse
Module: Leistung & CRM