VBScripts in Vertec

Vertec benützt die Microsoft Scripting Engine (VBScript), um benutzerdefinierte Scripts ausführen zu können.

Aus einem Vertec Script ist wiederum das ganze Vertec Objektmodell zugänglich. Dies geschieht wie der Zugriff aus Word über eine (interne) COM / ActiveX Schnittstelle.

Ein Script kann entweder über den Vertec Script-Editor oder in jedem Text-Editoren (z.B. Notepad) erstellt werden. Mehr Informationen über VBScript finden Sie unter: Programming with VBScript oder unter: VBScript Language Reference auf der Microsoft Homepage.

Scripts, die immer wieder verwendet werden, können im Vertec auch registriert werden. Sie sind dann über den Menüpunkt Aktionen oder im Kontextmenü (über die rechte Maustaste) abrufbar. Siehe dazu den Artikel über das Registrieren von Scripts.

Der Script-Editor

Scripts erstellen oder laden

Um ein Script zu erstellen oder auszuführen, klicken Sie im Menü Einstellungen auf VB Script Editor.

Wenn Sie eine Script-Datei laden möchten, klicken Sie auf den Button Datei öffnen... und wählen Sie das gewünschte Script aus. Sie können eine Script-Datei auch per Drag-and-Drop in den Editor ziehen. Der Text erscheint dann im grossen Feld Script Code.

Oder Sie wählen eines der Scripts aus der Script-Sammlung aus. Kopieren Sie den Beispieltext einfach in das Feld Script Code im Script-Editor.

Sie können das Script auch direkt im Feld Script Code erstellen. Die Syntax Hervorhebung für VB Code hilft Ihnen, Übersicht über Ihren Code zu behalten.

Neben den üblichen Kürzeln für Kopieren (Ctrl-C) und Einfügen (Ctrl-V) sind die folgenden Tastaturkürzel im neuen Scripteditor nützlich:

  • Markieren und Tab: markierten Block einrücken
  • Markieren und Shift-Tab: Einrückung des markierten Blocks verkleinern
  • Ctrl-Z oder ALT-Backspace: Undo (letzte Textänderung rückgängig machen)
  • Shift-Ctrl-Z oder Shift-ALT-Backspace: Redo (letztes Undo rückgängig machen)
  • Shift-Ctrl-B: Paarweise Klammern suchen

Scripts ausführen

Um das Script direkt im Script Editor auszuführen, klicken Sie auf den Button Ausführen. Wenn das Script fertig ausgeführt wurde, erscheint in der grauen, zurückgesetzten Fläche im unteren Teil des Fensters ein "OK". Dort erscheinen auch die Fehlermeldungen, falls das Script nicht vollständig ausgeführt werden konnte. Bei Fehlern springt der Cursor zur Fehlerstelle im Script.

Wenn Sie ein Script registriert haben, können Sie es ausführen, indem Sie es auf dem entsprechenden Objekt über den Menüpunkt Aktionen aufrufen.

Scripts speichern

Möchten Sie ein Script als Datei speichern, klicken Sie auf den Button Datei speichern... und speichern Sie das Script an einem Ort Ihrer Wahl.

Objekte

Das "vertec" Objekt (IVtcSession)

Der Zugriff auf das Vertec Objektsystem aus einem Script erfolgt immer über die globale Variable vertec. Diese Variable ist vom Objekttyp IVtcSession und kennt die folgenden wichtigsten Methoden (es sind nur die wichtigsten aufgeführt, die vollständige Liste findet sich im Artikel COM Interfaces):

EigenschaftBeschreibung
eval(expression as string) Evaluiert die angegebene OCL-Expression und gibt eine Liste von Objekten zurück.
argobject gibt das momentan aktuelle Objekt in Vertec zurück.
createobject(Klassentyp) erzeugt ein neues Objekt in Vertec vom angegebenen Klassentyp.

    Das Listen-Objekt (IVtcObjectList)

    In den meisten Skripts wird man eine Liste von Objekten (z.B. alle aktiven Projekte) bearbeiten. Das Listen-Objekt ist vom Objekttyp IVtcObjektList und kennt folgende wichtige Methoden und Eigenschaften:

    EigenschaftBeschreibung
    count gibt die totale Anzahl von Objekten in der Liste zurück.
    objects(i) gibt das i-te Objekt zurück. Achtung: die Liste beginnt bei 0 und geht bis count-1.

      Das Einzel-Objekt (IVtcObject)

      Einzelne Objekte werden im Objekttyp IVtcObjekt abgelegt. Auf ein einzelnes Objekt kommen Sie entweder über vertec.argobject, indem Sie bei einer Liste von Objekten eines herauspicken (über objects(i)) oder als Resultat von eval("OCL Expression").Das Einzel-Objekt kennt folgende wichtige Methoden und Eigenschaften:

      EigenschaftBeschreibung
      eval(expression as string) Evaluiert die angegebene OCL-Expression, ausgehend vom einzelnen Objekt.
      member(name as string)

      Gibt den Inhalt des Members mit dem angegebenen Namen zurück. So ergibt beispielsweise <MyProjekt>.member("code") den Projektcode zurück.

      Members können auch geschrieben werden:
      member("membernamen") = "Ihr Text"
      .

      classname gibt den Klassennamen des Objektes zurück, z.B. Projekt oder Projektbearbeiter.

        Ansonsten stehen Ihnen alle Funktionen des VBScript zur Verfügung.

        Beispiel

        Damit Sie einen schnellen Einstieg finden, hier ein Skript-Beispiel. Dieses erzeugt eine neue Projektphase mit dem Code des aktuellen Jahres für alle aktiven Projekte, welche noch keine solche Phase haben:

        option explicit

        dim projektliste
        dim projekt
        dim phasenliste
        dim phase
        dim i

        '---hole alle aktiven Projekte
        set projektliste = vertec.eval("projekt->select(aktiv)")

        '---Fahre nun durch alle aktiven Projekte durch
        for i = 0 to projektliste.count - 1
        set projekt = projektliste.objects(i)
        '---Hole die Phase mit Code des aktuellen Jahres, ausgehend vom aktiven Projekt.
        set phasenliste = projekt.eval("phasen->select (code='" & year(date) & "')")
        '---Wenn noch keine Phase mit dem gewünschten Code vorhanden, neue erzeugen.
        if phasenliste.count = 0 then
        set phase = vertec.createobject("Projektphase")
        '---Setze das Projekt.
        phase.member("projekt") = projekt
        phase.member("code") = year(date)
        end if
        next

        Es empfiehlt sich, Option Explicit zu verwenden, da so keine Variablen im Skript benutzt werden können, die vorher nicht definiert wurden.

        Beachten Sie ausserdem die Verwendung der verschiedenen Arten von Anführungszeichen. Die doppelten Anführungszeichen bezeichnen Stringwerte in VBScript. Das Argument der Funktion eval muss daher in doppelten Anführungszeichen stehen. Innerhalb der angegebenen OCL-Expression gilt aber die OCL Konvention. Diese verlangt einfache Anführungszeichen für Stringwerte.


        20.06.2003 | 28.10.2016: An Vertec 6.0 angepasst.
        Produktlinien: Standard, Expert
        Module: Leistung & CRM