Automatisieren von Aufgaben mithilfe von Scripts > Erstellen und Bearbeiten von Scripts > Ausführen von Scripts auf FileMaker Server
 
Ausführen von Scripts auf FileMaker Server
Scripts in Dateien, die FileMaker Server bereitstellt, werden gewöhnlich auf dem Client ausgeführt. Sie können jedoch ein Script auf dem Server (ein serverseitiges Script) ausführen, indem Sie Folgendes verwenden:
einen Script auf Server ausführen Scriptschritt in einem Script, das auf einem Client ausgeführt wird
einen FileMaker Server-Zeitplan (siehe FileMaker Server Hilfe)
Abweichende Ausführung von Scripts auf FileMaker Server
Ein Script, das auf eine der obigen Methoden gestartet wird, wird von der FileMaker Script Engine (FMSE), einer Komponente von FileMaker Server, ausgeführt. Bei der FMSE handelt es sich um einen Client, der jedes Script in einer separaten Sitzung auf dem Server ausführt. Daher gilt für serverseitige Scripts:
Sie verfügen nicht über den Kontext des Clients (aktuelles Layout, Ergebnismenge, Sortierfolge, Datensatz, globale Feldvariablen oder Werte lokaler oder globaler Variablen).
Mithilfe des Scriptparameters im Scriptschritt „Script auf Server ausführen“ können Sie Informationen über den Kontext des Clients übergeben. Das serverseitige Script kann anhand der Informationen in Scriptschritten wie Gehe zu Layout Scriptschritt und Ergebnismenge suchen Scriptschritt das Layout und die Ergebnismenge angeben, das bzw. die beeinflusst werden soll.
Sie unterstützen Scriptparameter und Scriptergebnisse mit bis zu 1 Million Zeichen.
Sie können nur auf andere FileMaker Pro-Dateien zugreifen, wenn die beiden folgenden Situationen gegeben sind:
Die Dateien befinden sich auf demselben Host.
Die Dateien wurden bereits von dem Client geöffnet, der das serverseitige Script gestartet hat, oder wurden mit einem Kontonamen und einem Passwort im Dialogfeld „Dateioptionen“ der Datei eingerichtet.
Serverseitige Scripts werden auf dieselbe Weise ausgeführt, unabhängig davon, wie sie gestartet wurden. Allerdings gelten folgende Ausnahmen:
Ein Client, der den Scriptschritt „Script auf Server ausführen“ verwendet, hat die Option, auf die Beendigung des Scripts durch den Server zu warten und das Ergebnis mithilfe der Hole ( ScriptErgebnis ) Funktion zu erfassen.
Ein FileMaker Server-Zeitplan kann eingerichtet werden, um das laufende Script abzubrechen, wenn das angegebene Zeitlimit erreicht wird.
Umgang mit nicht unterstützten Scriptschritten
Viele Scriptschritte werden durch die FMSE unterstützt. Allerdings wird durch einen nicht unterstützten Scriptschritt Fehler 3 („Befehl nicht verfügbar“) zurückgegeben, der nicht unterstützte Schritt wird ausgelassen und das Script fährt mit dem nächsten Schritt fort. Um nicht unterstützte Schritte zu behandeln, kann Ihr Script den Scriptschritt „Wenn“ in folgenden Kombinationen nutzen:
die Hole ( LetzteFehlerNr ) Funktion nach einem Schritt, um zu prüfen, ob dieser Schritt unterstützt wird, und ggf. stattdessen unterstützte Schritte auszuführen. Beispielsweise wird der Scriptschritt „Datei öffnen“ durch die FMSE nicht unterstützt, d. h. das folgende Script würde auf dem Server diesen Schritt auslassen und im Ergebnis „nicht unterstützt“ liefern.
Datei öffnen [Ausgeblendet öffnen: Aus; "Rechnungssicherung"]
Wenn [Hole ( LetzteFehlerNr ) = 3]
Aktuelles Script verlassen [ Textergebnis: "nicht unterstützt"]
Ende (wenn)
die Hole ( ProgrammVersion ) Funktion vor weiteren Schritten, um zu prüfen, ob das Script auf FileMaker Server ausgeführt wird, und dann nur unterstützte Schritte auszuführen. Beispiel:
Wenn [ MusterAnzahl ( Hole ( ProgrammVersion ) ; "Server" ) > 0 ]
# Mit Scriptschritten fortfahren, die die FMSE unterstützt
Ende (wenn)
Um zu sehen, welche Scriptschritte durch die FMSE unterstützt werden, öffnen Sie im Scriptarbeitsbereich ein Script, klicken auf Kompatibilität, Schaltfläche und wählen dann Server. Nicht unterstützte Scriptschritte werden in einer anderen Farbe angezeigt. Sie können auch für jeden Scriptschritt in der Kompatibilitätstabelle unter Scriptschritte nachsehen.
Gründe für das Ausführen eines Scripts auf dem Server
Höhere Leistung durch geringeren Netzwerkverkehr zwischen Client und Server
Auslagern langwieriger Aufgaben von langsameren Clients auf einen schnelleren Server
FileMaker Go-Clients die Nutzung von Plugins ermöglichen, die auf FileMaker Server, aber nicht in FileMaker Go unterstützt werden
Verwendung der Scriptschritte „Datensätze importieren“ oder „SQL ausführen“ mit einer ODBC-Datenquelle, die den DSN des Servers nutzt
Hinweise 
Wenn Datensätze von einem Client gesperrt sind, können serverseitige Scripts nicht auf ungespeicherte Daten zugreifen oder den Inhalt dieser Datensätze ändern.
Beim Ausführen serverseitiger Scripts werden die Dateien, die die Scripts enthalten, geöffnet und geschlossen. Daher werden der BeiErstemFensterÖffnen Script-Trigger beim Scriptstart und der BeiLetztemFensterSchließen Script-Trigger am Scriptende aktiviert.
Serverseitige Scripts können mit dem Script ausführen Scriptschritt Teilscripts ausführen, die auch auf dem Server ablaufen, sofern sich diese Teilscripts in Dateien auf demselben Server befinden und bereits vom Client geöffnet wurden.
Scripts, die von „Script auf Server ausführen“ ausgeführt werden, nutzen dasselbe Konto wie der Client. Scripts, die von einem FileMaker Server-Zeitplan ausgeführt werden, verwenden das im Zeitplan angegebene Konto (siehe FileMaker Server Hilfe). In der Berechtigung des Kontos muss das erweiterte Zugriffsrecht „fmapp“ aktiviert sein. Weitere Informationen finden Sie unter Bearbeiten der erweiterten Zugriffsrechte für eine Berechtigung.
Serverseitige Scripts können auf einem Client keine FileMaker-Warnmeldungen anzeigen, daher verhalten sie sich stets so, als wäre der Fehleraufzeichnung setzen Scriptschritt auf „Ein“ gesetzt. Verwenden Sie in serverseitigen Scripts die Hole ( LetzteFehlerNr ) Funktion, um Fehlerbedingungen zu behandeln. Zu Ihrer Unterstützung bei der Problembehebung werden Fehler auch in das Ereignisprotokoll auf FileMaker Server geschrieben.
Clients können keine serverseitigen Scripts abbrechen. Jedoch lässt sich ein serverseitiges Script in folgenden Fällen abbrechen:
Ein Server-Administrator stoppt das Script, das als separater Client erscheint, dessen Verbindung sich in der FileMaker Server Admin Console trennen lässt.
Das laufende Script überschreitet das Zeitlimit, das im FileMaker Server-Zeitplan, durch den das Script gestartet wurde, angegeben ist.
Das Script trifft auf einen unbekannten Scriptschritt (siehe AnwenderAbbruchZulassen setzen Scriptschritt).
Weitere Informationen finden Sie in der FileMaker Server Hilfe.
In serverseitigen Scripts geben Funktionen in Bezug auf Hardware wie Hole ( SystemIPAdresse ) Informationen von der Datenbank-Server-Komponente FileMaker Server, nicht vom Client, zurück.