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?»

Scripts auf Events

Verwendung von Scripts auf Events

Standard

|

Expert

CLOUD ABO

|

ON-PREMISES

Leistung & CRM

Budget & Teilprojekt

Fremdkosten

Ressourcenplanung

Business Intelligence

Erzeugt: 03.12.2007
Aktualisiert: 15.03.2024 | vtcapp.DisabledEvents() hinzugefügt.

Scripts können durch bestimmte Änderungen, sogenannte Events, gestartet werden. Sobald eine solche Änderung eintrifft, läuft das hinterlegte Script automatisch ab, ohne zusätzliche Interaktion des Users.

Ein Eventscript wird wie ein normales Script via Einstellungen > Berichte & Scripts > Scripts erzeugt: Wählen Sie mit der rechten Maustaste Neu > Scripteintrag.

Bezeichnung

Hier kann eine beliebige Bezeichnung eingegeben werden. Eventscript erscheinen nicht in einem Menü.

Plattform

Ab Version 6.6. Über dieses Feld wird angegeben, ob es sich um ein Python Script oder VBScript handelt. Beim Ausführen der Scripts wird gemäss Plattform-Einstellung unterschieden, ob VB oder Python ausgeführt wird.

Klassen

Hier darf bei Eventscripts nichts eingegeben werden, sonst würde das Event-Skript im entsprechenden Menü erscheinen, was nicht erwünscht ist.

Bedingung

Dieses Feld hat für Eventscripts keine Bedeutung. Es steuert lediglich die Sichtbarkeit von normalen Scripts im Menü.

Auf einzelne Objekte anwendbar / Auf Listen (Container) anwendbar
Wird bei Eventscripts nicht benötigt.
Eventscript für
Auf folgende Arten von Events können Scripts registriert werden:
  • Neu: Das Script wird gestartet, sobald ein Objekt der bezeichneten Klasse (siehe nachfolgende Tabelle) neu erzeugt wird.
  • Geändert: Das Script wird gestartet, sobald eine sich eine Änderung ergibt an einem Objekt der bezeichneten Klasse (siehe nachfolgende Tabelle) und einem bestimmten Feld (siehe weiter unten).
  • Login: Das Script wird gestartet, sobald sich ein Benutzer in Vertec anmeldet (argobject = eingeloggter Projektbearbeiter).
  • Löschen: Ein Unterschied zu den anderen Events ist, dass das Eventscript im Löschvorgang, aber direkt vor dem eigentlichen Löschen aufgerufen wird (damit der ursprüngliche Zustand mit allen Verbindungen noch besteht).

    Fehler aus Löschen-Scripts werden ins Log geschrieben, ansonsten aber ignoriert. Das Löschen wird dadurch nicht blockiert.
    Es ist nicht möglich, im Löschen Script das Löschen zu verhindern. Dies aus dem Grund, dass in einer Klassenhierarchie mehrere Löschscripts definiert werden können. In solchen Fällen könnte es passieren, dass ein Script Änderungen beim Löschen macht, und ein nachfolgendes Script das Löschen dann verhindert, was zu einem inkonsistenten Zustand führt.

  • Business-Logik: Diese Scripts laufen zu bestimmten, aus der Business-Logik gegebenen Zeitpunkten ab. Als erste Möglichkeit wurde der Business-Logik Event CalculateRate eingeführt. Damit kann kundenspezifische Logik zur Berechnung der Ansätze einer Leistung ausgeführt werden. Dieser Event, in diesem Fall das CalculateRate, wird als Feldname eingetragen.

    Das Script wird wie bei Eventscripts üblich erst aufgerufen, wenn alle andere Logik abgelaufen ist. Im Falle von CalculateRate bedeutet dies, dass die eingebaute Tariflogik mit Berücksichtigung von Tariftabelle etc. zuerst abläuft und den Satz wie bisher setzt. Erst nachher kommt das Eventscript und kann den von der eingebauten Business-Logik berechneten Wert überschreiben.

    Die betroffene Leistung ist im Eventscript wie üblich als argobject verfügbar.
Klassen

Gibt an, auf welche Klassen das Script reagiert. Bei Eventscripts der Art Login muss keine Klasse gesetzt werden.

Felder

Hier kann ein einzelnes Feld auf der Klasse angegeben werden, auf dessen Änderung reagiert werden soll. Die Angabe eines Feldes ist nur sinnvoll bei Eventscripts der Art Geändert.

Falls auf mehrere Felder reagiert werden soll, können diese mit Komma getrennt nacheinander angegeben werden. Es können auch Zusatzfelder angegeben werden, indem einfach der Name des Zusatzfeldes angegeben wird.

Wird kein Feld angegeben, reagiert das Script auf alle Felder, also auf alle Änderungen an dieser Klasse. Das sollte auf keinen Fall gemacht werden, da dies zu massivem Performanceverlust führen kann.

Auf derived Attributes (berechneten Feldern) können keine Eventscripts registriert werden.

Event Klasse bezeichnen Felder bezeichnen
Neu ja nein
Geändert ja ja
Login nein nein
Löschen ja nein
Erweiterte Berechtigungen

Einem Scripteintrag können erweiterte Berechtigungen erteilt werden.

Argumente für Member und Event bei Eventscripts

Ein Eventscript sollte wissen, durch welchen Event auf welchem Member es ausgelöst wurde. Dies macht es einfacher, verschiedene Events mit demselben Script zu behandeln. Dafür steht die globale Variable args zur Verfügung:

  • args.eventmember enthält den Namen des auslösenden members
  • args.eventtype enthält die Art des Events: 'change', 'create', 'login', '' (Leerstring für delete)

Beispiel:

if args.eventmember == 'aktiv':
    argobject.bemerkung = 'Aktiv wurde geändert'

if args.eventmember == 'projektleiter':
    argobject.bemerkung = 'PL wurde geändert'

UI überprüfen, falls Dialoge angezeigt werden

Werden in einem Eventscript Dialoge angezeigt, muss immer abgefragt werden, ob der Client fähig ist, benutzerspezifische Dialoge anzuzeigen, also ob es sich beim Client um eine der full-featured Apps handelt.

Dies geschieht mittels OCL Operator .hasGui, welcher True oder False zurückgibt.

Es ist wichtig, dass keine Dialoge angezeigt werden, wenn dies auf dem verwendeten Client nicht möglich ist, da dies Vertec blockieren oder zu ungewünschten Resultaten führen kann: Eine msgbox() beispielsweise gibt OK zurück, wenn der Dialog nicht angezeigt werden kann. Falls es auch noch einen Abbrechen Button hätte und im Code davon ausgegangen wird, dass ein User aktiv OK geklickt hat, werden vielleicht Daten verändert, gelöscht etc., ohne dass dies gewollt ist.

Scripts auf Events ausschalten

Beachten Sie bei der Verwendung von Scripts auf Events folgende Hinweise:

  • Komplizierte Berechnungen bei Datenänderungen können die Performance von Vertec verlangsamen.
  • Endlose Scripts, die sich immer wieder selbst aufrufen, können Vertec zum abstürzen bringen.
  • Scripts, welche in die Funktionalität von Vertec eingreifen (z.B. das Setzen eines Stundensatzes auf einer neu erzeugten Leistung), können zu einem undurchsichtigen Verhalten von Vertec führen.

Aus diesen Gründen gibt es die Möglichkeit, Vertec mit einem Parameter /noevents zu starten. Dadurch werden im Vertec keine Eventscripts mehr ausgeführt.

Um die Ausführung von Eventscripts innerhalb von anderen Scripts temporär zu unterbinden, gibt es die Methode vtcapp.DisabledEvents().

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