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?»
Aktualisiert: 19.08.2024
|
Artikel erneuert und angepasst an Version 6.7.0.12
Scripts in Vertec können als Menüpunkte, als Eventscripts oder als Module registriert werden.
Hier in diesem Artikel geht es um das Registrieren von Scripts als Menüpunkte. Das Registrieren von Scripts auf Events oder Scripts als Module finden Sie in den separaten Artikeln.
Klicken Sie unter Einstellungen > Berichte & Scripts mit der rechten Maustaste auf Scripts und wählen Sie Neu > Scripteintrag.
Aktivieren Sie die Checkbox In Vertec Menüs anzeigen:
In Vertec Versionen vor 6.7.0.12 gibt es diese Checkbox noch nicht. Lesen Sie in diesem Fall einfach weiter.
Bezeichnung
Unter diesem Namen erscheint das Script später im Menü Aktionen. Es sollte also darauf geachtet werden, dass der Name aussagekräftig ist, aber nicht allzu lang.
Plattform
Hier kann angegeben werden, um welche (Code-)Sprache es sich bei dem Script handelt:
Python: Das ist der Standard und bei neuen Scripteinträgen voreingestellt. Python Scripts sind cloudfähig und auch in der Cloud App und der Web App ausführbar. Ab Vertec 6.7.0.12 können nur noch Python Scripts als Menüpunkte registriert werden.
VBScript: Diese Einstellung ist verfügbar aus Rückwärtskompatibilitätsgründen. VBScripts in Vertec sind nur in der Desktop App lauffähig (On-Premises) und nicht cloudfähig. Wir empfehlen deshalb, nur noch Python Scripts zu verwenden.
In Vertec Versionen vor 6.6 gibt es dieses Feld noch nicht. In diesem Fall muss der Script Text mit einem # beginnen, wenn es sich um ein Python Script handelt.
Klassen
Geben Sie hier an, für welche Art von Objekten (Klassen) in Vertec das Script ausgeführt werden kann. Der Menüpunkt erscheint im Menü Aktionen (bzw. im Kontextmenü) nur dort, wofür es registriert wurde. Ist eine Klasse in der Auswahl nicht vorhanden, kann sie auch einfach von Hand ins Feld eingetippt werden. Beachten Sie dabei, dass Klassennamen mit grossem Anfangsbuchstaben geschrieben werden müssen.
Versionen vor 6.7.0.12: Gültig sind alle Klassen in Vertec, die von der Klasse UserEintrag erben. Scripts können also nicht auf Container (Ordner) registriert werden.
Versionen ab 6.7.0.12 bei Scripts nach neuer Art (siehe Abschnitt Änderungen ab Vertec Version 6.7.0.12): Gültig sind alle Klassen in Vertec, die von der Klasse Eintrag erben. Scripts können also auch auf Container (Ordner, Expression-Ordner, Link Container etc.) registriert werden.
Anzeigebedingung
Hier kann eine Anzeigebedingung als OCL Expression angegeben werden, mit welcher gesteuert werden kann, ob das Script im Menü Aktionen (bzw. im Kontextmenü) erscheint oder nicht. Durch Klick auf den Button mit den drei Punkten öffnet sich der Expression Editor. Das Resultat dieser Expression muss einen Ja/Nein Wert (Boolean) zurückliefern. Nur wenn die Bedingung erfüllt ist, erscheint das Script im Menü Aktionen.
Versionen vor 6.7.0.12
Die Bedingung gilt nur für Scripts auf einzelnen Objekten. Bei Scripts, die zur Anzeige auf Listen konfiguriert sind, wird die Bedingung nicht ausgewertet. Die OCL Expression bezieht sich auf das argobject. Beispiel:
verrechnet für ein Script, das nur auf Rechnungen erscheinen soll, die bereits verrechnet sind.
Versionen ab 6.7.0.12
Bei Scripts nach neuer Art (siehe Abschnitt Änderungen ab Vertec Version 6.7.0.12) bezieht sich die Anzeigebedingung auf die Liste der ausgewählten Objekte (selectedobjects). Im OCL Expression Editor entspricht self dieser Liste. Beispiele:
self->size = 1 für Scripts, die sich so verhalten sollen wie früher Scripts auf einzelnen Objekten. Erscheinen also nur, wenn nur genau ein Objekt ausgewählt ist.
self.oclAsType(Rechnung)->select(not verrechnet)->size = 0 für ein Rechnungsscript, das nur erscheinen sein soll, wenn alle ausgewählten Rechnungen bereits verrechnet sind.
self->first.objid = xxxx für Containerscripts, die nur auf einem ganz bestimmten Ordner angezeigt werden sollen. Alternativ auch mit Eintrag ID möglich.
self->collect(oclType.asstring)->asSet->size = 1 für ein Script, das nur erscheinen soll, wenn alle ausgewählten Objekte den gleichen Typ haben.
Auf einzelne Objekte anwendbar
Vertec Versionen vor 6.7.0.12. Setzen Sie hier ein Häkchen, falls das Script auf dem einzelnen Objekt (z.B. auf einer Rechnung) angewendet werden kann.
Bei Scripts, die vor 6.7.0.12 registriert wurden, befindet sich diese Checkbox nach dem Update auf 6.7.0.12 auf der Seite Weitere Info. Siehe dazu Abschnitt Änderungen ab Vertec Version 6.7.0.12.
Auf Listen (Container) anwendbar
Vertec Versionen vor 6.7.0.12. Setzen Sie hier ein Häkchen, falls das Script auf einer Liste von Objekten (z.B. auf einer Projektliste) angewendet werden kann.
Bei Scripts, die vor 6.7.0.12 registriert wurden, befindet sich diese Checkbox nach dem Update auf 6.7.0.12 auf der Seite Weitere Info. Siehe dazu Abschnitt Änderungen ab Vertec Version 6.7.0.12.
Erweiterte Berechtigungen
Sollen registrierte Scripts später auch von Usern mit eingeschränkten Benutzerrechten ausgeführt werden können, kann für die entsprechenden Codestellen eine erweiterte Berechtigung erteilt werden. Siehe dazu den Artikel Erweiterte Berechtigungen in Scripts.
Um das Script zu Testzwecken auszuführen, klicken Sie auf den Button Ausführen. Achten Sie darauf, dass der aktuelle Kontext stimmen muss, um ein Script so zu testen. Andernfalls müssen Sie den Test auf dem betreffenden Eintrag über den Menübutton Aktionen ausführen.
Script Editor...
Öffnet das Script, falls es sich um ein Python Script handelt, im Script Editor. Der Script Editor ist dann mit dem Scripteintrag verbunden. Das heisst: wird im Script Editor Code angepasst, ändert sich der Script Text im Scripteintrag ebenfalls.
Scripts via Menüpunkt ausführen
Scripts auf einzelnen Objekten
Scripts auf einzelnen Objekten können entweder über das Menü Aktionen:
Oder via Rechtsklick ausgeführt werden:
Scripts auf Listen
Scripts auf Listen können über das Menü Aktionen oder per Rechtsklick auf den Ordner ausgeführt werden:
Scripts per Rechtsklick auf selektierten Objekten ausführen
Wird ein solches Script wie ein herkömmliches Listenscript via Menü Aktionen oder per Rechtsklick auf den Container (Ordner) ausgeführt, werden alle Einträge der Liste übergeben:
Code in Scripts als Menüpunkte
Beim Script Code muss es sich um gültigen Python Code (oder veraltet auch VBScript) handeln. Aus dem Script heraus ist das ganze Vertec Objektmodell zugänglich.
Änderungen ab Vertec Version 6.7.0.12
Die Checkboxen Auf einzelne Objekte anwendbar oder Auf Listen (Container) anwendbar werden von der Hauptseite des Scripteintrags entfernt.
Ist eine oder beide Checkboxen gesetzt, werden sie auf der Seite Weitere Info angezeigt. In diesem Fall greift das bisherige Verhalten (Code vor Vertec 6.7.0.12).
Ist keine der Checkboxen gesetzt, verschwinden sie komplett von der Detailseite. Stattdessen wird die Checkbox In Vertec Menüs anzeigen auf der Hauptseite angezeigt. In diesem Fall greift das neue Verhalten (Code ab Vertec 6.7.0.12).
Code ab Vertec 6.7.0.12
Die Variable argobject steht im Script nicht zur Verfügung. Stattdessen gibt es die Variable selectedobjects. Diese enthält die Liste der für die Ausführung des Scripts gewählten Objekte:
Nutzt man die Funktion per Rechtsklick auf eines oder mehrere Elemente in der Liste, ist dies eine Liste mit den gewählten Objekten als Inhalt.
Ist nur ein Objekt ausgewählt oder wird das Script auf einem einzelnen Eintrag aufgerufen, ist es eine Liste mit einem Element.
Nutzt man die Funktion mit Rechtsklick auf einen Container (Ordner), ist es eine Liste der Containereinträge.
In diesem Fall gibt es die Variable currentobject, welche den Container (Ordner) enthält.
Ist das Script auf einen Container bzw. Ordner registriert (Feld Klassen), ist es eine Liste mit dem (oder den) ausgewählten Container(n).
for obj in selectedobjects:
...
Code vor Vertec 6.7.0.12
Die Variable argobject liefert das zurzeit aktuelle Objekt (den aktuellen Eintrag) in Vertec.
Bei Scripts, die auf einzelne Objekte anwendbar sind, ist dies ist der Eintrag, von welchem aus das Script ausgeführt wird.
projekt = argobject
Wird das Script per Rechtsklick auf einen einzelnen Eintrag in einer Liste ausgeführt, gibt es zusätzlich de Variable currentobject, welche den übergeordneten Container (Ordner) enthält.
Bei Scripts, die auf Listen (Container) anwendbar sind, enthält es den Container, auf welchem das Script ausgeführt wird. Die Einträge in der Liste sind über argobject.eintraege aufrufbar.
projektlist = argobject.eintraege
for projekt in projektlist:
...