Einführung / FirstSpirit ServerManager / Auftragsplanung / Serverbezogene Aktionen / Skript ausführen
Skript ausführen
Inhaltsverzeichnis |
Über diese Schnittstelle können Skripte in FirstSpirit ausgeführt werden und Klassen, die aus (kundenspezifischen) Modulen stammen (sogenannte „Public-Executables“).
Was sind Public-Executables?
Public-Executables sind ausführbare Implementierungen, die auf dem FirstSpirit-Server über ein Modul installiert und über die Auftragsverwaltung ausgeführt werden.
Weiterführende Dokumentation siehe Public (→Entwicklerhandbuch für Komponenten).
Skript (Dialog)
Name
In diesem Feld kann ein Name für das Skript vergeben werden.
Texteingabefeld
In diesem Feld ist der Skript-Code (bzw. eine ausführbare Klasse) einzutragen, der in dieser Aktion ausgeführt werden soll.
Für ausführbare Klassen gilt: Nach der Installation des Moduls stehen diese ausführbaren Implementierungen auf dem FirstSpirit-Server zur Verfügung und können an dieser Stelle über ein Auftrags-Skript aufgerufen werden.
Public-Executables können über ihren Namen oder den Klassennamen angesprochen werden:
Beispiel: Die Komponentendefinition im Modul-Deskriptor lautet:
<public>
<name>DeploymentExecutor</name>
<class>de.espirit.module.DeploymentExecutor</class>
</public>
Dann wird die ausführbare Klasse hier über den Namen:
#!executable-class
DeploymentExecutor
oder alternativ den Klassennamen referenziert:
#!executable-class
de.espirit.module.DeploymentExecutor
Schaltfläche Eigenschaften
Per Klick auf die Schaltfläche Eigenschaften öffnet sich ein neuer Dialog, in dem die Eigenschaften dieses Skripts editiert werden können. Dies ist beispielsweise dann notwendig, wenn das Skript ändernde Operationen im Projekt durchführen soll (z. B. Objekte anlegen oder ändern).
Skript-Eigenschaften
Verbindung
Über diesen Dialog kann – auf Wunsch – eine eigene Verbindung zum Server aufgebaut werden, anstatt die laufende Sitzung zur Ausführung des Skripts zu nutzen.
Eigene Verbindung (siehe Abb. (1)): Ist diese Option aktiviert, wird anhand folgender Daten zur Ausführung des Skripts eine neue Serververbindung aufgebaut.
Benutzer: Der Benutzername, der zur Anmeldung am Server verwendet werden soll.
Passwort: Das entsprechende Passwort zum oben angegebenen Benutzer.
Ist die Option Eigene Verbindung aktiviert, werden bei der Ausführung des Skripts die Rechte des hier angegebenen Benutzers genutzt.
Es ist möglich, Auftragsskripte über die Systemverbindung auszuführen, z. B.:
context.getUserService();
Die Variable context stellt eine spezielle Verbindung bereit, die nur lesenden Zugriff besitzt. Solch eine Verbindung wird von Skripten, die ohne spezielle Benutzerinformationen konfiguriert wurden, genutzt. Mit ihr können lediglich nicht verändernde Operationen ausgeführt werden. Andernfalls wird die Ausführung des Skripts mit einer Security-Exception abgebrochen.
Sollen verändernde Operationen im Projekt über ein Auftragsskript durchgeführt werden, muss das Auftragsskript die Login-Informationen des angegebenen Benutzers verwenden. Dieser muss die entsprechenden Rechte besitzen (z. B. CAN_CHANGE, APPEND, DELETE, etc.) und zunächst über die Skripteigenschaften definiert werden (s.o.). Innerhalb des Skripts muss dann über die Variable connection eine benutzerspezifische Verbindung (basierend auf den hinterlegten Benutzerinformationen geholt werden, z. B.:
connection.getProjectById(context.getProject().getId()).getUserService();
Das Auftragsskript läuft anschließend im Rechtekontext des angegebenen Benutzers und wertet bei jeder verändernden Operation dessen Redaktionsrechte aus (z. B. beim Anlegen).
Werden in einem Skript (innerhalb eines Auftrags) verändernde Aktionen an den Projekteigenschaften ausgeführt, so muss dieses Skript entweder im Benutzerkontext eines Server- oder eines Projekt-Administrators ausgeführt werden. |
Parameter
Parameter (siehe Abb. (2)): Hier werden alle Parameter eingegeben, die bei der Ausführung des Skripts berücksichtigt werden sollen.
Gültigkeitsbereich der Parameter: Parameter werden in den globalen Kontext übernommen. Dadurch ist eine Weitergabe und Verwendung der Parameter in unterschiedlichen Skripten möglich.
Für alle Parameter sollten serverweit eindeutige Namen gewählt werden. Hintergrund: Durch den globalen Gültigkeitsbereich können sich parallel ausgeführte Skripte bei gleichlautenden Parameternamen die Parameterwerte überschreiben. |